Skip to content
Success

Console Output

Started by user Dmitry Kornilov
Rebuilds build #22
Running as Dmitry Kornilov
Agent basic-bvx95 is provisioned from template basic
---
apiVersion: "v1"
kind: "Pod"
metadata:
  annotations: {}
  labels:
    jenkins: "slave"
    jenkins/label-digest: "61a7508ed1b04e9ada836fcd14d4d8ef5687c7dd"
    jenkins/label: "basic"
  name: "basic-bvx95"
  namespace: "tyrus"
spec:
  containers:
  - env:
    - name: "JENKINS_SECRET"
      value: "********"
    - name: "JENKINS_TUNNEL"
      value: "jenkins-discovery.tyrus.svc.cluster.local:50000"
    - name: "JENKINS_AGENT_NAME"
      value: "basic-bvx95"
    - name: "JENKINS_REMOTING_JAVA_OPTS"
      value: "-showversion -XshowSettings:vm -Xmx256m -Dorg.jenkinsci.remoting.engine.JnlpProtocol3.disabled=true\
        \ -Dorg.jenkinsci.plugins.gitclient.CliGitAPIImpl.useSETSID=true"
    - name: "JAVA_TOOL_OPTIONS"
      value: ""
    - name: "_JAVA_OPTIONS"
      value: ""
    - name: "OPENJ9_JAVA_OPTIONS"
      value: "-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningCompactOnIdle -XX:+IdleTuningGcOnIdle"
    - name: "JENKINS_NAME"
      value: "basic-bvx95"
    - name: "JENKINS_AGENT_WORKDIR"
      value: "/home/jenkins/agent"
    - name: "JENKINS_URL"
      value: "http://jenkins-ui.tyrus.svc.cluster.local/tyrus/"
    image: "docker.io/eclipsecbi/jiro-agent-basic:remoting-4.13.3"
    imagePullPolicy: "Always"
    name: "jnlp"
    resources:
      limits:
        cpu: "2000m"
        memory: "4096Mi"
      requests:
        cpu: "1000m"
        memory: "4096Mi"
    tty: true
    volumeMounts:
    - mountPath: "/home/jenkins/.m2/toolchains.xml"
      name: "m2-dir"
      readOnly: true
      subPath: "toolchains.xml"
    - mountPath: "/home/jenkins/.mavenrc"
      name: "m2-dir"
      readOnly: true
      subPath: ".mavenrc"
    - mountPath: "/opt/tools"
      name: "volume-0"
      readOnly: false
    - mountPath: "/home/jenkins"
      name: "volume-2"
      readOnly: false
    - mountPath: "/home/jenkins/.m2/repository"
      name: "volume-3"
      readOnly: false
    - mountPath: "/home/jenkins/.m2/settings-security.xml"
      name: "m2-secret-dir"
      readOnly: true
      subPath: "settings-security.xml"
    - mountPath: "/home/jenkins/.m2/wrapper"
      name: "volume-4"
      readOnly: false
    - mountPath: "/home/jenkins/.m2/settings.xml"
      name: "m2-secret-dir"
      readOnly: true
      subPath: "settings.xml"
    - mountPath: "/home/jenkins/.ssh"
      name: "volume-1"
      readOnly: false
      subPath: ""
    - mountPath: "/home/jenkins/agent"
      name: "workspace-volume"
      readOnly: false
    workingDir: "/home/jenkins/agent"
  nodeSelector:
    kubernetes.io/os: "linux"
  restartPolicy: "Never"
  volumes:
  - name: "volume-0"
    persistentVolumeClaim:
      claimName: "tools-claim-jiro-tyrus"
      readOnly: true
  - name: "m2-secret-dir"
    secret:
      secretName: "m2-secret-dir"
  - emptyDir:
      medium: ""
    name: "volume-2"
  - configMap:
      name: "m2-dir"
    name: "m2-dir"
  - configMap:
      name: "known-hosts"
    name: "volume-1"
  - emptyDir:
      medium: ""
    name: "workspace-volume"
  - emptyDir:
      medium: ""
    name: "volume-4"
  - emptyDir:
      medium: ""
    name: "volume-3"

Building remotely on basic-bvx95 (basic) in workspace /home/jenkins/agent/workspace/documentation-update-after-release
[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent]   Exec ssh-agent (binary ssh-agent on a remote machine)
$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-pLdBRdaXR3bz/agent.58
SSH_AGENT_PID=60
[ssh-agent] Started.
Running ssh-add (command line suppressed)
Identity added: /home/jenkins/agent/workspace/documentation-update-after-release@tmp/private_key_9628880078322357868.key (/home/jenkins/agent/workspace/documentation-update-after-release@tmp/private_key_9628880078322357868.key)
[ssh-agent] Using credentials tyrus-bot (GitHub bot SSH)
Selected Git installation does not exist. Using Default
The recommended git tool is: NONE
using credential github-bot-ssh
Cloning the remote Git repository
Cloning repository git@github.com:eclipse-ee4j/tyrus.git
 > git init /home/jenkins/agent/workspace/documentation-update-after-release # timeout=10
Fetching upstream changes from git@github.com:eclipse-ee4j/tyrus.git
 > git --version # timeout=10
 > git --version # 'git version 2.20.1'
using GIT_SSH to set credentials GitHub bot SSH
[INFO] Currently running in a labeled security context
 > /usr/bin/chcon --type=ssh_home_t /home/jenkins/agent/workspace/documentation-update-after-release@tmp/jenkins-gitclient-ssh4385867909312906095.key
Verifying host key using known hosts file
 > git fetch --tags --force --progress -- git@github.com:eclipse-ee4j/tyrus.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url git@github.com:eclipse-ee4j/tyrus.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
Avoid second fetch
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
Checking out Revision 21ed4c220e9b78d60ca7f7b8af303c06bd601e9e (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 21ed4c220e9b78d60ca7f7b8af303c06bd601e9e # timeout=10
Commit message: "Fix support of encoded query params"
 > git rev-list --no-walk 21ed4c220e9b78d60ca7f7b8af303c06bd601e9e # timeout=10
[documentation-update-after-release] $ /bin/bash -ex /tmp/jenkins10434782723734812436.sh
+ TOOLS_PREFIX=/opt/tools
+ MVN_HOME=/opt/tools/apache-maven/latest
+ PATH='/opt/tools/apache-maven/latest/bin:{JAVA_HOME}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
+ [[ 1.20 == 2* ]]
+ export LATEST_DIRS=latest1x
+ LATEST_DIRS=latest1x
+ git checkout 1.20
Previous HEAD position was 21ed4c2 Fix support of encoded query params
HEAD is now at 0a106a5 Prepare release org.glassfish.tyrus:tyrus-project:1.20
+ sed -i 's|2.9.1|\$\{maven-javadoc-plugin.version\}|g' pom.xml
+ mvn -B -V -Dfindbugs.skip=true -Dgpg.skip=true -Dcheckstyle.skip=true -DskipTests -Ddoclint:none clean install -Pstaging,release,javadoc-bundle,bundles
Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
Maven home: /opt/tools/apache-maven/latest
Java version: 11.0.2, vendor: Oracle Corporation, runtime: /opt/tools/java/openjdk/jdk-11/11.0.2+9
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.14.14-200.fc34.x86_64", arch: "amd64", family: "unix"
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] tyrus                                                              [pom]
[INFO] tyrus-archetypes                                                   [pom]
[INFO] Tyrus Echo Archetype                                               [jar]
[INFO] Tyrus BOM                                                          [pom]
[INFO] Tyrus Container SPI                                             [bundle]
[INFO] Tyrus Core                                                      [bundle]
[INFO] Tyrus Client                                                    [bundle]
[INFO] Tyrus Container Modules                                            [pom]
[INFO] Tyrus Containers For Glassfish                                     [pom]
[INFO] Tyrus CDI Component Provider                                    [bundle]
[INFO] Tyrus EJB Component Provider                                    [bundle]
[INFO] Tyrus Grizzly Client Container                                  [bundle]
[INFO] Tyrus Server                                                    [bundle]
[INFO] Tyrus Grizzly Server Container                                  [bundle]
[INFO] Tyrus InMemory Container                                        [bundle]
[INFO] Tyrus Servlet Bundle                                            [bundle]
[INFO] Tyrus Tests                                                        [pom]
[INFO] Tyrus Test Tools                                                [bundle]
[INFO] Tyrus JDK Client Container                                      [bundle]
[INFO] Tyrus Documentation                                                [pom]
[INFO] Tyrus Extension Modules                                            [pom]
[INFO] Tyrus CLI Client                                                [bundle]
[INFO] Tyrus Monitoring JMX                                               [jar]
[INFO] Tyrus Extension - Per Message Deflate                           [bundle]
[INFO] Tyrus Java8 Client Extension                                    [bundle]
[INFO] Tyrus Samples                                                      [pom]
[INFO] Tyrus Auction Sample                                               [war]
[INFO] Tyrus CDI Sample                                                   [war]
[INFO] Tyrus Chat Sample                                                  [war]
[INFO] Tyrus Draw Sample                                                  [war]
[INFO] Tyrus Echo Sample                                                  [war]
[INFO] Tyrus Basic Auth Sample                                            [war]
[INFO] Tyrus Secure Echo Sample                                           [war]
[INFO] Tyrus Programmatic Echo Sample                                     [war]
[INFO] Tyrus Simple Life Sample                                           [war]
[INFO] Tyrus Shared Collection Sample                                     [war]
[INFO] Tyrus End-to-End Tests                                             [pom]
[INFO] Tyrus End-to-End Application Config Tests                          [war]
[INFO] Tyrus End-to-End Non-deployable Tests                              [war]
[INFO] Tyrus End-to-End Standard Config Tests                             [war]
[INFO] Tyrus End-to-End Java 8 Tests                                      [war]
[INFO] Tyrus End-to-End Tests running on Jetty                            [pom]
[INFO] Tyrus End-to-End Basic Auth Tests                                  [jar]
[INFO] Tyrus End-to-End Digest Auth Tests                                 [jar]
[INFO] Tyrus Server Integration Tests                                     [pom]
[INFO] Tyrus Servlet Async Tests                                          [war]
[INFO] Tyrus Autobahn Echo Server                                         [war]
[INFO] Tyrus Servlet Basic Tests                                          [war]
[INFO] Tyrus Servlet Dynamic Deploy Test                                  [war]
[INFO] Tyrus Servlet No App Config                                        [war]
[INFO] Tyrus Servlet One App Config                                       [war]
[INFO] Tyrus Servlet RemoteEndpoint Timeout                               [war]
[INFO] Tyrus Servlet Session Closing                                      [war]
[INFO] Tyrus Servlet Two App Config                                       [war]
[INFO] Tyrus Servlet Monitoring Test                                      [war]
[INFO] Tyrus Servlet Inject Test                                          [war]
[INFO] Tyrus Servlet Max Sessions Per App Tests                           [war]
[INFO] Tyrus Servlet Max Sessions Per Remote Addr Tests                   [war]
[INFO] Tyrus Debug Debug Samples                                          [war]
[INFO] Tyrus Bundles                                                      [pom]
[INFO] Tyrus Samples Bundle                                               [pom]
[INFO] Tyrus Standalone Client                                            [jar]
[INFO] Tyrus Standalone Client - JDK                                      [jar]
[INFO] Tyrus Websocket RI Archive                                         [pom]
[INFO] Tyrus Websocket RI Bundle                                       [bundle]
[INFO] 
[INFO] -----------------< org.glassfish.tyrus:tyrus-project >------------------
[INFO] Building tyrus 1.20                                               [1/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-project ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-project ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-project ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-project ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-project/1.20/tyrus-project-1.20.pom
[INFO] 
[INFO] ------< org.glassfish.tyrus.archetypes:tyrus-archetypes-project >-------
[INFO] Building tyrus-archetypes 1.20                                    [2/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-archetypes-project ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-archetypes-project ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-archetypes-project ---
[INFO] 
[INFO] --- maven-gpg-plugin:1.6:sign (sign-artifact) @ tyrus-archetypes-project ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-archetypes-project ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/archetypes/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/archetypes/tyrus-archetypes-project/1.20/tyrus-archetypes-project-1.20.pom
[INFO] 
[INFO] --------< org.glassfish.tyrus.archetypes:tyrus-archetype-echo >---------
[INFO] Building Tyrus Echo Archetype 1.20                                [3/65]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-archetype-echo ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-archetype-echo ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-archetype-echo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 5 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-archetype-echo ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-archetype-echo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/archetypes/echo/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-archetype-echo ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-archetype-echo ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ tyrus-archetype-echo ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/archetypes/echo/target/tyrus-archetype-echo-1.20.jar
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-archetype-echo ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/archetypes/echo/target/tyrus-archetype-echo-1.20-sources.jar
[INFO] 
[INFO] --- maven-gpg-plugin:1.6:sign (sign-artifact) @ tyrus-archetype-echo ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-archetype-echo ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/archetypes/echo/target/tyrus-archetype-echo-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/archetypes/tyrus-archetype-echo/1.20/tyrus-archetype-echo-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/archetypes/echo/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/archetypes/tyrus-archetype-echo/1.20/tyrus-archetype-echo-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/archetypes/echo/target/tyrus-archetype-echo-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/archetypes/tyrus-archetype-echo/1.20/tyrus-archetype-echo-1.20-sources.jar
[INFO] 
[INFO] --- maven-archetype-plugin:2.2:update-local-catalog (update-local-catalog) @ tyrus-archetype-echo ---
[INFO] 
[INFO] -------------------< org.glassfish.tyrus:tyrus-bom >--------------------
[INFO] Building Tyrus BOM 1.20                                           [4/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-bom ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-bom ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bom/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-bom/1.20/tyrus-bom-1.20.pom
[INFO] 
[INFO] -------------------< org.glassfish.tyrus:tyrus-spi >--------------------
[INFO] Building Tyrus Container SPI 1.20                                 [5/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-spi ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-spi ---
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-spi ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/spi/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-spi ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 13 source files to /home/jenkins/agent/workspace/documentation-update-after-release/spi/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/spi/src/main/java/org/glassfish/tyrus/spi/ServerContainerFactory.java: /home/jenkins/agent/workspace/documentation-update-after-release/spi/src/main/java/org/glassfish/tyrus/spi/ServerContainerFactory.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/spi/src/main/java/org/glassfish/tyrus/spi/ServerContainerFactory.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-spi ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/spi/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-spi ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-spi ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-spi ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-spi ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/spi/target/tyrus-spi-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-spi ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/spi/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-spi/1.20/tyrus-spi-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/spi/target/tyrus-spi-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-spi/1.20/tyrus-spi-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/spi/target/tyrus-spi-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-spi/1.20/tyrus-spi-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-spi ---
[INFO] Writing OBR metadata
[INFO] Installing org/glassfish/tyrus/tyrus-spi/1.20/tyrus-spi-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] -------------------< org.glassfish.tyrus:tyrus-core >-------------------
[INFO] Building Tyrus Core 1.20                                          [6/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-core ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-core ---
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:parse-version (parse-version) @ tyrus-core ---
[INFO] 
[INFO] --- maven-istack-commons-plugin:2.6.1:rs-gen (default) @ tyrus-core ---
Resources:
org/glassfish/tyrus/core/l10n/localization.properties
Processing /home/jenkins/agent/workspace/documentation-update-after-release/core/src/main/resources/org/glassfish/tyrus/core/l10n/localization.properties
org/glassfish/tyrus/core/l10n/LocalizationMessages.java
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:add-source (default) @ tyrus-core ---
[INFO] Source directory: /home/jenkins/agent/workspace/documentation-update-after-release/core/target/generated-sources/rsrc-gen added.
[INFO] 
[INFO] --- maven-jaxb-plugin:1.1.1:generate (default) @ tyrus-core ---
[INFO] /home/jenkins/agent/workspace/documentation-update-after-release/core/target/generated-sources/xjc/org/glassfish/tyrus/core/wsadl/model is not found and thus excluded from the dependency check
[INFO] Compiling file:/home/jenkins/agent/workspace/documentation-update-after-release/core/etc/wsadl.xsd
[INFO] Writing output to /home/jenkins/agent/workspace/documentation-update-after-release/core/target/generated-sources/xjc
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-core ---
[INFO] Copying 2 resources
[INFO] The encoding used to copy filtered properties files have not been set. This means that the same encoding will be used to copy filtered properties files as when copying other filtered resources. This might not be what you want! Run your build with --debug to see which files might be affected. Read more at https://maven.apache.org/plugins/maven-resources-plugin/examples/filtering-properties-files.html
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-core ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 115 source files to /home/jenkins/agent/workspace/documentation-update-after-release/core/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/core/src/main/java/org/glassfish/tyrus/core/BaseContainer.java: Some input files use or override a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/core/src/main/java/org/glassfish/tyrus/core/BaseContainer.java: Recompile with -Xlint:deprecation for details.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/core/src/main/java/org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.java: Some input files use unchecked or unsafe operations.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/core/src/main/java/org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-core ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/core/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-core ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 15 source files to /home/jenkins/agent/workspace/documentation-update-after-release/core/target/test-classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/core/src/test/java/org/glassfish/tyrus/core/uri/BestMatchTest.java: Some input files use or override a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/core/src/test/java/org/glassfish/tyrus/core/uri/BestMatchTest.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-core ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-core ---
[WARNING] Bundle org.glassfish.tyrus:tyrus-core:bundle:1.20 : Unused Export-Package instructions: [org.glassfish.tyrus.core.extension.*, org.glassfish.tyrus.core.frame.*, org.glassfish.tyrus.core.cluster.*, org.glassfish.tyrus.core.coder.*, org.glassfish.tyrus.core.wsadl.model.*] 
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-core ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/core/target/tyrus-core-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-core ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/core/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-core/1.20/tyrus-core-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/core/target/tyrus-core-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-core/1.20/tyrus-core-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/core/target/tyrus-core-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-core/1.20/tyrus-core-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-core ---
[INFO] Installing org/glassfish/tyrus/tyrus-core/1.20/tyrus-core-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] ------------------< org.glassfish.tyrus:tyrus-client >------------------
[INFO] Building Tyrus Client 1.20                                        [7/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-client ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-client ---
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-client ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/client/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-client ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 15 source files to /home/jenkins/agent/workspace/documentation-update-after-release/client/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/client/src/main/java/org/glassfish/tyrus/client/ClientManager.java: /home/jenkins/agent/workspace/documentation-update-after-release/client/src/main/java/org/glassfish/tyrus/client/ClientManager.java uses unchecked or unsafe operations.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/client/src/main/java/org/glassfish/tyrus/client/ClientManager.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-client ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/client/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-client ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 4 source files to /home/jenkins/agent/workspace/documentation-update-after-release/client/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-client ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-client ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-client ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/client/target/tyrus-client-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-client ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/client/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-client/1.20/tyrus-client-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/client/target/tyrus-client-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-client/1.20/tyrus-client-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/client/target/tyrus-client-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-client/1.20/tyrus-client-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-client ---
[INFO] Installing org/glassfish/tyrus/tyrus-client/1.20/tyrus-client-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] ------------< org.glassfish.tyrus:tyrus-containers-project >------------
[INFO] Building Tyrus Container Modules 1.20                             [8/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-containers-project ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-containers-project ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-containers-project ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-containers-project ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-containers-project/1.20/tyrus-containers-project-1.20.pom
[INFO] 
[INFO] -------< org.glassfish.tyrus:tyrus-containers-glassfish-project >-------
[INFO] Building Tyrus Containers For Glassfish 1.20                      [9/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-containers-glassfish-project ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-containers-glassfish-project ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-containers-glassfish-project ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-containers-glassfish-project ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-containers-glassfish-project/1.20/tyrus-containers-glassfish-project-1.20.pom
[INFO] 
[INFO] ---------< org.glassfish.tyrus:tyrus-container-glassfish-cdi >----------
[INFO] Building Tyrus CDI Component Provider 1.20                       [10/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-container-glassfish-cdi ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-container-glassfish-cdi ---
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-container-glassfish-cdi ---
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-container-glassfish-cdi ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/cdi/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-container-glassfish-cdi ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/cdi/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-container-glassfish-cdi ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-container-glassfish-cdi ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-container-glassfish-cdi ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-container-glassfish-cdi ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/cdi/target/tyrus-container-glassfish-cdi-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-container-glassfish-cdi ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/cdi/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-glassfish-cdi/1.20/tyrus-container-glassfish-cdi-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/cdi/target/tyrus-container-glassfish-cdi-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-glassfish-cdi/1.20/tyrus-container-glassfish-cdi-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/cdi/target/tyrus-container-glassfish-cdi-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-glassfish-cdi/1.20/tyrus-container-glassfish-cdi-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-container-glassfish-cdi ---
[INFO] Installing org/glassfish/tyrus/tyrus-container-glassfish-cdi/1.20/tyrus-container-glassfish-cdi-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] ---------< org.glassfish.tyrus:tyrus-container-glassfish-ejb >----------
[INFO] Building Tyrus EJB Component Provider 1.20                       [11/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-container-glassfish-ejb ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-container-glassfish-ejb ---
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-container-glassfish-ejb ---
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-container-glassfish-ejb ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/ejb/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/ejb/src/main/java/org/glassfish/tyrus/gf/ejb/EjbComponentProvider.java: /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/ejb/src/main/java/org/glassfish/tyrus/gf/ejb/EjbComponentProvider.java uses unchecked or unsafe operations.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/ejb/src/main/java/org/glassfish/tyrus/gf/ejb/EjbComponentProvider.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-container-glassfish-ejb ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/ejb/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-container-glassfish-ejb ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-container-glassfish-ejb ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-container-glassfish-ejb ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-container-glassfish-ejb ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/ejb/target/tyrus-container-glassfish-ejb-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-container-glassfish-ejb ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/ejb/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-glassfish-ejb/1.20/tyrus-container-glassfish-ejb-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/ejb/target/tyrus-container-glassfish-ejb-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-glassfish-ejb/1.20/tyrus-container-glassfish-ejb-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/ejb/target/tyrus-container-glassfish-ejb-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-glassfish-ejb/1.20/tyrus-container-glassfish-ejb-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-container-glassfish-ejb ---
[INFO] Installing org/glassfish/tyrus/tyrus-container-glassfish-ejb/1.20/tyrus-container-glassfish-ejb-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] ---------< org.glassfish.tyrus:tyrus-container-grizzly-client >---------
[INFO] Building Tyrus Grizzly Client Container 1.20                     [12/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-container-grizzly-client ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-container-grizzly-client ---
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-container-grizzly-client ---
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-container-grizzly-client ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 10 source files to /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-client/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-client/src/main/java/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.java: /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-client/src/main/java/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-client/src/main/java/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.java: Recompile with -Xlint:deprecation for details.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-client/src/main/java/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.java: Some input files use unchecked or unsafe operations.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-client/src/main/java/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-container-grizzly-client ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-client/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-container-grizzly-client ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-container-grizzly-client ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-container-grizzly-client ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-container-grizzly-client ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-client/target/tyrus-container-grizzly-client-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-container-grizzly-client ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-client/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-grizzly-client/1.20/tyrus-container-grizzly-client-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-client/target/tyrus-container-grizzly-client-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-grizzly-client/1.20/tyrus-container-grizzly-client-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-client/target/tyrus-container-grizzly-client-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-grizzly-client/1.20/tyrus-container-grizzly-client-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-container-grizzly-client ---
[INFO] Installing org/glassfish/tyrus/tyrus-container-grizzly-client/1.20/tyrus-container-grizzly-client-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] ------------------< org.glassfish.tyrus:tyrus-server >------------------
[INFO] Building Tyrus Server 1.20                                       [13/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-server ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-server ---
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:parse-version (parse-version) @ tyrus-server ---
[INFO] 
[INFO] --- maven-istack-commons-plugin:2.6.1:rs-gen (default) @ tyrus-server ---
Resources:
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:add-source (default) @ tyrus-server ---
[INFO] Source directory: /home/jenkins/agent/workspace/documentation-update-after-release/server/target/generated-sources/rsrc-gen added.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-server ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/server/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-server ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 4 source files to /home/jenkins/agent/workspace/documentation-update-after-release/server/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/server/src/main/java/org/glassfish/tyrus/server/TyrusServerConfiguration.java: /home/jenkins/agent/workspace/documentation-update-after-release/server/src/main/java/org/glassfish/tyrus/server/TyrusServerConfiguration.java uses unchecked or unsafe operations.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/server/src/main/java/org/glassfish/tyrus/server/TyrusServerConfiguration.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-server ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/server/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-server ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/jenkins/agent/workspace/documentation-update-after-release/server/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-server ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-server ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-server ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/server/target/tyrus-server-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-server ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/server/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-server/1.20/tyrus-server-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/server/target/tyrus-server-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-server/1.20/tyrus-server-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/server/target/tyrus-server-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-server/1.20/tyrus-server-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-server ---
[INFO] Installing org/glassfish/tyrus/tyrus-server/1.20/tyrus-server-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] ---------< org.glassfish.tyrus:tyrus-container-grizzly-server >---------
[INFO] Building Tyrus Grizzly Server Container 1.20                     [14/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-container-grizzly-server ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-container-grizzly-server ---
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-container-grizzly-server ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-server/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-container-grizzly-server ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 4 source files to /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-server/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-server/src/main/java/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerFilter.java: /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-server/src/main/java/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerFilter.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-server/src/main/java/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerFilter.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-container-grizzly-server ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-server/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-container-grizzly-server ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-container-grizzly-server ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-container-grizzly-server ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-container-grizzly-server ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-server/target/tyrus-container-grizzly-server-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-container-grizzly-server ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-server/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-grizzly-server/1.20/tyrus-container-grizzly-server-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-server/target/tyrus-container-grizzly-server-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-grizzly-server/1.20/tyrus-container-grizzly-server-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-server/target/tyrus-container-grizzly-server-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-grizzly-server/1.20/tyrus-container-grizzly-server-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-container-grizzly-server ---
[INFO] Installing org/glassfish/tyrus/tyrus-container-grizzly-server/1.20/tyrus-container-grizzly-server-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] ------------< org.glassfish.tyrus:tyrus-container-inmemory >------------
[INFO] Building Tyrus InMemory Container 1.20                           [15/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-container-inmemory ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-container-inmemory ---
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-container-inmemory ---
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-container-inmemory ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /home/jenkins/agent/workspace/documentation-update-after-release/containers/inmemory/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-container-inmemory ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/containers/inmemory/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-container-inmemory ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/containers/inmemory/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-container-inmemory ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-container-inmemory ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-container-inmemory ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/containers/inmemory/target/tyrus-container-inmemory-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-container-inmemory ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/inmemory/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-inmemory/1.20/tyrus-container-inmemory-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/inmemory/target/tyrus-container-inmemory-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-inmemory/1.20/tyrus-container-inmemory-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/inmemory/target/tyrus-container-inmemory-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-inmemory/1.20/tyrus-container-inmemory-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-container-inmemory ---
[INFO] Installing org/glassfish/tyrus/tyrus-container-inmemory/1.20/tyrus-container-inmemory-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] ------------< org.glassfish.tyrus:tyrus-container-servlet >-------------
[INFO] Building Tyrus Servlet Bundle 1.20                               [16/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-container-servlet ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-container-servlet ---
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-container-servlet ---
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-container-servlet ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 5 source files to /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/src/main/java/org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.java: /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/src/main/java/org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/src/main/java/org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-container-servlet ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-container-servlet ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-container-servlet ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-container-servlet ---
[INFO] 
[INFO] --- maven-javadoc-plugin:3.0.1:jar (attach-javadocs) @ tyrus-container-servlet ---
[INFO] 
Loading source files for package org.glassfish.tyrus.servlet...
Constructing Javadoc information...
Standard Doclet version 11.0.2
Building tree for all the packages and classes...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/org/glassfish/tyrus/servlet/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/org/glassfish/tyrus/servlet/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/constant-values.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/org/glassfish/tyrus/servlet/class-use/TyrusHttpUpgradeHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/org/glassfish/tyrus/servlet/class-use/TyrusServletContainerInitializer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/org/glassfish/tyrus/servlet/package-use.html...
Building index for all the packages and classes...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/overview-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/index-all.html...
Building index for all classes...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/allclasses-index.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/allpackages-index.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/deprecated-list.html...
Building index for all classes...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/allclasses.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/allclasses.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/index.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/apidocs/help-doc.html...
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/tyrus-container-servlet-1.20-javadoc.jar
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-container-servlet ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/tyrus-container-servlet-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-container-servlet ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-servlet/1.20/tyrus-container-servlet-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/tyrus-container-servlet-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-servlet/1.20/tyrus-container-servlet-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/tyrus-container-servlet-1.20-javadoc.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-servlet/1.20/tyrus-container-servlet-1.20-javadoc.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/tyrus-container-servlet-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-servlet/1.20/tyrus-container-servlet-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-container-servlet ---
[INFO] Installing org/glassfish/tyrus/tyrus-container-servlet/1.20/tyrus-container-servlet-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] -----------< org.glassfish.tyrus.tests:tyrus-tests-project >------------
[INFO] Building Tyrus Tests 1.20                                        [17/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-project ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-project ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-project ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-project ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-project/1.20/tyrus-tests-project-1.20.pom
[INFO] 
[INFO] -------------< org.glassfish.tyrus.tests:tyrus-test-tools >-------------
[INFO] Building Tyrus Test Tools 1.20                                   [18/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-test-tools ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-test-tools ---
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-test-tools ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/tools/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-test-tools ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/tools/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/tools/src/main/java/org/glassfish/tyrus/test/tools/TestContainer.java: /home/jenkins/agent/workspace/documentation-update-after-release/tests/tools/src/main/java/org/glassfish/tyrus/test/tools/TestContainer.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/tools/src/main/java/org/glassfish/tyrus/test/tools/TestContainer.java: Recompile with -Xlint:deprecation for details.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/tools/src/main/java/org/glassfish/tyrus/test/tools/GrizzlyModProxy.java: /home/jenkins/agent/workspace/documentation-update-after-release/tests/tools/src/main/java/org/glassfish/tyrus/test/tools/GrizzlyModProxy.java uses unchecked or unsafe operations.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/tools/src/main/java/org/glassfish/tyrus/test/tools/GrizzlyModProxy.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-test-tools ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/tools/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-test-tools ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-test-tools ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-test-tools ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-test-tools ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/tools/target/tyrus-test-tools-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-test-tools ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/tools/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-test-tools/1.20/tyrus-test-tools-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/tools/target/tyrus-test-tools-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-test-tools/1.20/tyrus-test-tools-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/tools/target/tyrus-test-tools-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-test-tools/1.20/tyrus-test-tools-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-test-tools ---
[INFO] Installing org/glassfish/tyrus/tests/tyrus-test-tools/1.20/tyrus-test-tools-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] -----------< org.glassfish.tyrus:tyrus-container-jdk-client >-----------
[INFO] Building Tyrus JDK Client Container 1.20                         [19/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-container-jdk-client ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-container-jdk-client ---
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-container-jdk-client ---
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-container-jdk-client ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 14 source files to /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/src/main/java/org/glassfish/tyrus/container/jdk/client/JdkClientContainer.java: /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/src/main/java/org/glassfish/tyrus/container/jdk/client/JdkClientContainer.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/src/main/java/org/glassfish/tyrus/container/jdk/client/JdkClientContainer.java: Recompile with -Xlint:deprecation for details.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/src/main/java/org/glassfish/tyrus/container/jdk/client/ClientFilter.java: Some input files use unchecked or unsafe operations.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/src/main/java/org/glassfish/tyrus/container/jdk/client/ClientFilter.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-container-jdk-client ---
[INFO] Copying 7 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-container-jdk-client ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 8 source files to /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/target/test-classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/src/test/java/org/glassfish/tyrus/container/jdk/client/ThreadPoolSizeTest.java: Some input files use or override a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/src/test/java/org/glassfish/tyrus/container/jdk/client/ThreadPoolSizeTest.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-container-jdk-client ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-container-jdk-client ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-container-jdk-client ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/target/tyrus-container-jdk-client-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-container-jdk-client ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-jdk-client/1.20/tyrus-container-jdk-client-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/target/tyrus-container-jdk-client-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-jdk-client/1.20/tyrus-container-jdk-client-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/target/tyrus-container-jdk-client-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-container-jdk-client/1.20/tyrus-container-jdk-client-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-container-jdk-client ---
[INFO] Installing org/glassfish/tyrus/tyrus-container-jdk-client/1.20/tyrus-container-jdk-client-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] --------------< org.glassfish.tyrus:tyrus-documentation >---------------
[INFO] Building Tyrus Documentation 1.20                                [20/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-documentation ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-documentation ---
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:parse-version (parse-version) @ tyrus-documentation ---
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:add-source (default) @ tyrus-documentation ---
[INFO] Source directory: /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/generated-sources/rsrc-gen added.
[INFO] 
[INFO] --- maven-antrun-plugin:1.3:run (process-entities) @ tyrus-documentation ---
[INFO] Executing tasks
     [echo] Preparing char entities
    [mkdir] Created dir: /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/gen-src
     [copy] Copying 16 files to /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/gen-src
[INFO] Executed tasks
[INFO] 
[INFO] --- docbkx-maven-plugin:2.0.15:generate-html (Single page HTML and PDF) @ tyrus-documentation ---
[INFO] Processing input file: user-guide.xml
[INFO] Applying customization parameters after docbkx parameters
[INFO] /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/user-guide.html has been generated.
[INFO] 
[INFO] --- docbkx-maven-plugin:2.0.15:generate-pdf (Single page HTML and PDF) @ tyrus-documentation ---
[INFO] Processing input file: user-guide.xml
[INFO] Applying customization parameters after docbkx parameters
[INFO] targetFileExtension pdf
[INFO] type fo
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Font "Symbol,normal,700" not found. Substituting with "Symbol,normal,400".
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Font "ZapfDingbats,normal,700" not found. Substituting with "ZapfDingbats,normal,400".
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #1.
Oct 11, 2022 10:15:37 AM org.apache.fop.hyphenation.Hyphenator getHyphenationTree
SEVERE: Couldn't find hyphenation pattern for lang="en".
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #2.
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #3.
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 73:944)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 73:944)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 73:944)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 6000 millipoints. (See position 73:944)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 73:944)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 36000 millipoints. (See position 73:944)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 12000 millipoints. (See position 73:944)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 24000 millipoints. (See position 112:958)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 24000 millipoints. (See position 112:958)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 159:365)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 159:365)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #4.
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #5.
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #6.
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #7.
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 5 of a paragraph overflows the available area by 21030 millipoints. (See position 183:2622)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 4 of a paragraph overflows the available area by 7130 millipoints. (See position 183:2622)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 3 of a paragraph overflows the available area by 19010 millipoints. (See position 183:2622)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 5 of a paragraph overflows the available area by 21030 millipoints. (See position 187:962)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 4 of a paragraph overflows the available area by 7130 millipoints. (See position 187:962)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 3 of a paragraph overflows the available area by 19010 millipoints. (See position 187:962)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 5 of a paragraph overflows the available area by 21030 millipoints. (See position 191:948)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 4 of a paragraph overflows the available area by 7130 millipoints. (See position 191:948)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 3 of a paragraph overflows the available area by 19010 millipoints. (See position 191:948)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 8 of a paragraph overflows the available area by 7140 millipoints. (See position 195:962)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 6 of a paragraph overflows the available area by 21030 millipoints. (See position 195:962)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 5 of a paragraph overflows the available area by 7130 millipoints. (See position 195:962)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 4 of a paragraph overflows the available area by 19010 millipoints. (See position 195:962)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 2 of a paragraph overflows the available area by 5140 millipoints. (See position 195:962)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 6 of a paragraph overflows the available area by 21030 millipoints. (See position 199:923)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 5 of a paragraph overflows the available area by 7130 millipoints. (See position 199:923)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 4 of a paragraph overflows the available area by 19010 millipoints. (See position 199:923)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 13 of a paragraph overflows the available area by 2080 millipoints. (See position 203:924)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 11 of a paragraph overflows the available area by 980 millipoints. (See position 203:924)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 5 of a paragraph overflows the available area by 7350 millipoints. (See position 203:924)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 4 of a paragraph overflows the available area by 19010 millipoints. (See position 203:924)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 5 of a paragraph overflows the available area by 21030 millipoints. (See position 209:552)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 4 of a paragraph overflows the available area by 7130 millipoints. (See position 209:552)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 3 of a paragraph overflows the available area by 19010 millipoints. (See position 209:552)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 7 of a paragraph overflows the available area by 21030 millipoints. (See position 213:3089)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 6 of a paragraph overflows the available area by 7130 millipoints. (See position 213:3089)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 5 of a paragraph overflows the available area by 19010 millipoints. (See position 213:3089)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 7 of a paragraph overflows the available area by 21030 millipoints. (See position 217:913)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 6 of a paragraph overflows the available area by 7130 millipoints. (See position 217:913)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 5 of a paragraph overflows the available area by 19010 millipoints. (See position 217:913)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 7 of a paragraph overflows the available area by 21030 millipoints. (See position 221:913)
Oct 11, 2022 10:15:37 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 6 of a paragraph overflows the available area by 7130 millipoints. (See position 221:913)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 5 of a paragraph overflows the available area by 19010 millipoints. (See position 221:913)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 7 of a paragraph overflows the available area by 21030 millipoints. (See position 225:916)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 6 of a paragraph overflows the available area by 7130 millipoints. (See position 225:916)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 5 of a paragraph overflows the available area by 19010 millipoints. (See position 225:916)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #8.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #9.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #10.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #11.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 36000 millipoints. (See position 252:1078)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 252:1078)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 252:1078)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 42000 millipoints. (See position 252:1078)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 36000 millipoints. (See position 252:1078)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 252:1078)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 252:1078)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 18000 millipoints. (See position 252:1078)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 2 of a paragraph overflows the available area by 4758 millipoints. (See position 311:683)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 316:976)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 316:976)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 316:976)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 316:976)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 316:976)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 316:976)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #12.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #13.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #14.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 377:998)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 413:939)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 36000 millipoints. (See position 501:365)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 501:365)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 501:365)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 501:365)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 501:365)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 525:926)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 579:957)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 595:955)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 36000 millipoints. (See position 634:927)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 24000 millipoints. (See position 634:927)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #15.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #16.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #17.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #18.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #19.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #20.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #21.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #22.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 690:649)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 709:950)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 755:943)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 42000 millipoints. (See position 755:943)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 755:943)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 20224 millipoints. (See position 758:657)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 42000 millipoints. (See position 768:949)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 42000 millipoints. (See position 768:949)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 6000 millipoints. (See position 768:949)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #23.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #24.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 835:955)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 863:980)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 6000 millipoints. (See position 875:980)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 18000 millipoints. (See position 875:980)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #25.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #26.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #27.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 912:943)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 912:943)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #28.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #29.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #30.
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 42000 millipoints. (See position 949:833)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 949:833)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 949:833)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 949:833)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 48000 millipoints. (See position 949:833)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 12000 millipoints. (See position 949:833)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 949:833)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 975:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 989:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 989:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 994:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 24000 millipoints. (See position 994:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 994:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1010:670)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1016:426)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1030:482)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1030:482)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1030:482)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1038:654)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 12000 millipoints. (See position 1060:570)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1062:609)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1066:487)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1066:487)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1078:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1136:471)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1136:471)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 42000 millipoints. (See position 1171:1438)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 42000 millipoints. (See position 1171:1438)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 12000 millipoints. (See position 1171:1438)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 12000 millipoints. (See position 1171:1438)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 42000 millipoints. (See position 1171:1438)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 42000 millipoints. (See position 1171:1438)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 24000 millipoints. (See position 1233:584)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1246:554)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1246:554)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1246:554)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 18000 millipoints. (See position 1246:554)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1246:554)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1277:482)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1277:482)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1277:482)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1277:482)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1277:482)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1277:482)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1323:378)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1333:378)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1347:378)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1377:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1377:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1377:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1416:390)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1416:390)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1421:390)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1421:390)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 30000 millipoints. (See position 1421:390)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1450:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1450:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1450:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1450:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1450:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1450:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1450:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1450:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1450:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1450:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1450:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 12000 millipoints. (See position 1450:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 42000 millipoints. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 42000 millipoints. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1467:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 12000 millipoints. (See position 1497:378)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1497:378)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1567:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1571:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1575:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1575:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1575:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1575:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1585:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1585:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1585:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1585:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1619:578)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1649:389)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1649:389)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 42000 millipoints. (See position 1649:389)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 30000 millipoints. (See position 1683:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1716:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 30000 millipoints. (See position 1729:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 7 of a paragraph overflows the available area by 6000 millipoints. (See position 1741:787)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1759:513)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1759:513)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1759:513)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1759:513)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 30000 millipoints. (See position 1759:513)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1759:513)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1759:513)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1788:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 6000 millipoints. (See position 1796:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 30000 millipoints. (See position 1796:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 36000 millipoints. (See position 1796:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1812:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 6000 millipoints. (See position 1812:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 30000 millipoints. (See position 1812:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 36000 millipoints. (See position 1812:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1828:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 6000 millipoints. (See position 1828:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 30000 millipoints. (See position 1828:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 36000 millipoints. (See position 1828:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1853:393)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1858:393)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 24000 millipoints. (See position 1884:382)
Oct 11, 2022 10:15:38 AM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1884:382)
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #31.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #32.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #33.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #34.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #35.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #36.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #37.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #38.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #39.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #40.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #41.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #42.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #43.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #44.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #45.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #46.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #47.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #48.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #49.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #50.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #51.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #52.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #53.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #54.
Oct 11, 2022 10:15:39 AM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #55.
[INFO] /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/user-guide.pdf has been generated.
[INFO] /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/user-guide.fo has been generated.
[INFO] 
[INFO] --- docbkx-maven-plugin:2.0.15:generate-html (Multiple HTML pages) @ tyrus-documentation ---
[INFO] Processing input file: index.xml
[INFO] Applying customization parameters after docbkx parameters
[INFO] Chunking output.
[INFO] See /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook for generated file(s)
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:attached (make-assembly) @ tyrus-documentation ---
[INFO] Reading assembly descriptor: src/main/assembly/docbook.xml
[INFO] Building zip: /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/tyrus-documentation-1.20-docbook.zip
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:attach-artifact (attach-artifacts) @ tyrus-documentation ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-documentation ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-documentation ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/docs/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-documentation/1.20/tyrus-documentation-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/tyrus-documentation-1.20-docbook.zip to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-documentation/1.20/tyrus-documentation-1.20-docbook.zip
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/user-guide.pdf to /home/jenkins/.m2/repository/org/glassfish/tyrus/tyrus-documentation/1.20/tyrus-documentation-1.20-user-guide.pdf
[INFO] 
[INFO] ----------< org.glassfish.tyrus.ext:tyrus-extensions-project >----------
[INFO] Building Tyrus Extension Modules 1.20                            [21/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-extensions-project ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-extensions-project ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-extensions-project ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-extensions-project ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/ext/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/ext/tyrus-extensions-project/1.20/tyrus-extensions-project-1.20.pom
[INFO] 
[INFO] --------------< org.glassfish.tyrus.ext:tyrus-client-cli >--------------
[INFO] Building Tyrus CLI Client 1.20                                   [22/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-client-cli ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-client-cli ---
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-client-cli ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-client-cli ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/src/main/java/org/glassfish/tyrus/ext/client/cli/ClientCli.java: /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/src/main/java/org/glassfish/tyrus/ext/client/cli/ClientCli.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/src/main/java/org/glassfish/tyrus/ext/client/cli/ClientCli.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-client-cli ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-client-cli ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-client-cli ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-client-cli ---
[INFO] 
[INFO] --- maven-shade-plugin:2.1:shade (default) @ tyrus-client-cli ---
[WARNING] Map in class org.apache.maven.plugins.shade.resource.ManifestResourceTransformer declares value type as: class java.util.jar.Attributes but saw: class java.lang.String at runtime
[INFO] Including org.glassfish.tyrus:tyrus-client:jar:1.20 in the shaded jar.
[INFO] Including org.glassfish.tyrus:tyrus-core:jar:1.20 in the shaded jar.
[INFO] Including org.glassfish.tyrus:tyrus-spi:jar:1.20 in the shaded jar.
[INFO] Including javax.websocket:javax.websocket-api:jar:1.1 in the shaded jar.
[INFO] Including jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3 in the shaded jar.
[INFO] Including jakarta.activation:jakarta.activation-api:jar:1.2.2 in the shaded jar.
[INFO] Including org.glassfish.tyrus:tyrus-container-grizzly-client:jar:1.20 in the shaded jar.
[INFO] Including org.glassfish.grizzly:grizzly-framework:jar:2.4.4 in the shaded jar.
[INFO] Including org.glassfish.grizzly:grizzly-http-server:jar:2.4.4 in the shaded jar.
[INFO] Including org.glassfish.grizzly:grizzly-http:jar:2.4.4 in the shaded jar.
[INFO] Including jline:jline:jar:2.14.5 in the shaded jar.
[WARNING] jakarta.xml.bind-api-2.3.3.jar, jakarta.activation-api-1.2.2.jar define 1 overlappping classes: 
[WARNING]   - module-info
[WARNING] maven-shade-plugin has detected that some .class files
[WARNING] are present in two or more JARs. When this happens, only
[WARNING] one single version of the class is copied in the uberjar.
[WARNING] Usually this is not harmful and you can skeep these
[WARNING] warnings, otherwise try to manually exclude artifacts
[WARNING] based on mvn dependency:tree -Ddetail=true and the above
[WARNING] output
[WARNING] See http://docs.codehaus.org/display/MAVENUSER/Shade+Plugin
[INFO] Replacing original artifact with shaded artifact.
[INFO] Replacing /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/target/tyrus-client-cli-1.20.jar with /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/target/tyrus-client-cli-1.20-shaded.jar
[INFO] Dependency-reduced POM written at: /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/target/dependency-reduced-pom.xml
[INFO] Dependency-reduced POM written at: /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/target/dependency-reduced-pom.xml
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-client-cli ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/target/tyrus-client-cli-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-client-cli ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/target/dependency-reduced-pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/ext/tyrus-client-cli/1.20/tyrus-client-cli-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/target/tyrus-client-cli-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/ext/tyrus-client-cli/1.20/tyrus-client-cli-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-cli/target/tyrus-client-cli-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/ext/tyrus-client-cli/1.20/tyrus-client-cli-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-client-cli ---
[INFO] Installing org/glassfish/tyrus/ext/tyrus-client-cli/1.20/tyrus-client-cli-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] ------------< org.glassfish.tyrus.ext:tyrus-monitoring-jmx >------------
[INFO] Building Tyrus Monitoring JMX 1.20                               [23/65]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-monitoring-jmx ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-monitoring-jmx ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-monitoring-jmx ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/ext/monitoring-jmx/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-monitoring-jmx ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 28 source files to /home/jenkins/agent/workspace/documentation-update-after-release/ext/monitoring-jmx/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-monitoring-jmx ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/ext/monitoring-jmx/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-monitoring-jmx ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 12 source files to /home/jenkins/agent/workspace/documentation-update-after-release/ext/monitoring-jmx/target/test-classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/ext/monitoring-jmx/src/test/java/org/glassfish/tyrus/ext/monitoring/jmx/BroadcastTest.java: Some input files use or override a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/ext/monitoring-jmx/src/test/java/org/glassfish/tyrus/ext/monitoring/jmx/BroadcastTest.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-monitoring-jmx ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ tyrus-monitoring-jmx ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/ext/monitoring-jmx/target/tyrus-monitoring-jmx-1.20.jar
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-monitoring-jmx ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/ext/monitoring-jmx/target/tyrus-monitoring-jmx-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-monitoring-jmx ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/ext/monitoring-jmx/target/tyrus-monitoring-jmx-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/ext/tyrus-monitoring-jmx/1.20/tyrus-monitoring-jmx-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/ext/monitoring-jmx/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/ext/tyrus-monitoring-jmx/1.20/tyrus-monitoring-jmx-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/ext/monitoring-jmx/target/tyrus-monitoring-jmx-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/ext/tyrus-monitoring-jmx/1.20/tyrus-monitoring-jmx-1.20-sources.jar
[INFO] 
[INFO] ----------< org.glassfish.tyrus.ext:tyrus-extension-deflate >-----------
[INFO] Building Tyrus Extension - Per Message Deflate 1.20              [24/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-extension-deflate ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-extension-deflate ---
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-extension-deflate ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/ext/extension-deflate/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-extension-deflate ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /home/jenkins/agent/workspace/documentation-update-after-release/ext/extension-deflate/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-extension-deflate ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/ext/extension-deflate/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-extension-deflate ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/ext/extension-deflate/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-extension-deflate ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-extension-deflate ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-extension-deflate ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/ext/extension-deflate/target/tyrus-extension-deflate-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-extension-deflate ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/ext/extension-deflate/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/ext/tyrus-extension-deflate/1.20/tyrus-extension-deflate-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/ext/extension-deflate/target/tyrus-extension-deflate-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/ext/tyrus-extension-deflate/1.20/tyrus-extension-deflate-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/ext/extension-deflate/target/tyrus-extension-deflate-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/ext/tyrus-extension-deflate/1.20/tyrus-extension-deflate-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-extension-deflate ---
[INFO] Installing org/glassfish/tyrus/ext/tyrus-extension-deflate/1.20/tyrus-extension-deflate-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] -------------< org.glassfish.tyrus.ext:tyrus-client-java8 >-------------
[INFO] Building Tyrus Java8 Client Extension 1.20                       [25/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-client-java8 ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-client-java8 ---
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ tyrus-client-java8 ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-java8/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-client-java8 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-java8/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-java8/src/main/java/org/glassfish/tyrus/ext/client/java8/SessionBuilder.java: /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-java8/src/main/java/org/glassfish/tyrus/ext/client/java8/SessionBuilder.java uses unchecked or unsafe operations.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-java8/src/main/java/org/glassfish/tyrus/ext/client/java8/SessionBuilder.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ tyrus-client-java8 ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-java8/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-client-java8 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-java8/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-client-java8 ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ tyrus-client-java8 ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-client-java8 ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-java8/target/tyrus-client-java8-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ tyrus-client-java8 ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-java8/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/ext/tyrus-client-java8/1.20/tyrus-client-java8-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-java8/target/tyrus-client-java8-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/ext/tyrus-client-java8/1.20/tyrus-client-java8-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/ext/client-java8/target/tyrus-client-java8-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/ext/tyrus-client-java8/1.20/tyrus-client-java8-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ tyrus-client-java8 ---
[INFO] Installing org/glassfish/tyrus/ext/tyrus-client-java8/1.20/tyrus-client-java8-1.20.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] ---------< org.glassfish.tyrus.samples:tyrus-samples-project >----------
[INFO] Building Tyrus Samples 1.20                                      [26/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-samples-project ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-samples-project ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-samples-project ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-samples-project ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-samples-project/1.20/tyrus-samples-project-1.20.pom
[INFO] 
[INFO] ----------< org.glassfish.tyrus.samples:tyrus-sample-auction >----------
[INFO] Building Tyrus Auction Sample 1.20                               [27/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-sample-auction ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-sample-auction ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-sample-auction ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/auction/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-sample-auction ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 7 source files to /home/jenkins/agent/workspace/documentation-update-after-release/samples/auction/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-sample-auction ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/auction/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-sample-auction ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-sample-auction ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-sample-auction ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-sample-auction] in [/home/jenkins/agent/workspace/documentation-update-after-release/samples/auction/target/tyrus-sample-auction-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/samples/auction/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/samples/auction/target/tyrus-sample-auction-1.20.war
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:attached (assemble-src-zip) @ tyrus-sample-auction ---
[INFO] Reading assembly descriptor: ../etc/project-src-assembly.xml
[INFO] Building zip: /home/jenkins/agent/workspace/documentation-update-after-release/samples/auction/target/tyrus-sample-auction-1.20-project-src.zip
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-sample-auction ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/samples/auction/target/tyrus-sample-auction-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-sample-auction ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/auction/target/tyrus-sample-auction-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-auction/1.20/tyrus-sample-auction-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/auction/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-auction/1.20/tyrus-sample-auction-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/auction/target/tyrus-sample-auction-1.20-project-src.zip to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-auction/1.20/tyrus-sample-auction-1.20-project-src.zip
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/auction/target/tyrus-sample-auction-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-auction/1.20/tyrus-sample-auction-1.20-sources.jar
[INFO] 
[INFO] ------------< org.glassfish.tyrus.samples:tyrus-sample-cdi >------------
[INFO] Building Tyrus CDI Sample 1.20                                   [28/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-sample-cdi ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-sample-cdi ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-sample-cdi ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-sample-cdi ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 16 source files to /home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-sample-cdi ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-sample-cdi ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-sample-cdi ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-sample-cdi ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-sample-cdi] in [/home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/target/tyrus-sample-cdi-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/target/tyrus-sample-cdi-1.20.war
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:attached (assemble-src-zip) @ tyrus-sample-cdi ---
[INFO] Reading assembly descriptor: ../etc/project-src-assembly.xml
[INFO] Building zip: /home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/target/tyrus-sample-cdi-1.20-project-src.zip
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-sample-cdi ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/target/tyrus-sample-cdi-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-sample-cdi ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/target/tyrus-sample-cdi-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-cdi/1.20/tyrus-sample-cdi-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-cdi/1.20/tyrus-sample-cdi-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/target/tyrus-sample-cdi-1.20-project-src.zip to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-cdi/1.20/tyrus-sample-cdi-1.20-project-src.zip
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/target/tyrus-sample-cdi-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-cdi/1.20/tyrus-sample-cdi-1.20-sources.jar
[INFO] 
[INFO] -----------< org.glassfish.tyrus.samples:tyrus-sample-chat >------------
[INFO] Building Tyrus Chat Sample 1.20                                  [29/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-sample-chat ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-sample-chat ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-sample-chat ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-sample-chat ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 13 source files to /home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/src/main/java/org/glassfish/tyrus/sample/chat/chatdata/ChatMessage.java: Some input files use unchecked or unsafe operations.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/src/main/java/org/glassfish/tyrus/sample/chat/chatdata/ChatMessage.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-sample-chat ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-sample-chat ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-sample-chat ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-sample-chat ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-sample-chat] in [/home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/target/tyrus-sample-chat-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/target/tyrus-sample-chat-1.20.war
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:attached (assemble-src-zip) @ tyrus-sample-chat ---
[INFO] Reading assembly descriptor: ../etc/project-src-assembly.xml
[INFO] Building zip: /home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/target/tyrus-sample-chat-1.20-project-src.zip
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-sample-chat ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/target/tyrus-sample-chat-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-sample-chat ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/target/tyrus-sample-chat-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-chat/1.20/tyrus-sample-chat-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-chat/1.20/tyrus-sample-chat-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/target/tyrus-sample-chat-1.20-project-src.zip to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-chat/1.20/tyrus-sample-chat-1.20-project-src.zip
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/target/tyrus-sample-chat-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-chat/1.20/tyrus-sample-chat-1.20-sources.jar
[INFO] 
[INFO] -----------< org.glassfish.tyrus.samples:tyrus-sample-draw >------------
[INFO] Building Tyrus Draw Sample 1.20                                  [30/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-sample-draw ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-sample-draw ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-sample-draw ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/draw/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-sample-draw ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/samples/draw/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-sample-draw ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/draw/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-sample-draw ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-sample-draw ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-sample-draw ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-sample-draw] in [/home/jenkins/agent/workspace/documentation-update-after-release/samples/draw/target/tyrus-sample-draw-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/samples/draw/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/samples/draw/target/tyrus-sample-draw-1.20.war
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:attached (assemble-src-zip) @ tyrus-sample-draw ---
[INFO] Reading assembly descriptor: ../etc/project-src-assembly.xml
[INFO] Building zip: /home/jenkins/agent/workspace/documentation-update-after-release/samples/draw/target/tyrus-sample-draw-1.20-project-src.zip
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-sample-draw ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/samples/draw/target/tyrus-sample-draw-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-sample-draw ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/draw/target/tyrus-sample-draw-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-draw/1.20/tyrus-sample-draw-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/draw/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-draw/1.20/tyrus-sample-draw-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/draw/target/tyrus-sample-draw-1.20-project-src.zip to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-draw/1.20/tyrus-sample-draw-1.20-project-src.zip
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/draw/target/tyrus-sample-draw-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-draw/1.20/tyrus-sample-draw-1.20-sources.jar
[INFO] 
[INFO] -----------< org.glassfish.tyrus.samples:tyrus-sample-echo >------------
[INFO] Building Tyrus Echo Sample 1.20                                  [31/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-sample-echo ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-sample-echo ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-sample-echo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-sample-echo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-sample-echo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-sample-echo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-sample-echo ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-sample-echo ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-sample-echo] in [/home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/target/tyrus-sample-echo-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/target/tyrus-sample-echo-1.20.war
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:attached (assemble-src-zip) @ tyrus-sample-echo ---
[INFO] Reading assembly descriptor: ../etc/project-src-assembly.xml
[INFO] Building zip: /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/target/tyrus-sample-echo-1.20-project-src.zip
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-sample-echo ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/target/tyrus-sample-echo-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-sample-echo ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/target/tyrus-sample-echo-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-echo/1.20/tyrus-sample-echo-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-echo/1.20/tyrus-sample-echo-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/target/tyrus-sample-echo-1.20-project-src.zip to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-echo/1.20/tyrus-sample-echo-1.20-project-src.zip
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/target/tyrus-sample-echo-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-echo/1.20/tyrus-sample-echo-1.20-sources.jar
[INFO] 
[INFO] --------< org.glassfish.tyrus.samples:tyrus-sample-basic-auth >---------
[INFO] Building Tyrus Basic Auth Sample 1.20                            [32/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-sample-basic-auth ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-sample-basic-auth ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-sample-basic-auth ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-basic-auth/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-sample-basic-auth ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-basic-auth/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-sample-basic-auth ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-basic-auth/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-sample-basic-auth ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-basic-auth/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-sample-basic-auth ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-sample-basic-auth ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-sample-basic-auth] in [/home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-basic-auth/target/tyrus-sample-basic-auth-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-basic-auth/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-basic-auth/target/tyrus-sample-basic-auth-1.20.war
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:attached (assemble-src-zip) @ tyrus-sample-basic-auth ---
[INFO] Reading assembly descriptor: ../etc/project-src-assembly.xml
[INFO] Building zip: /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-basic-auth/target/tyrus-sample-basic-auth-1.20-project-src.zip
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-sample-basic-auth ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-basic-auth/target/tyrus-sample-basic-auth-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-sample-basic-auth ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-basic-auth/target/tyrus-sample-basic-auth-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-basic-auth/1.20/tyrus-sample-basic-auth-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-basic-auth/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-basic-auth/1.20/tyrus-sample-basic-auth-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-basic-auth/target/tyrus-sample-basic-auth-1.20-project-src.zip to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-basic-auth/1.20/tyrus-sample-basic-auth-1.20-project-src.zip
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-basic-auth/target/tyrus-sample-basic-auth-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-basic-auth/1.20/tyrus-sample-basic-auth-1.20-sources.jar
[INFO] 
[INFO] --------< org.glassfish.tyrus.samples:tyrus-sample-echo-https >---------
[INFO] Building Tyrus Secure Echo Sample 1.20                           [33/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-sample-echo-https ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-sample-echo-https ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-sample-echo-https ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-sample-echo-https ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-sample-echo-https ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-sample-echo-https ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-sample-echo-https ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-sample-echo-https ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-sample-echo-https] in [/home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/target/tyrus-sample-echo-https-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/target/tyrus-sample-echo-https-1.20.war
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:attached (assemble-src-zip) @ tyrus-sample-echo-https ---
[INFO] Reading assembly descriptor: ../etc/project-src-assembly.xml
[INFO] Building zip: /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/target/tyrus-sample-echo-https-1.20-project-src.zip
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-sample-echo-https ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/target/tyrus-sample-echo-https-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-sample-echo-https ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/target/tyrus-sample-echo-https-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-echo-https/1.20/tyrus-sample-echo-https-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-echo-https/1.20/tyrus-sample-echo-https-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/target/tyrus-sample-echo-https-1.20-project-src.zip to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-echo-https/1.20/tyrus-sample-echo-https-1.20-project-src.zip
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/target/tyrus-sample-echo-https-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-echo-https/1.20/tyrus-sample-echo-https-1.20-sources.jar
[INFO] 
[INFO] -----< org.glassfish.tyrus.samples:tyrus-sample-programmatic-echo >-----
[INFO] Building Tyrus Programmatic Echo Sample 1.20                     [34/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-sample-programmatic-echo ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-sample-programmatic-echo ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-sample-programmatic-echo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-sample-programmatic-echo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-sample-programmatic-echo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-sample-programmatic-echo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-sample-programmatic-echo ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-sample-programmatic-echo ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-sample-programmatic-echo] in [/home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/target/tyrus-sample-programmatic-echo-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/target/tyrus-sample-programmatic-echo-1.20.war
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:attached (assemble-src-zip) @ tyrus-sample-programmatic-echo ---
[INFO] Reading assembly descriptor: ../etc/project-src-assembly.xml
[INFO] Building zip: /home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/target/tyrus-sample-programmatic-echo-1.20-project-src.zip
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-sample-programmatic-echo ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/target/tyrus-sample-programmatic-echo-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-sample-programmatic-echo ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/target/tyrus-sample-programmatic-echo-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-programmatic-echo/1.20/tyrus-sample-programmatic-echo-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-programmatic-echo/1.20/tyrus-sample-programmatic-echo-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/target/tyrus-sample-programmatic-echo-1.20-project-src.zip to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-programmatic-echo/1.20/tyrus-sample-programmatic-echo-1.20-project-src.zip
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/target/tyrus-sample-programmatic-echo-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-programmatic-echo/1.20/tyrus-sample-programmatic-echo-1.20-sources.jar
[INFO] 
[INFO] --------< org.glassfish.tyrus.samples:tyrus-sample-simplelife >---------
[INFO] Building Tyrus Simple Life Sample 1.20                           [35/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-sample-simplelife ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-sample-simplelife ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-sample-simplelife ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/simplelife/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-sample-simplelife ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/samples/simplelife/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-sample-simplelife ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/simplelife/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-sample-simplelife ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-sample-simplelife ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-sample-simplelife ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-sample-simplelife] in [/home/jenkins/agent/workspace/documentation-update-after-release/samples/simplelife/target/tyrus-sample-simplelife-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/samples/simplelife/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/samples/simplelife/target/tyrus-sample-simplelife-1.20.war
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:attached (assemble-src-zip) @ tyrus-sample-simplelife ---
[INFO] Reading assembly descriptor: ../etc/project-src-assembly.xml
[INFO] Building zip: /home/jenkins/agent/workspace/documentation-update-after-release/samples/simplelife/target/tyrus-sample-simplelife-1.20-project-src.zip
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-sample-simplelife ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/samples/simplelife/target/tyrus-sample-simplelife-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-sample-simplelife ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/simplelife/target/tyrus-sample-simplelife-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-simplelife/1.20/tyrus-sample-simplelife-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/simplelife/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-simplelife/1.20/tyrus-sample-simplelife-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/simplelife/target/tyrus-sample-simplelife-1.20-project-src.zip to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-simplelife/1.20/tyrus-sample-simplelife-1.20-project-src.zip
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/simplelife/target/tyrus-sample-simplelife-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-simplelife/1.20/tyrus-sample-simplelife-1.20-sources.jar
[INFO] 
[INFO] -----< org.glassfish.tyrus.samples:tyrus-sample-shared-collection >-----
[INFO] Building Tyrus Shared Collection Sample 1.20                     [36/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-sample-shared-collection ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-sample-shared-collection ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-sample-shared-collection ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/shared-collection/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-sample-shared-collection ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /home/jenkins/agent/workspace/documentation-update-after-release/samples/shared-collection/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-sample-shared-collection ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/samples/shared-collection/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-sample-shared-collection ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /home/jenkins/agent/workspace/documentation-update-after-release/samples/shared-collection/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-sample-shared-collection ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-sample-shared-collection ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-sample-shared-collection] in [/home/jenkins/agent/workspace/documentation-update-after-release/samples/shared-collection/target/tyrus-sample-shared-collection-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/samples/shared-collection/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/samples/shared-collection/target/tyrus-sample-shared-collection-1.20.war
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:attached (assemble-src-zip) @ tyrus-sample-shared-collection ---
[INFO] Reading assembly descriptor: ../etc/project-src-assembly.xml
[INFO] Building zip: /home/jenkins/agent/workspace/documentation-update-after-release/samples/shared-collection/target/tyrus-sample-shared-collection-1.20-project-src.zip
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-sample-shared-collection ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/samples/shared-collection/target/tyrus-sample-shared-collection-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-sample-shared-collection ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/shared-collection/target/tyrus-sample-shared-collection-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-shared-collection/1.20/tyrus-sample-shared-collection-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/shared-collection/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-shared-collection/1.20/tyrus-sample-shared-collection-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/shared-collection/target/tyrus-sample-shared-collection-1.20-project-src.zip to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-shared-collection/1.20/tyrus-sample-shared-collection-1.20-project-src.zip
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/samples/shared-collection/target/tyrus-sample-shared-collection-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/samples/tyrus-sample-shared-collection/1.20/tyrus-sample-shared-collection-1.20-sources.jar
[INFO] 
[INFO] -------------< org.glassfish.tyrus.tests:tyrus-tests-e2e >--------------
[INFO] Building Tyrus End-to-End Tests 1.20                             [37/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-e2e ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-e2e ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-e2e ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-e2e ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e/1.20/tyrus-tests-e2e-1.20.pom
[INFO] 
[INFO] --------< org.glassfish.tyrus.tests:tyrus-tests-e2e-appconfig >---------
[INFO] Building Tyrus End-to-End Application Config Tests 1.20          [38/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-e2e-appconfig ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-e2e-appconfig ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-e2e-appconfig ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/application-config/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-e2e-appconfig ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-e2e-appconfig ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/application-config/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-e2e-appconfig ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 9 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/application-config/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-e2e-appconfig ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-e2e-appconfig ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-e2e-appconfig] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/application-config/target/tyrus-tests-e2e-appconfig-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/application-config/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/application-config/target/tyrus-tests-e2e-appconfig-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-e2e-appconfig ---
[INFO] No sources in project. Archive not created.
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-e2e-appconfig ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/application-config/target/tyrus-tests-e2e-appconfig-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-appconfig/1.20/tyrus-tests-e2e-appconfig-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/application-config/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-appconfig/1.20/tyrus-tests-e2e-appconfig-1.20.pom
[INFO] 
[INFO] ------< org.glassfish.tyrus.tests:tyrus-tests-e2e-nondeployable >-------
[INFO] Building Tyrus End-to-End Non-deployable Tests 1.20              [39/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-e2e-nondeployable ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-e2e-nondeployable ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-e2e-nondeployable ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/non-deployable/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-e2e-nondeployable ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-e2e-nondeployable ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/non-deployable/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-e2e-nondeployable ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 21 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/non-deployable/target/test-classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/non-deployable/src/test/java/org/glassfish/tyrus/test/e2e/non_deployable/AnnotatedClassModelcheckingTest.java: /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/non-deployable/src/test/java/org/glassfish/tyrus/test/e2e/non_deployable/AnnotatedClassModelcheckingTest.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/non-deployable/src/test/java/org/glassfish/tyrus/test/e2e/non_deployable/AnnotatedClassModelcheckingTest.java: Recompile with -Xlint:deprecation for details.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/non-deployable/src/test/java/org/glassfish/tyrus/test/e2e/non_deployable/GetEndpointInstanceTest.java: /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/non-deployable/src/test/java/org/glassfish/tyrus/test/e2e/non_deployable/GetEndpointInstanceTest.java uses unchecked or unsafe operations.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/non-deployable/src/test/java/org/glassfish/tyrus/test/e2e/non_deployable/GetEndpointInstanceTest.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-e2e-nondeployable ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-e2e-nondeployable ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-e2e-nondeployable] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/non-deployable/target/tyrus-tests-e2e-nondeployable-1.20]
[INFO] Processing war project
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/non-deployable/target/tyrus-tests-e2e-nondeployable-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-e2e-nondeployable ---
[INFO] No sources in project. Archive not created.
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-e2e-nondeployable ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/non-deployable/target/tyrus-tests-e2e-nondeployable-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-nondeployable/1.20/tyrus-tests-e2e-nondeployable-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/non-deployable/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-nondeployable/1.20/tyrus-tests-e2e-nondeployable-1.20.pom
[INFO] 
[INFO] --------< org.glassfish.tyrus.tests:tyrus-tests-e2e-stdconfig >---------
[INFO] Building Tyrus End-to-End Standard Config Tests 1.20             [40/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-e2e-stdconfig ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-e2e-stdconfig ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-e2e-stdconfig ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/standard-config/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-e2e-stdconfig ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-e2e-stdconfig ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 5 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-e2e-stdconfig ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 83 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/standard-config/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-e2e-stdconfig ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-e2e-stdconfig ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-e2e-stdconfig] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/standard-config/target/tyrus-tests-e2e-stdconfig-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/standard-config/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/standard-config/target/tyrus-tests-e2e-stdconfig-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-e2e-stdconfig ---
[INFO] No sources in project. Archive not created.
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-e2e-stdconfig ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/standard-config/target/tyrus-tests-e2e-stdconfig-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-stdconfig/1.20/tyrus-tests-e2e-stdconfig-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/standard-config/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-stdconfig/1.20/tyrus-tests-e2e-stdconfig-1.20.pom
[INFO] 
[INFO] -----------< org.glassfish.tyrus.tests:tyrus-tests-e2e-jdk8 >-----------
[INFO] Building Tyrus End-to-End Java 8 Tests 1.20                      [41/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-e2e-jdk8 ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-e2e-jdk8 ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-e2e-jdk8 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jdk8/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-e2e-jdk8 ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-e2e-jdk8 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jdk8/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-e2e-jdk8 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jdk8/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-e2e-jdk8 ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-e2e-jdk8 ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-e2e-jdk8] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jdk8/target/tyrus-tests-e2e-jdk8-1.20]
[INFO] Processing war project
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jdk8/target/tyrus-tests-e2e-jdk8-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-e2e-jdk8 ---
[INFO] No sources in project. Archive not created.
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-e2e-jdk8 ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jdk8/target/tyrus-tests-e2e-jdk8-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-jdk8/1.20/tyrus-tests-e2e-jdk8-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jdk8/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-jdk8/1.20/tyrus-tests-e2e-jdk8-1.20.pom
[INFO] 
[INFO] ----------< org.glassfish.tyrus.tests:tyrus-tests-e2e-jetty >-----------
[INFO] Building Tyrus End-to-End Tests running on Jetty 1.20            [42/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-e2e-jetty ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-e2e-jetty ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-e2e-jetty ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-e2e-jetty ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-jetty/1.20/tyrus-tests-e2e-jetty-1.20.pom
[INFO] 
[INFO] --------< org.glassfish.tyrus.tests:tyrus-tests-e2e-auth-basic >--------
[INFO] Building Tyrus End-to-End Basic Auth Tests 1.20                  [43/65]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-e2e-auth-basic ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-e2e-auth-basic ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-e2e-auth-basic ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-e2e-auth-basic ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-e2e-auth-basic ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-e2e-auth-basic ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/target/test-classes
[INFO] 
[INFO] >>> jetty-maven-plugin:9.2.1.v20140609:start (start-jetty) > validate @ tyrus-tests-e2e-auth-basic >>>
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-e2e-auth-basic ---
[INFO] 
[INFO] <<< jetty-maven-plugin:9.2.1.v20140609:start (start-jetty) < validate @ tyrus-tests-e2e-auth-basic <<<
[INFO] 
[INFO] 
[INFO] --- jetty-maven-plugin:9.2.1.v20140609:start (start-jetty) @ tyrus-tests-e2e-auth-basic ---
[INFO] Logging initialized @113837ms
[INFO] Configuring Jetty for project: Tyrus End-to-End Basic Auth Tests
[INFO] webAppSourceDirectory not set. Trying src/main/webapp
[INFO] Reload Mechanic: automatic
[INFO] Classes = /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/target/classes
[INFO] Context path = /
[INFO] Tmp directory = /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/target/tmp
[INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
[INFO] Web overrides =  none
[INFO] web.xml file = file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/src/main/webapp/WEB-INF/web.xml
[INFO] Webapp directory = /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/src/main/webapp
[INFO] jetty-9.2.1.v20140609
[INFO] Warning: No org.apache.tomcat.JarScanner set in ServletContext. Falling back to default JarScanner implementation.
[WARNING] ServletContext@o.e.j.m.p.JettyWebAppContext@68abc5ae{/e2e-basic-auth-test,file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/src/main/webapp/,STARTING}{file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/src/main/webapp/} has uncovered http methods for path: /*
[INFO] Started o.e.j.m.p.JettyWebAppContext@68abc5ae{/e2e-basic-auth-test,file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/src/main/webapp/,AVAILABLE}{file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/src/main/webapp/}
[WARNING] !RequestLog
[INFO] Started ServerConnector@a8ebf55{HTTP/1.1}{0.0.0.0:8025}
[INFO] Started @114502ms
[INFO] Started Jetty Server
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-e2e-auth-basic ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- jetty-maven-plugin:9.2.1.v20140609:stop (stop-jetty) @ tyrus-tests-e2e-auth-basic ---
[INFO] Waiting 5 seconds for jetty to stop
[INFO] Stopped ServerConnector@a8ebf55{HTTP/1.1}{0.0.0.0:8025}
[INFO] Stopped o.e.j.m.p.JettyWebAppContext@68abc5ae{/e2e-basic-auth-test,file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/src/main/webapp/,UNAVAILABLE}{file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/src/main/webapp/}
[INFO] Server reports itself as stopped
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ tyrus-tests-e2e-auth-basic ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/target/tyrus-tests-e2e-auth-basic-1.20.jar
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-e2e-auth-basic ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/target/tyrus-tests-e2e-auth-basic-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-e2e-auth-basic ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/target/tyrus-tests-e2e-auth-basic-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-auth-basic/1.20/tyrus-tests-e2e-auth-basic-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-auth-basic/1.20/tyrus-tests-e2e-auth-basic-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-basic/target/tyrus-tests-e2e-auth-basic-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-auth-basic/1.20/tyrus-tests-e2e-auth-basic-1.20-sources.jar
[INFO] 
[INFO] -------< org.glassfish.tyrus.tests:tyrus-tests-e2e-auth-digest >--------
[INFO] Building Tyrus End-to-End Digest Auth Tests 1.20                 [44/65]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-e2e-auth-digest ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-e2e-auth-digest ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-e2e-auth-digest ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-e2e-auth-digest ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-e2e-auth-digest ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-e2e-auth-digest ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/target/test-classes
[INFO] 
[INFO] >>> jetty-maven-plugin:9.2.1.v20140609:start (start-jetty) > validate @ tyrus-tests-e2e-auth-digest >>>
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-e2e-auth-digest ---
[INFO] 
[INFO] <<< jetty-maven-plugin:9.2.1.v20140609:start (start-jetty) < validate @ tyrus-tests-e2e-auth-digest <<<
[INFO] 
[INFO] 
[INFO] --- jetty-maven-plugin:9.2.1.v20140609:start (start-jetty) @ tyrus-tests-e2e-auth-digest ---
[INFO] Configuring Jetty for project: Tyrus End-to-End Digest Auth Tests
[INFO] webAppSourceDirectory not set. Trying src/main/webapp
[INFO] Reload Mechanic: automatic
[INFO] Classes = /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/target/classes
[INFO] Context path = /
[INFO] Tmp directory = /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/target/tmp
[INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
[INFO] Web overrides =  none
[INFO] web.xml file = file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/src/main/webapp/WEB-INF/web.xml
[INFO] Webapp directory = /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/src/main/webapp
[INFO] jetty-9.2.1.v20140609
[INFO] Warning: No org.apache.tomcat.JarScanner set in ServletContext. Falling back to default JarScanner implementation.
[WARNING] ServletContext@o.e.j.m.p.JettyWebAppContext@7b3e8c4f{/e2e-digest-auth-test,file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/src/main/webapp/,STARTING}{file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/src/main/webapp/} has uncovered http methods for path: /*
[INFO] Started o.e.j.m.p.JettyWebAppContext@7b3e8c4f{/e2e-digest-auth-test,file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/src/main/webapp/,AVAILABLE}{file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/src/main/webapp/}
[WARNING] !RequestLog
[INFO] Started ServerConnector@7ec3b527{HTTP/1.1}{0.0.0.0:8025}
[INFO] Started @115265ms
[INFO] Started Jetty Server
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-e2e-auth-digest ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- jetty-maven-plugin:9.2.1.v20140609:stop (stop-jetty) @ tyrus-tests-e2e-auth-digest ---
[INFO] Waiting 5 seconds for jetty to stop
[INFO] Stopped ServerConnector@7ec3b527{HTTP/1.1}{0.0.0.0:8025}
[INFO] Stopped o.e.j.m.p.JettyWebAppContext@7b3e8c4f{/e2e-digest-auth-test,file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/src/main/webapp/,UNAVAILABLE}{file:/home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/src/main/webapp/}
[INFO] Server reports itself as stopped
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ tyrus-tests-e2e-auth-digest ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/target/tyrus-tests-e2e-auth-digest-1.20.jar
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-e2e-auth-digest ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/target/tyrus-tests-e2e-auth-digest-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-e2e-auth-digest ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/target/tyrus-tests-e2e-auth-digest-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-auth-digest/1.20/tyrus-tests-e2e-auth-digest-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-auth-digest/1.20/tyrus-tests-e2e-auth-digest-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/e2e/jetty/auth-digest/target/tyrus-tests-e2e-auth-digest-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/tyrus-tests-e2e-auth-digest/1.20/tyrus-tests-e2e-auth-digest-1.20-sources.jar
[INFO] 
[INFO] ---< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-project >----
[INFO] Building Tyrus Server Integration Tests 1.20                     [45/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-project ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-project ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-project ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-project ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-project/1.20/tyrus-tests-servlet-project-1.20.pom
[INFO] 
[INFO] ----< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-async >-----
[INFO] Building Tyrus Servlet Async Tests 1.20                          [46/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-async ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-async ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-async ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/async/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-async ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 7 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/async/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-async ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/async/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-async ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/async/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-async ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-async ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-async] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/async/target/tyrus-tests-servlet-async-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/async/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/async/target/tyrus-tests-servlet-async-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-async ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/async/target/tyrus-tests-servlet-async-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-async ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/async/target/tyrus-tests-servlet-async-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-async/1.20/tyrus-tests-servlet-async-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/async/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-async/1.20/tyrus-tests-servlet-async-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/async/target/tyrus-tests-servlet-async-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-async/1.20/tyrus-tests-servlet-async-1.20-sources.jar
[INFO] 
[INFO] --< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-autobahn-server >--
[INFO] Building Tyrus Autobahn Echo Server 1.20                         [47/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-autobahn-server ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-autobahn-server ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-autobahn-server ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/autobahn-server/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-autobahn-server ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/autobahn-server/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-autobahn-server ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/autobahn-server/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-autobahn-server ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/autobahn-server/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-autobahn-server ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-autobahn-server ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-autobahn-server] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/autobahn-server/target/tyrus-tests-servlet-autobahn-server-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/autobahn-server/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/autobahn-server/target/tyrus-tests-servlet-autobahn-server-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-autobahn-server ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/autobahn-server/target/tyrus-tests-servlet-autobahn-server-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-autobahn-server ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/autobahn-server/target/tyrus-tests-servlet-autobahn-server-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-autobahn-server/1.20/tyrus-tests-servlet-autobahn-server-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/autobahn-server/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-autobahn-server/1.20/tyrus-tests-servlet-autobahn-server-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/autobahn-server/target/tyrus-tests-servlet-autobahn-server-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-autobahn-server/1.20/tyrus-tests-servlet-autobahn-server-1.20-sources.jar
[INFO] 
[INFO] ----< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-basic >-----
[INFO] Building Tyrus Servlet Basic Tests 1.20                          [48/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-basic ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-basic ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-basic ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-basic ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 6 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-basic ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-basic ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/target/test-classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/src/test/java/org/glassfish/tyrus/tests/servlet/basic/ServletTestBase.java: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/src/test/java/org/glassfish/tyrus/tests/servlet/basic/ServletTestBase.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/src/test/java/org/glassfish/tyrus/tests/servlet/basic/ServletTestBase.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-basic ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-basic ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-basic] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/target/tyrus-tests-servlet-basic-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/target/tyrus-tests-servlet-basic-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-basic ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/target/tyrus-tests-servlet-basic-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-basic ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/target/tyrus-tests-servlet-basic-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-basic/1.20/tyrus-tests-servlet-basic-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-basic/1.20/tyrus-tests-servlet-basic-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/basic/target/tyrus-tests-servlet-basic-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-basic/1.20/tyrus-tests-servlet-basic-1.20-sources.jar
[INFO] 
[INFO] --< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-dynamic-deploy >--
[INFO] Building Tyrus Servlet Dynamic Deploy Test 1.20                  [49/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-dynamic-deploy ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-dynamic-deploy ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-dynamic-deploy ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/dynamic-deploy/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-dynamic-deploy ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 4 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/dynamic-deploy/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-dynamic-deploy ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/dynamic-deploy/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-dynamic-deploy ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/dynamic-deploy/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-dynamic-deploy ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-dynamic-deploy ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-dynamic-deploy] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/dynamic-deploy/target/tyrus-tests-servlet-dynamic-deploy-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/dynamic-deploy/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/dynamic-deploy/target/tyrus-tests-servlet-dynamic-deploy-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-dynamic-deploy ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/dynamic-deploy/target/tyrus-tests-servlet-dynamic-deploy-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-dynamic-deploy ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/dynamic-deploy/target/tyrus-tests-servlet-dynamic-deploy-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-dynamic-deploy/1.20/tyrus-tests-servlet-dynamic-deploy-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/dynamic-deploy/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-dynamic-deploy/1.20/tyrus-tests-servlet-dynamic-deploy-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/dynamic-deploy/target/tyrus-tests-servlet-dynamic-deploy-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-dynamic-deploy/1.20/tyrus-tests-servlet-dynamic-deploy-1.20-sources.jar
[INFO] 
[INFO] --< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-noappconfig >--
[INFO] Building Tyrus Servlet No App Config 1.20                        [50/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-noappconfig ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-noappconfig ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-noappconfig ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-noappconfig ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-noappconfig ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-noappconfig ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/target/test-classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/src/test/java/org/glassfish/tyrus/test/servlet/noappconfig/NoServerApplicationConfigDeployTest.java: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/src/test/java/org/glassfish/tyrus/test/servlet/noappconfig/NoServerApplicationConfigDeployTest.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/src/test/java/org/glassfish/tyrus/test/servlet/noappconfig/NoServerApplicationConfigDeployTest.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-noappconfig ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-noappconfig ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-noappconfig] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/target/tyrus-tests-servlet-noappconfig-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/target/tyrus-tests-servlet-noappconfig-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-noappconfig ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/target/tyrus-tests-servlet-noappconfig-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-noappconfig ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/target/tyrus-tests-servlet-noappconfig-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-noappconfig/1.20/tyrus-tests-servlet-noappconfig-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-noappconfig/1.20/tyrus-tests-servlet-noappconfig-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/noappconfig/target/tyrus-tests-servlet-noappconfig-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-noappconfig/1.20/tyrus-tests-servlet-noappconfig-1.20-sources.jar
[INFO] 
[INFO] --< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-oneappconfig >--
[INFO] Building Tyrus Servlet One App Config 1.20                       [51/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-oneappconfig ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-oneappconfig ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-oneappconfig ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-oneappconfig ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 4 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-oneappconfig ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-oneappconfig ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/target/test-classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/src/test/java/org/glassfish/tyrus/tests/servlet/oneappconfig/OneServerApplicationConfigDeployTest.java: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/src/test/java/org/glassfish/tyrus/tests/servlet/oneappconfig/OneServerApplicationConfigDeployTest.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/src/test/java/org/glassfish/tyrus/tests/servlet/oneappconfig/OneServerApplicationConfigDeployTest.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-oneappconfig ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-oneappconfig ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-oneappconfig] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/target/tyrus-tests-servlet-oneappconfig-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/target/tyrus-tests-servlet-oneappconfig-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-oneappconfig ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/target/tyrus-tests-servlet-oneappconfig-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-oneappconfig ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/target/tyrus-tests-servlet-oneappconfig-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-oneappconfig/1.20/tyrus-tests-servlet-oneappconfig-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-oneappconfig/1.20/tyrus-tests-servlet-oneappconfig-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/oneappconfig/target/tyrus-tests-servlet-oneappconfig-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-oneappconfig/1.20/tyrus-tests-servlet-oneappconfig-1.20-sources.jar
[INFO] 
[INFO] ----< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-remote >----
[INFO] Building Tyrus Servlet RemoteEndpoint Timeout 1.20               [52/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-remote ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-remote ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-remote ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-remote ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 6 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/src/main/java/org/glassfish/tyrus/tests/servlet/remote/SingletonConfigurator.java: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/src/main/java/org/glassfish/tyrus/tests/servlet/remote/SingletonConfigurator.java uses unchecked or unsafe operations.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/src/main/java/org/glassfish/tyrus/tests/servlet/remote/SingletonConfigurator.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-remote ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-remote ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/target/test-classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/src/test/java/org/glassfish/tyrus/tests/servlet/remote/RemoteApplicationTest.java: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/src/test/java/org/glassfish/tyrus/tests/servlet/remote/RemoteApplicationTest.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/src/test/java/org/glassfish/tyrus/tests/servlet/remote/RemoteApplicationTest.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-remote ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-remote ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-remote] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/target/tyrus-tests-servlet-remote-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/target/tyrus-tests-servlet-remote-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-remote ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/target/tyrus-tests-servlet-remote-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-remote ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/target/tyrus-tests-servlet-remote-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-remote/1.20/tyrus-tests-servlet-remote-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-remote/1.20/tyrus-tests-servlet-remote-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/remote-endpoint-timeout/target/tyrus-tests-servlet-remote-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-remote/1.20/tyrus-tests-servlet-remote-1.20-sources.jar
[INFO] 
[INFO] ---< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-session >----
[INFO] Building Tyrus Servlet Session Closing 1.20                      [53/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-session ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-session ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-session ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-session ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 7 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/src/main/java/org/glassfish/tyrus/tests/servlet/session/SingletonConfigurator.java: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/src/main/java/org/glassfish/tyrus/tests/servlet/session/SingletonConfigurator.java uses unchecked or unsafe operations.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/src/main/java/org/glassfish/tyrus/tests/servlet/session/SingletonConfigurator.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-session ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-session ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/target/test-classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/src/test/java/org/glassfish/tyrus/test/servlet/session/SessionIdleTimeoutTest.java: Some input files use or override a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/src/test/java/org/glassfish/tyrus/test/servlet/session/SessionIdleTimeoutTest.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-session ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-session ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-session] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/target/tyrus-tests-servlet-session-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/target/tyrus-tests-servlet-session-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-session ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/target/tyrus-tests-servlet-session-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-session ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/target/tyrus-tests-servlet-session-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-session/1.20/tyrus-tests-servlet-session-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-session/1.20/tyrus-tests-servlet-session-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/session/target/tyrus-tests-servlet-session-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-session/1.20/tyrus-tests-servlet-session-1.20-sources.jar
[INFO] 
[INFO] --< org.glassfish.tyrus.tests.servlet.twoappconfig:tyrus-tests-servlet-twoappconfig >--
[INFO] Building Tyrus Servlet Two App Config 1.20                       [54/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-twoappconfig ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-twoappconfig ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-twoappconfig ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-twoappconfig ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 6 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-twoappconfig ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-twoappconfig ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/target/test-classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/src/test/java/org/glassfish/tyrus/tests/servlet/twoappconfig/TwoServerApplicationConfigDeployTest.java: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/src/test/java/org/glassfish/tyrus/tests/servlet/twoappconfig/TwoServerApplicationConfigDeployTest.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/src/test/java/org/glassfish/tyrus/tests/servlet/twoappconfig/TwoServerApplicationConfigDeployTest.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-twoappconfig ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-twoappconfig ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-twoappconfig] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/target/tyrus-tests-servlet-twoappconfig-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/target/tyrus-tests-servlet-twoappconfig-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-twoappconfig ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/target/tyrus-tests-servlet-twoappconfig-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-twoappconfig ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/target/tyrus-tests-servlet-twoappconfig-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/twoappconfig/tyrus-tests-servlet-twoappconfig/1.20/tyrus-tests-servlet-twoappconfig-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/twoappconfig/tyrus-tests-servlet-twoappconfig/1.20/tyrus-tests-servlet-twoappconfig-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/twoappconfig/target/tyrus-tests-servlet-twoappconfig-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/twoappconfig/tyrus-tests-servlet-twoappconfig/1.20/tyrus-tests-servlet-twoappconfig-1.20-sources.jar
[INFO] 
[INFO] --< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-mbean-test >--
[INFO] Building Tyrus Servlet Monitoring Test 1.20                      [55/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-mbean-test ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-mbean-test ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-mbean-test ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/mbean/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-mbean-test ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/mbean/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-mbean-test ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/mbean/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-mbean-test ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/mbean/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-mbean-test ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-mbean-test ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-mbean-test] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/mbean/target/tyrus-tests-servlet-mbean-test-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/mbean/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/mbean/target/tyrus-tests-servlet-mbean-test-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-mbean-test ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/mbean/target/tyrus-tests-servlet-mbean-test-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-mbean-test ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/mbean/target/tyrus-tests-servlet-mbean-test-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-mbean-test/1.20/tyrus-tests-servlet-mbean-test-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/mbean/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-mbean-test/1.20/tyrus-tests-servlet-mbean-test-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/mbean/target/tyrus-tests-servlet-mbean-test-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-mbean-test/1.20/tyrus-tests-servlet-mbean-test-1.20-sources.jar
[INFO] 
[INFO] ----< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-inject >----
[INFO] Building Tyrus Servlet Inject Test 1.20                          [56/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-inject ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-inject ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-inject ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/inject/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-inject ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/inject/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-inject ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/inject/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-inject ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/inject/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-inject ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-inject ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-inject] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/inject/target/tyrus-tests-servlet-inject-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/inject/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/inject/target/tyrus-tests-servlet-inject-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-inject ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/inject/target/tyrus-tests-servlet-inject-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-inject ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/inject/target/tyrus-tests-servlet-inject-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-inject/1.20/tyrus-tests-servlet-inject-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/inject/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-inject/1.20/tyrus-tests-servlet-inject-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/inject/target/tyrus-tests-servlet-inject-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-inject/1.20/tyrus-tests-servlet-inject-1.20-sources.jar
[INFO] 
[INFO] --< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-maxsessions-per-app >--
[INFO] Building Tyrus Servlet Max Sessions Per App Tests 1.20           [57/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-maxsessions-per-app ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-maxsessions-per-app ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-maxsessions-per-app ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-maxsessions-per-app ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-maxsessions-per-app ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-maxsessions-per-app ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/target/test-classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/src/test/java/org/glassfish/tyrus/tests/servlet/maxsessions/MaxSessionsAppTest.java: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/src/test/java/org/glassfish/tyrus/tests/servlet/maxsessions/MaxSessionsAppTest.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/src/test/java/org/glassfish/tyrus/tests/servlet/maxsessions/MaxSessionsAppTest.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-maxsessions-per-app ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-maxsessions-per-app ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-maxsessions-per-app] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/target/tyrus-tests-servlet-maxsessions-per-app-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/target/tyrus-tests-servlet-maxsessions-per-app-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-maxsessions-per-app ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/target/tyrus-tests-servlet-maxsessions-per-app-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-maxsessions-per-app ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/target/tyrus-tests-servlet-maxsessions-per-app-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-maxsessions-per-app/1.20/tyrus-tests-servlet-maxsessions-per-app-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-maxsessions-per-app/1.20/tyrus-tests-servlet-maxsessions-per-app-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-app/target/tyrus-tests-servlet-maxsessions-per-app-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-maxsessions-per-app/1.20/tyrus-tests-servlet-maxsessions-per-app-1.20-sources.jar
[INFO] 
[INFO] --< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-maxsessions-per-remoteaddr >--
[INFO] Building Tyrus Servlet Max Sessions Per Remote Addr Tests 1.20   [58/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-maxsessions-per-remoteaddr ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-maxsessions-per-remoteaddr ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-maxsessions-per-remoteaddr ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-maxsessions-per-remoteaddr ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-maxsessions-per-remoteaddr ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-maxsessions-per-remoteaddr ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/target/test-classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/src/test/java/org/glassfish/tyrus/tests/servlet/maxsessionsperremoteaddr/MaxSessionsPerRemoteAddrTest.java: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/src/test/java/org/glassfish/tyrus/tests/servlet/maxsessionsperremoteaddr/MaxSessionsPerRemoteAddrTest.java uses or overrides a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/src/test/java/org/glassfish/tyrus/tests/servlet/maxsessionsperremoteaddr/MaxSessionsPerRemoteAddrTest.java: Recompile with -Xlint:deprecation for details.
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-maxsessions-per-remoteaddr ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-maxsessions-per-remoteaddr ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-maxsessions-per-remoteaddr] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/target/tyrus-tests-servlet-maxsessions-per-remoteaddr-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/target/tyrus-tests-servlet-maxsessions-per-remoteaddr-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-maxsessions-per-remoteaddr ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/target/tyrus-tests-servlet-maxsessions-per-remoteaddr-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-maxsessions-per-remoteaddr ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/target/tyrus-tests-servlet-maxsessions-per-remoteaddr-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-maxsessions-per-remoteaddr/1.20/tyrus-tests-servlet-maxsessions-per-remoteaddr-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-maxsessions-per-remoteaddr/1.20/tyrus-tests-servlet-maxsessions-per-remoteaddr-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/maxsessions-per-remoteaddr/target/tyrus-tests-servlet-maxsessions-per-remoteaddr-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-maxsessions-per-remoteaddr/1.20/tyrus-tests-servlet-maxsessions-per-remoteaddr-1.20-sources.jar
[INFO] 
[INFO] ----< org.glassfish.tyrus.tests.servlet:tyrus-tests-servlet-debug >-----
[INFO] Building Tyrus Debug Debug Samples 1.20                          [59/65]
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-tests-servlet-debug ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-tests-servlet-debug ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-tests-servlet-debug ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/debug/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-tests-servlet-debug ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-tests-servlet-debug ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-tests-servlet-debug ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/debug/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-tests-servlet-debug ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:3.3.1:war (default-war) @ tyrus-tests-servlet-debug ---
[INFO] Packaging webapp
[INFO] Assembling webapp [tyrus-tests-servlet-debug] in [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/debug/target/tyrus-tests-servlet-debug-1.20]
[INFO] Processing war project
[INFO] Copying webapp resources [/home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/debug/src/main/webapp]
[INFO] Building war: /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/debug/target/tyrus-tests-servlet-debug-1.20.war
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-tests-servlet-debug ---
[INFO] No sources in project. Archive not created.
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-tests-servlet-debug ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/debug/target/tyrus-tests-servlet-debug-1.20.war to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-debug/1.20/tyrus-tests-servlet-debug-1.20.war
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/tests/servlet/debug/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/tests/servlet/tyrus-tests-servlet-debug/1.20/tyrus-tests-servlet-debug-1.20.pom
[INFO] 
[INFO] -------------< org.glassfish.tyrus.bundles:tyrus-bundles >--------------
[INFO] Building Tyrus Bundles 1.20                                      [60/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-bundles ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-bundles ---
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-bundles ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-bundles ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/tyrus-bundles/1.20/tyrus-bundles-1.20.pom
[INFO] 
[INFO] -------------< org.glassfish.tyrus.bundles:tyrus-samples >--------------
[INFO] Building Tyrus Samples Bundle 1.20                               [61/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-samples ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-samples ---
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:unpack-dependencies (unpack-examples) @ tyrus-samples ---
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/samples/auction/target/tyrus-sample-auction-1.20-project-src.zip to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/samples/target/dependency/samples with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/samples/simplelife/target/tyrus-sample-simplelife-1.20-project-src.zip to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/samples/target/dependency/samples with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/samples/draw/target/tyrus-sample-draw-1.20-project-src.zip to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/samples/target/dependency/samples with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo/target/tyrus-sample-echo-1.20-project-src.zip to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/samples/target/dependency/samples with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/samples/programmatic-echo/target/tyrus-sample-programmatic-echo-1.20-project-src.zip to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/samples/target/dependency/samples with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/samples/cdi/target/tyrus-sample-cdi-1.20-project-src.zip to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/samples/target/dependency/samples with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/samples/chat/target/tyrus-sample-chat-1.20-project-src.zip to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/samples/target/dependency/samples with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/samples/echo-https/target/tyrus-sample-echo-https-1.20-project-src.zip to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/samples/target/dependency/samples with includes "" and excludes ""
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:attached (make-assembly) @ tyrus-samples ---
[INFO] Reading assembly descriptor: src/main/assembly/examples-assembly.xml
[INFO] Building zip: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/samples/target/tyrus-samples-all.zip
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-samples ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-samples ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/samples/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/tyrus-samples/1.20/tyrus-samples-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/samples/target/tyrus-samples-all.zip to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/tyrus-samples/1.20/tyrus-samples-1.20-all.zip
[INFO] 
[INFO] --------< org.glassfish.tyrus.bundles:tyrus-standalone-client >---------
[INFO] Building Tyrus Standalone Client 1.20                            [62/65]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-standalone-client ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-standalone-client ---
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:parse-version (parse-version) @ tyrus-standalone-client ---
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:unpack (unpack) @ tyrus-standalone-client ---
[INFO] Configured Artifact: javax.websocket:javax.websocket-api:sources:?:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-core:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-client:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-container-grizzly-client:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-spi:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.grizzly:grizzly-framework:sources:2.4.4:jar
[INFO] Configured Artifact: org.glassfish.grizzly:grizzly-http-server:sources:2.4.4:jar
[INFO] Configured Artifact: org.glassfish.grizzly:grizzly-http:sources:2.4.4:jar
[INFO] Unpacking /home/jenkins/.m2/repository/javax/websocket/javax.websocket-api/1.1/javax.websocket-api-1.1-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/core/target/tyrus-core-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/client/target/tyrus-client-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-client/target/tyrus-container-grizzly-client-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/spi/target/tyrus-spi-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.4.4/grizzly-framework-2.4.4-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.4.4/grizzly-http-server-2.4.4-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/.m2/repository/org/glassfish/grizzly/grizzly-http/2.4.4/grizzly-http-2.4.4-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources with includes "" and excludes ""
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-standalone-client ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-standalone-client ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-standalone-client ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-standalone-client ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-standalone-client ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ tyrus-standalone-client ---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/tyrus-standalone-client-1.20.jar
[INFO] 
[INFO] --- maven-shade-plugin:2.1:shade (default) @ tyrus-standalone-client ---
[INFO] Including org.glassfish.tyrus:tyrus-client:jar:1.20 in the shaded jar.
[INFO] Including org.glassfish.tyrus:tyrus-core:jar:1.20 in the shaded jar.
[INFO] Including org.glassfish.tyrus:tyrus-spi:jar:1.20 in the shaded jar.
[INFO] Including javax.websocket:javax.websocket-api:jar:1.1 in the shaded jar.
[INFO] Including jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3 in the shaded jar.
[INFO] Including jakarta.activation:jakarta.activation-api:jar:1.2.2 in the shaded jar.
[INFO] Including org.glassfish.tyrus:tyrus-container-grizzly-client:jar:1.20 in the shaded jar.
[INFO] Including org.glassfish.grizzly:grizzly-framework:jar:2.4.4 in the shaded jar.
[INFO] Including org.glassfish.grizzly:grizzly-http-server:jar:2.4.4 in the shaded jar.
[INFO] Including org.glassfish.grizzly:grizzly-http:jar:2.4.4 in the shaded jar.
[INFO] Including javax.websocket:javax.websocket-client-api:jar:1.1 in the shaded jar.
[WARNING] javax.websocket-api-1.1.jar, javax.websocket-client-api-1.1.jar define 45 overlappping classes: 
[WARNING]   - javax.websocket.Decoder$Text
[WARNING]   - javax.websocket.DeploymentException
[WARNING]   - javax.websocket.SendHandler
[WARNING]   - javax.websocket.ClientEndpointConfig
[WARNING]   - javax.websocket.SendResult
[WARNING]   - javax.websocket.Extension
[WARNING]   - javax.websocket.ClientEndpointConfig$Builder
[WARNING]   - javax.websocket.OnError
[WARNING]   - javax.websocket.PongMessage
[WARNING]   - javax.websocket.Decoder
[WARNING]   - 35 more...
[WARNING] jakarta.xml.bind-api-2.3.3.jar, jakarta.activation-api-1.2.2.jar define 1 overlappping classes: 
[WARNING]   - module-info
[WARNING] maven-shade-plugin has detected that some .class files
[WARNING] are present in two or more JARs. When this happens, only
[WARNING] one single version of the class is copied in the uberjar.
[WARNING] Usually this is not harmful and you can skeep these
[WARNING] warnings, otherwise try to manually exclude artifacts
[WARNING] based on mvn dependency:tree -Ddetail=true and the above
[WARNING] output
[WARNING] See http://docs.codehaus.org/display/MAVENUSER/Shade+Plugin
[INFO] Replacing original artifact with shaded artifact.
[INFO] Replacing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/tyrus-standalone-client-1.20.jar with /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/tyrus-standalone-client-1.20-shaded.jar
[INFO] Dependency-reduced POM written at: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/dependency-reduced-pom.xml
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:add-source (default) @ tyrus-standalone-client ---
[INFO] Source directory: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources added.
[INFO] 
[INFO] --- maven-javadoc-plugin:3.0.1:jar (attach-javadocs) @ tyrus-standalone-client ---
[INFO] 
Loading source files for package javax.websocket...
Loading source files for package javax.websocket.server...
Loading source files for package org.glassfish.tyrus.core.l10n...
Loading source files for package org.glassfish.tyrus.core.wsadl.model...
Loading source files for package org.glassfish.tyrus.core.uri...
Loading source files for package org.glassfish.tyrus.core.uri.internal...
Loading source files for package org.glassfish.tyrus.core...
Loading source files for package org.glassfish.tyrus.core.monitoring...
Loading source files for package org.glassfish.tyrus.core.frame...
Loading source files for package org.glassfish.tyrus.core.extension...
Loading source files for package org.glassfish.tyrus.core.collection...
Loading source files for package org.glassfish.tyrus.core.coder...
Loading source files for package org.glassfish.tyrus.core.cluster...
Loading source files for package org.glassfish.tyrus.client...
Loading source files for package org.glassfish.tyrus.client.auth...
Loading source files for package org.glassfish.tyrus.container.grizzly.client...
Loading source files for package org.glassfish.tyrus.spi...
Loading source files for package org.glassfish.grizzly.localization...
Loading source files for package org.glassfish.grizzly.utils.conditions...
Loading source files for package org.glassfish.grizzly.utils...
Loading source files for package org.glassfish.grizzly.threadpool...
Loading source files for package org.glassfish.grizzly.filterchain...
Loading source files for package org.glassfish.grizzly.compression.zip...
Loading source files for package org.glassfish.grizzly.compression.lzma.impl.rangecoder...
Loading source files for package org.glassfish.grizzly.compression.lzma.impl.lz...
Loading source files for package org.glassfish.grizzly.compression.lzma.impl...
Loading source files for package org.glassfish.grizzly.compression.lzma...
Loading source files for package org.glassfish.grizzly.attributes...
Loading source files for package org.glassfish.grizzly.asyncqueue...
Loading source files for package org.glassfish.grizzly...
Loading source files for package org.glassfish.grizzly.streams...
Loading source files for package org.glassfish.grizzly.strategies...
Loading source files for package org.glassfish.grizzly.ssl...
Loading source files for package org.glassfish.grizzly.nio.transport...
Loading source files for package org.glassfish.grizzly.nio.tmpselectors...
Loading source files for package org.glassfish.grizzly.nio...
Loading source files for package org.glassfish.grizzly.monitoring...
Loading source files for package org.glassfish.grizzly.memory...
Loading source files for package org.glassfish.grizzly.impl...
Loading source files for package org.glassfish.grizzly.jmxbase...
Loading source files for package org.glassfish.grizzly.http.server.util...
Loading source files for package org.glassfish.grizzly.http.server.naming...
Loading source files for package org.glassfish.grizzly.http.server.jmxbase...
Loading source files for package org.glassfish.grizzly.http.server.io...
Loading source files for package org.glassfish.grizzly.http.server.http2...
Loading source files for package org.glassfish.grizzly.http.server...
Loading source files for package org.glassfish.grizzly.http.server.accesslog...
Loading source files for package org.glassfish.grizzly.http.server.filecache...
Loading source files for package org.glassfish.grizzly.http.util...
Loading source files for package org.glassfish.grizzly.http...
Loading source files for package org.glassfish.grizzly.http.io...
Constructing Javadoc information...
14 errors
[ERROR] MavenReportException: Error while generating Javadoc: 
Exit code: 1 - /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:47: error: package org.osgi.framework does not exist
import org.osgi.framework.Bundle;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:48: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleContext;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:49: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleEvent;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:50: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleReference;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:51: error: package org.osgi.framework does not exist
import org.osgi.framework.FrameworkUtil;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:52: error: package org.osgi.framework does not exist
import org.osgi.framework.SynchronousBundleListener;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:67: error: cannot find symbol
public final class OsgiRegistry implements SynchronousBundleListener {
                                           ^
  symbol: class SynchronousBundleListener
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:72: error: cannot find symbol
    private final BundleContext bundleContext;
                  ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:79: error: cannot find symbol
    private Map<String, Bundle> classToBundleMapping = new HashMap<String, Bundle>();
                        ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:237: error: cannot find symbol
    public void bundleChanged(BundleEvent event) {
                              ^
  symbol:   class BundleEvent
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:376: error: cannot find symbol
    private OsgiRegistry(BundleContext bundleContext) {
                         ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:404: error: cannot find symbol
    private void register(final Bundle bundle) {
                                ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:177: error: cannot find symbol
        private final Bundle bundle;
                      ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:179: error: cannot find symbol
        BundleSpiProvidersLoader(final String spi, final URI spiRegistryUri, final Bundle bundle) {
                                                                                   ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader

Command line was: /opt/tools/java/openjdk/jdk-11/latest/bin/javadoc -J-Xmx512m -J-Xms128m @options @packages

Refer to the generated Javadoc files in '/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/apidocs' dir.

org.apache.maven.reporting.MavenReportException: 
Exit code: 1 - /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:47: error: package org.osgi.framework does not exist
import org.osgi.framework.Bundle;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:48: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleContext;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:49: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleEvent;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:50: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleReference;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:51: error: package org.osgi.framework does not exist
import org.osgi.framework.FrameworkUtil;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:52: error: package org.osgi.framework does not exist
import org.osgi.framework.SynchronousBundleListener;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:67: error: cannot find symbol
public final class OsgiRegistry implements SynchronousBundleListener {
                                           ^
  symbol: class SynchronousBundleListener
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:72: error: cannot find symbol
    private final BundleContext bundleContext;
                  ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:79: error: cannot find symbol
    private Map<String, Bundle> classToBundleMapping = new HashMap<String, Bundle>();
                        ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:237: error: cannot find symbol
    public void bundleChanged(BundleEvent event) {
                              ^
  symbol:   class BundleEvent
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:376: error: cannot find symbol
    private OsgiRegistry(BundleContext bundleContext) {
                         ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:404: error: cannot find symbol
    private void register(final Bundle bundle) {
                                ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:177: error: cannot find symbol
        private final Bundle bundle;
                      ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:179: error: cannot find symbol
        BundleSpiProvidersLoader(final String spi, final URI spiRegistryUri, final Bundle bundle) {
                                                                                   ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader

Command line was: /opt/tools/java/openjdk/jdk-11/latest/bin/javadoc -J-Xmx512m -J-Xms128m @options @packages

Refer to the generated Javadoc files in '/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/apidocs' dir.

    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5298)
    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeReport (AbstractJavadocMojo.java:2134)
    at org.apache.maven.plugins.javadoc.JavadocJar.doExecute (JavadocJar.java:190)
    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.execute (AbstractJavadocMojo.java:1912)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:301)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:211)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:165)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:157)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:121)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:127)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/tyrus-standalone-client-1.20-javadoc.jar
[INFO] 
[INFO] --- maven-javadoc-plugin:3.0.1:jar (default) @ tyrus-standalone-client ---
[INFO] 
Loading source files for package javax.websocket...
Loading source files for package javax.websocket.server...
Loading source files for package org.glassfish.tyrus.core.l10n...
Loading source files for package org.glassfish.tyrus.core.wsadl.model...
Loading source files for package org.glassfish.tyrus.core.uri...
Loading source files for package org.glassfish.tyrus.core.uri.internal...
Loading source files for package org.glassfish.tyrus.core...
Loading source files for package org.glassfish.tyrus.core.monitoring...
Loading source files for package org.glassfish.tyrus.core.frame...
Loading source files for package org.glassfish.tyrus.core.extension...
Loading source files for package org.glassfish.tyrus.core.collection...
Loading source files for package org.glassfish.tyrus.core.coder...
Loading source files for package org.glassfish.tyrus.core.cluster...
Loading source files for package org.glassfish.tyrus.client...
Loading source files for package org.glassfish.tyrus.client.auth...
Loading source files for package org.glassfish.tyrus.container.grizzly.client...
Loading source files for package org.glassfish.tyrus.spi...
Loading source files for package org.glassfish.grizzly.localization...
Loading source files for package org.glassfish.grizzly.utils.conditions...
Loading source files for package org.glassfish.grizzly.utils...
Loading source files for package org.glassfish.grizzly.threadpool...
Loading source files for package org.glassfish.grizzly.filterchain...
Loading source files for package org.glassfish.grizzly.compression.zip...
Loading source files for package org.glassfish.grizzly.compression.lzma.impl.rangecoder...
Loading source files for package org.glassfish.grizzly.compression.lzma.impl.lz...
Loading source files for package org.glassfish.grizzly.compression.lzma.impl...
Loading source files for package org.glassfish.grizzly.compression.lzma...
Loading source files for package org.glassfish.grizzly.attributes...
Loading source files for package org.glassfish.grizzly.asyncqueue...
Loading source files for package org.glassfish.grizzly...
Loading source files for package org.glassfish.grizzly.streams...
Loading source files for package org.glassfish.grizzly.strategies...
Loading source files for package org.glassfish.grizzly.ssl...
Loading source files for package org.glassfish.grizzly.nio.transport...
Loading source files for package org.glassfish.grizzly.nio.tmpselectors...
Loading source files for package org.glassfish.grizzly.nio...
Loading source files for package org.glassfish.grizzly.monitoring...
Loading source files for package org.glassfish.grizzly.memory...
Loading source files for package org.glassfish.grizzly.impl...
Loading source files for package org.glassfish.grizzly.jmxbase...
Loading source files for package org.glassfish.grizzly.http.server.util...
Loading source files for package org.glassfish.grizzly.http.server.naming...
Loading source files for package org.glassfish.grizzly.http.server.jmxbase...
Loading source files for package org.glassfish.grizzly.http.server.io...
Loading source files for package org.glassfish.grizzly.http.server.http2...
Loading source files for package org.glassfish.grizzly.http.server...
Loading source files for package org.glassfish.grizzly.http.server.accesslog...
Loading source files for package org.glassfish.grizzly.http.server.filecache...
Loading source files for package org.glassfish.grizzly.http.util...
Loading source files for package org.glassfish.grizzly.http...
Loading source files for package org.glassfish.grizzly.http.io...
Constructing Javadoc information...
14 errors
[ERROR] MavenReportException: Error while generating Javadoc: 
Exit code: 1 - /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:47: error: package org.osgi.framework does not exist
import org.osgi.framework.Bundle;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:48: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleContext;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:49: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleEvent;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:50: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleReference;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:51: error: package org.osgi.framework does not exist
import org.osgi.framework.FrameworkUtil;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:52: error: package org.osgi.framework does not exist
import org.osgi.framework.SynchronousBundleListener;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:67: error: cannot find symbol
public final class OsgiRegistry implements SynchronousBundleListener {
                                           ^
  symbol: class SynchronousBundleListener
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:72: error: cannot find symbol
    private final BundleContext bundleContext;
                  ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:79: error: cannot find symbol
    private Map<String, Bundle> classToBundleMapping = new HashMap<String, Bundle>();
                        ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:237: error: cannot find symbol
    public void bundleChanged(BundleEvent event) {
                              ^
  symbol:   class BundleEvent
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:376: error: cannot find symbol
    private OsgiRegistry(BundleContext bundleContext) {
                         ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:404: error: cannot find symbol
    private void register(final Bundle bundle) {
                                ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:177: error: cannot find symbol
        private final Bundle bundle;
                      ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:179: error: cannot find symbol
        BundleSpiProvidersLoader(final String spi, final URI spiRegistryUri, final Bundle bundle) {
                                                                                   ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader

Command line was: /opt/tools/java/openjdk/jdk-11/latest/bin/javadoc -J-Xmx512m -J-Xms128m @options @packages

Refer to the generated Javadoc files in '/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/apidocs' dir.

org.apache.maven.reporting.MavenReportException: 
Exit code: 1 - /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:47: error: package org.osgi.framework does not exist
import org.osgi.framework.Bundle;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:48: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleContext;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:49: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleEvent;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:50: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleReference;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:51: error: package org.osgi.framework does not exist
import org.osgi.framework.FrameworkUtil;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:52: error: package org.osgi.framework does not exist
import org.osgi.framework.SynchronousBundleListener;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:67: error: cannot find symbol
public final class OsgiRegistry implements SynchronousBundleListener {
                                           ^
  symbol: class SynchronousBundleListener
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:72: error: cannot find symbol
    private final BundleContext bundleContext;
                  ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:79: error: cannot find symbol
    private Map<String, Bundle> classToBundleMapping = new HashMap<String, Bundle>();
                        ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:237: error: cannot find symbol
    public void bundleChanged(BundleEvent event) {
                              ^
  symbol:   class BundleEvent
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:376: error: cannot find symbol
    private OsgiRegistry(BundleContext bundleContext) {
                         ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:404: error: cannot find symbol
    private void register(final Bundle bundle) {
                                ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:177: error: cannot find symbol
        private final Bundle bundle;
                      ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:179: error: cannot find symbol
        BundleSpiProvidersLoader(final String spi, final URI spiRegistryUri, final Bundle bundle) {
                                                                                   ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader

Command line was: /opt/tools/java/openjdk/jdk-11/latest/bin/javadoc -J-Xmx512m -J-Xms128m @options @packages

Refer to the generated Javadoc files in '/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/apidocs' dir.

    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5298)
    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeReport (AbstractJavadocMojo.java:2134)
    at org.apache.maven.plugins.javadoc.JavadocJar.doExecute (JavadocJar.java:190)
    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.execute (AbstractJavadocMojo.java:1912)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:301)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:211)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:165)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:157)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:121)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:127)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/tyrus-standalone-client-1.20-javadoc.jar
[WARNING] artifact org.glassfish.tyrus.bundles:tyrus-standalone-client:javadoc:javadoc:1.20 already attached, replace previous instance
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-standalone-client ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/tyrus-standalone-client-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-standalone-client ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/tyrus-standalone-client-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/tyrus-standalone-client/1.20/tyrus-standalone-client-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/dependency-reduced-pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/tyrus-standalone-client/1.20/tyrus-standalone-client-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/tyrus-standalone-client-1.20-javadoc.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/tyrus-standalone-client/1.20/tyrus-standalone-client-1.20-javadoc.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client/target/tyrus-standalone-client-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/tyrus-standalone-client/1.20/tyrus-standalone-client-1.20-sources.jar
[INFO] 
[INFO] ------< org.glassfish.tyrus.bundles:tyrus-standalone-client-jdk >-------
[INFO] Building Tyrus Standalone Client - JDK 1.20                      [63/65]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tyrus-standalone-client-jdk ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ tyrus-standalone-client-jdk ---
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:parse-version (parse-version) @ tyrus-standalone-client-jdk ---
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:unpack (unpack) @ tyrus-standalone-client-jdk ---
[INFO] Configured Artifact: javax.websocket:javax.websocket-api:sources:?:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-core:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-client:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-container-jdk-client:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-spi:sources:1.20:jar
[INFO] Unpacking /home/jenkins/.m2/repository/javax/websocket/javax.websocket-api/1.1/javax.websocket-api-1.1-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/core/target/tyrus-core-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/client/target/tyrus-client-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/containers/jdk-client/target/tyrus-container-jdk-client-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/spi/target/tyrus-spi-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources with includes "" and excludes ""
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tyrus-standalone-client-jdk ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tyrus-standalone-client-jdk ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tyrus-standalone-client-jdk ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tyrus-standalone-client-jdk ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ tyrus-standalone-client-jdk ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ tyrus-standalone-client-jdk ---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/tyrus-standalone-client-jdk-1.20.jar
[INFO] 
[INFO] --- maven-shade-plugin:2.1:shade (default) @ tyrus-standalone-client-jdk ---
[INFO] Including org.glassfish.tyrus:tyrus-client:jar:1.20 in the shaded jar.
[INFO] Including org.glassfish.tyrus:tyrus-core:jar:1.20 in the shaded jar.
[INFO] Including org.glassfish.tyrus:tyrus-spi:jar:1.20 in the shaded jar.
[INFO] Including javax.websocket:javax.websocket-api:jar:1.1 in the shaded jar.
[INFO] Including jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3 in the shaded jar.
[INFO] Including jakarta.activation:jakarta.activation-api:jar:1.2.2 in the shaded jar.
[INFO] Including org.glassfish.tyrus:tyrus-container-jdk-client:jar:1.20 in the shaded jar.
[INFO] Including javax.websocket:javax.websocket-client-api:jar:1.1 in the shaded jar.
[WARNING] javax.websocket-api-1.1.jar, javax.websocket-client-api-1.1.jar define 45 overlappping classes: 
[WARNING]   - javax.websocket.Decoder$Text
[WARNING]   - javax.websocket.DeploymentException
[WARNING]   - javax.websocket.SendHandler
[WARNING]   - javax.websocket.ClientEndpointConfig
[WARNING]   - javax.websocket.SendResult
[WARNING]   - javax.websocket.Extension
[WARNING]   - javax.websocket.ClientEndpointConfig$Builder
[WARNING]   - javax.websocket.OnError
[WARNING]   - javax.websocket.PongMessage
[WARNING]   - javax.websocket.Decoder
[WARNING]   - 35 more...
[WARNING] jakarta.xml.bind-api-2.3.3.jar, jakarta.activation-api-1.2.2.jar define 1 overlappping classes: 
[WARNING]   - module-info
[WARNING] maven-shade-plugin has detected that some .class files
[WARNING] are present in two or more JARs. When this happens, only
[WARNING] one single version of the class is copied in the uberjar.
[WARNING] Usually this is not harmful and you can skeep these
[WARNING] warnings, otherwise try to manually exclude artifacts
[WARNING] based on mvn dependency:tree -Ddetail=true and the above
[WARNING] output
[WARNING] See http://docs.codehaus.org/display/MAVENUSER/Shade+Plugin
[INFO] Replacing original artifact with shaded artifact.
[INFO] Replacing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/tyrus-standalone-client-jdk-1.20.jar with /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/tyrus-standalone-client-jdk-1.20-shaded.jar
[INFO] Dependency-reduced POM written at: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/dependency-reduced-pom.xml
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:add-source (default) @ tyrus-standalone-client-jdk ---
[INFO] Source directory: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources added.
[INFO] 
[INFO] --- maven-javadoc-plugin:3.0.1:jar (attach-javadocs) @ tyrus-standalone-client-jdk ---
[INFO] 
Loading source files for package javax.websocket...
Loading source files for package javax.websocket.server...
Loading source files for package org.glassfish.tyrus.core.l10n...
Loading source files for package org.glassfish.tyrus.core.wsadl.model...
Loading source files for package org.glassfish.tyrus.core.uri...
Loading source files for package org.glassfish.tyrus.core.uri.internal...
Loading source files for package org.glassfish.tyrus.core...
Loading source files for package org.glassfish.tyrus.core.monitoring...
Loading source files for package org.glassfish.tyrus.core.frame...
Loading source files for package org.glassfish.tyrus.core.extension...
Loading source files for package org.glassfish.tyrus.core.collection...
Loading source files for package org.glassfish.tyrus.core.coder...
Loading source files for package org.glassfish.tyrus.core.cluster...
Loading source files for package org.glassfish.tyrus.client...
Loading source files for package org.glassfish.tyrus.client.auth...
Loading source files for package org.glassfish.tyrus.container.jdk.client...
Loading source files for package org.glassfish.tyrus.spi...
Constructing Javadoc information...
14 errors
[ERROR] MavenReportException: Error while generating Javadoc: 
Exit code: 1 - /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:47: error: package org.osgi.framework does not exist
import org.osgi.framework.Bundle;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:48: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleContext;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:49: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleEvent;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:50: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleReference;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:51: error: package org.osgi.framework does not exist
import org.osgi.framework.FrameworkUtil;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:52: error: package org.osgi.framework does not exist
import org.osgi.framework.SynchronousBundleListener;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:67: error: cannot find symbol
public final class OsgiRegistry implements SynchronousBundleListener {
                                           ^
  symbol: class SynchronousBundleListener
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:72: error: cannot find symbol
    private final BundleContext bundleContext;
                  ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:79: error: cannot find symbol
    private Map<String, Bundle> classToBundleMapping = new HashMap<String, Bundle>();
                        ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:237: error: cannot find symbol
    public void bundleChanged(BundleEvent event) {
                              ^
  symbol:   class BundleEvent
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:376: error: cannot find symbol
    private OsgiRegistry(BundleContext bundleContext) {
                         ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:404: error: cannot find symbol
    private void register(final Bundle bundle) {
                                ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:177: error: cannot find symbol
        private final Bundle bundle;
                      ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:179: error: cannot find symbol
        BundleSpiProvidersLoader(final String spi, final URI spiRegistryUri, final Bundle bundle) {
                                                                                   ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader

Command line was: /opt/tools/java/openjdk/jdk-11/latest/bin/javadoc -J-Xmx512m -J-Xms128m @options @packages

Refer to the generated Javadoc files in '/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/apidocs' dir.

org.apache.maven.reporting.MavenReportException: 
Exit code: 1 - /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:47: error: package org.osgi.framework does not exist
import org.osgi.framework.Bundle;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:48: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleContext;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:49: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleEvent;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:50: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleReference;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:51: error: package org.osgi.framework does not exist
import org.osgi.framework.FrameworkUtil;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:52: error: package org.osgi.framework does not exist
import org.osgi.framework.SynchronousBundleListener;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:67: error: cannot find symbol
public final class OsgiRegistry implements SynchronousBundleListener {
                                           ^
  symbol: class SynchronousBundleListener
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:72: error: cannot find symbol
    private final BundleContext bundleContext;
                  ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:79: error: cannot find symbol
    private Map<String, Bundle> classToBundleMapping = new HashMap<String, Bundle>();
                        ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:237: error: cannot find symbol
    public void bundleChanged(BundleEvent event) {
                              ^
  symbol:   class BundleEvent
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:376: error: cannot find symbol
    private OsgiRegistry(BundleContext bundleContext) {
                         ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:404: error: cannot find symbol
    private void register(final Bundle bundle) {
                                ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:177: error: cannot find symbol
        private final Bundle bundle;
                      ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:179: error: cannot find symbol
        BundleSpiProvidersLoader(final String spi, final URI spiRegistryUri, final Bundle bundle) {
                                                                                   ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader

Command line was: /opt/tools/java/openjdk/jdk-11/latest/bin/javadoc -J-Xmx512m -J-Xms128m @options @packages

Refer to the generated Javadoc files in '/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/apidocs' dir.

    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5298)
    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeReport (AbstractJavadocMojo.java:2134)
    at org.apache.maven.plugins.javadoc.JavadocJar.doExecute (JavadocJar.java:190)
    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.execute (AbstractJavadocMojo.java:1912)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:301)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:211)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:165)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:157)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:121)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:127)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/tyrus-standalone-client-jdk-1.20-javadoc.jar
[INFO] 
[INFO] --- maven-javadoc-plugin:3.0.1:jar (default) @ tyrus-standalone-client-jdk ---
[INFO] 
Loading source files for package javax.websocket...
Loading source files for package javax.websocket.server...
Loading source files for package org.glassfish.tyrus.core.l10n...
Loading source files for package org.glassfish.tyrus.core.wsadl.model...
Loading source files for package org.glassfish.tyrus.core.uri...
Loading source files for package org.glassfish.tyrus.core.uri.internal...
Loading source files for package org.glassfish.tyrus.core...
Loading source files for package org.glassfish.tyrus.core.monitoring...
Loading source files for package org.glassfish.tyrus.core.frame...
Loading source files for package org.glassfish.tyrus.core.extension...
Loading source files for package org.glassfish.tyrus.core.collection...
Loading source files for package org.glassfish.tyrus.core.coder...
Loading source files for package org.glassfish.tyrus.core.cluster...
Loading source files for package org.glassfish.tyrus.client...
Loading source files for package org.glassfish.tyrus.client.auth...
Loading source files for package org.glassfish.tyrus.container.jdk.client...
Loading source files for package org.glassfish.tyrus.spi...
Constructing Javadoc information...
14 errors
[ERROR] MavenReportException: Error while generating Javadoc: 
Exit code: 1 - /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:47: error: package org.osgi.framework does not exist
import org.osgi.framework.Bundle;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:48: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleContext;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:49: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleEvent;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:50: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleReference;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:51: error: package org.osgi.framework does not exist
import org.osgi.framework.FrameworkUtil;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:52: error: package org.osgi.framework does not exist
import org.osgi.framework.SynchronousBundleListener;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:67: error: cannot find symbol
public final class OsgiRegistry implements SynchronousBundleListener {
                                           ^
  symbol: class SynchronousBundleListener
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:72: error: cannot find symbol
    private final BundleContext bundleContext;
                  ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:79: error: cannot find symbol
    private Map<String, Bundle> classToBundleMapping = new HashMap<String, Bundle>();
                        ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:237: error: cannot find symbol
    public void bundleChanged(BundleEvent event) {
                              ^
  symbol:   class BundleEvent
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:376: error: cannot find symbol
    private OsgiRegistry(BundleContext bundleContext) {
                         ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:404: error: cannot find symbol
    private void register(final Bundle bundle) {
                                ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:177: error: cannot find symbol
        private final Bundle bundle;
                      ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:179: error: cannot find symbol
        BundleSpiProvidersLoader(final String spi, final URI spiRegistryUri, final Bundle bundle) {
                                                                                   ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader

Command line was: /opt/tools/java/openjdk/jdk-11/latest/bin/javadoc -J-Xmx512m -J-Xms128m @options @packages

Refer to the generated Javadoc files in '/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/apidocs' dir.

org.apache.maven.reporting.MavenReportException: 
Exit code: 1 - /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:47: error: package org.osgi.framework does not exist
import org.osgi.framework.Bundle;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:48: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleContext;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:49: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleEvent;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:50: error: package org.osgi.framework does not exist
import org.osgi.framework.BundleReference;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:51: error: package org.osgi.framework does not exist
import org.osgi.framework.FrameworkUtil;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:52: error: package org.osgi.framework does not exist
import org.osgi.framework.SynchronousBundleListener;
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:67: error: cannot find symbol
public final class OsgiRegistry implements SynchronousBundleListener {
                                           ^
  symbol: class SynchronousBundleListener
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:72: error: cannot find symbol
    private final BundleContext bundleContext;
                  ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:79: error: cannot find symbol
    private Map<String, Bundle> classToBundleMapping = new HashMap<String, Bundle>();
                        ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:237: error: cannot find symbol
    public void bundleChanged(BundleEvent event) {
                              ^
  symbol:   class BundleEvent
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:376: error: cannot find symbol
    private OsgiRegistry(BundleContext bundleContext) {
                         ^
  symbol:   class BundleContext
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:404: error: cannot find symbol
    private void register(final Bundle bundle) {
                                ^
  symbol:   class Bundle
  location: class OsgiRegistry
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:177: error: cannot find symbol
        private final Bundle bundle;
                      ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/client-bundle-sources/org/glassfish/tyrus/core/OsgiRegistry.java:179: error: cannot find symbol
        BundleSpiProvidersLoader(final String spi, final URI spiRegistryUri, final Bundle bundle) {
                                                                                   ^
  symbol:   class Bundle
  location: class BundleSpiProvidersLoader

Command line was: /opt/tools/java/openjdk/jdk-11/latest/bin/javadoc -J-Xmx512m -J-Xms128m @options @packages

Refer to the generated Javadoc files in '/home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/apidocs' dir.

    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5298)
    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeReport (AbstractJavadocMojo.java:2134)
    at org.apache.maven.plugins.javadoc.JavadocJar.doExecute (JavadocJar.java:190)
    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.execute (AbstractJavadocMojo.java:1912)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:301)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:211)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:165)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:157)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:121)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:127)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/tyrus-standalone-client-jdk-1.20-javadoc.jar
[WARNING] artifact org.glassfish.tyrus.bundles:tyrus-standalone-client-jdk:javadoc:javadoc:1.20 already attached, replace previous instance
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ tyrus-standalone-client-jdk ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/tyrus-standalone-client-jdk-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tyrus-standalone-client-jdk ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/tyrus-standalone-client-jdk-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/tyrus-standalone-client-jdk/1.20/tyrus-standalone-client-jdk-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/dependency-reduced-pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/tyrus-standalone-client-jdk/1.20/tyrus-standalone-client-jdk-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/tyrus-standalone-client-jdk-1.20-javadoc.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/tyrus-standalone-client-jdk/1.20/tyrus-standalone-client-jdk-1.20-javadoc.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/client-jdk/target/tyrus-standalone-client-jdk-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/tyrus-standalone-client-jdk/1.20/tyrus-standalone-client-jdk-1.20-sources.jar
[INFO] 
[INFO] ----------< org.glassfish.tyrus.bundles:websocket-ri-archive >----------
[INFO] Building Tyrus Websocket RI Archive 1.20                         [64/65]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ websocket-ri-archive ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ websocket-ri-archive ---
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:copy-dependencies (copy-dependencies) @ websocket-ri-archive ---
[INFO] Copying javax.inject-1.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/javax.inject-1.jar
[INFO] Copying grizzly-http-server-2.4.4.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/grizzly-http-server-2.4.4.jar
[INFO] Copying javax.websocket-api-1.1.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/javax.websocket-api-1.1.jar
[INFO] Copying tyrus-spi-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/tyrus-spi-1.20.jar
[INFO] Copying grizzly-http-2.4.4.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/grizzly-http-2.4.4.jar
[INFO] Copying tyrus-container-glassfish-ejb-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/tyrus-container-glassfish-ejb-1.20.jar
[INFO] Copying javax.interceptor-api-1.2.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/javax.interceptor-api-1.2.jar
[INFO] Copying tyrus-container-grizzly-client-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/tyrus-container-grizzly-client-1.20.jar
[INFO] Copying tyrus-container-servlet-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/tyrus-container-servlet-1.20.jar
[INFO] Copying tyrus-core-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/tyrus-core-1.20.jar
[INFO] Copying tyrus-container-glassfish-cdi-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/tyrus-container-glassfish-cdi-1.20.jar
[INFO] Copying javax.transaction-api-1.2.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/javax.transaction-api-1.2.jar
[INFO] Copying cdi-api-1.2.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/cdi-api-1.2.jar
[INFO] Copying javax.el-api-3.0.0.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/javax.el-api-3.0.0.jar
[INFO] Copying jakarta.xml.bind-api-2.3.3.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/jakarta.xml.bind-api-2.3.3.jar
[INFO] Copying tyrus-server-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/tyrus-server-1.20.jar
[INFO] Copying tyrus-client-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/tyrus-client-1.20.jar
[INFO] Copying javax.ejb-api-3.2.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/javax.ejb-api-3.2.jar
[INFO] Copying grizzly-framework-2.4.4.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/grizzly-framework-2.4.4.jar
[INFO] Copying jakarta.activation-api-1.2.2.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/dependency/jakarta.activation-api-1.2.2.jar
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:copy (copy) @ websocket-ri-archive ---
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-client:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-server:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-core:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-container-glassfish-cdi:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-container-grizzly-client:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-container-servlet:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-spi:1.20:jar
[INFO] Copying tyrus-client-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/assembly/tyrus-client-1.20.jar
[INFO] Copying tyrus-server-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/assembly/tyrus-server-1.20.jar
[INFO] Copying tyrus-core-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/assembly/tyrus-core-1.20.jar
[INFO] Copying tyrus-container-glassfish-cdi-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/assembly/tyrus-container-glassfish-cdi-1.20.jar
[INFO] Copying tyrus-container-grizzly-client-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/assembly/tyrus-container-grizzly-client-1.20.jar
[INFO] Copying tyrus-container-servlet-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/assembly/tyrus-container-servlet-1.20.jar
[INFO] Copying tyrus-spi-1.20.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/assembly/tyrus-spi-1.20.jar
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:attached (make-assembly) @ websocket-ri-archive ---
[INFO] Reading assembly descriptor: src/main/assembly/archive.xml
[INFO] Building zip: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/websocket-ri-archive-1.20.zip
[INFO] Building tar : /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/websocket-ri-archive-1.20.tar.gz
[INFO] Building tar : /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/websocket-ri-archive-1.20.tar.bz2
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ websocket-ri-archive ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ websocket-ri-archive ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/websocket-ri-archive/1.20/websocket-ri-archive-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/websocket-ri-archive-1.20.zip to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/websocket-ri-archive/1.20/websocket-ri-archive-1.20.zip
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/websocket-ri-archive-1.20.tar.gz to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/websocket-ri-archive/1.20/websocket-ri-archive-1.20.tar.gz
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-archive/target/websocket-ri-archive-1.20.tar.bz2 to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/websocket-ri-archive/1.20/websocket-ri-archive-1.20.tar.bz2
[INFO] 
[INFO] ----------< org.glassfish.tyrus.bundles:websocket-ri-bundle >-----------
[INFO] Building Tyrus Websocket RI Bundle 1.20                          [65/65]
[INFO] -------------------------------[ bundle ]-------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ websocket-ri-bundle ---
[INFO] 
[INFO] --- maven-checkstyle-plugin:3.0.0:check (default) @ websocket-ri-bundle ---
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:parse-version (parse-version) @ websocket-ri-bundle ---
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:add-source (default) @ websocket-ri-bundle ---
[INFO] Source directory: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java added.
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:unpack (unpack) @ websocket-ri-bundle ---
[INFO] Configured Artifact: javax.websocket:javax.websocket-api:sources:?:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-core:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-client:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-server:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-container-glassfish-cdi:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-container-glassfish-ejb:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-container-grizzly-client:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-container-grizzly-server:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-container-servlet:sources:1.20:jar
[INFO] Configured Artifact: org.glassfish.tyrus:tyrus-spi:sources:1.20:jar
[INFO] Unpacking /home/jenkins/.m2/repository/javax/websocket/javax.websocket-api/1.1/javax.websocket-api-1.1-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/core/target/tyrus-core-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/client/target/tyrus-client-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/server/target/tyrus-server-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/cdi/target/tyrus-container-glassfish-cdi-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java with includes "" and excludes "META-INF/services/org.glassfish.tyrus.core.ComponentProvider"
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/ejb/target/tyrus-container-glassfish-ejb-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java with includes "" and excludes "META-INF/services/org.glassfish.tyrus.core.ComponentProvider"
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-client/target/tyrus-container-grizzly-client-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/containers/grizzly-server/target/tyrus-container-grizzly-server-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/containers/servlet/target/tyrus-container-servlet-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java with includes "" and excludes ""
[INFO] Unpacking /home/jenkins/agent/workspace/documentation-update-after-release/spi/target/tyrus-spi-1.20-sources.jar to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java with includes "" and excludes ""
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ websocket-ri-bundle ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/resources
[INFO] Copying 1 resource
[INFO] Copying 7 resources
[INFO] The encoding used to copy filtered properties files have not been set. This means that the same encoding will be used to copy filtered properties files as when copying other filtered resources. This might not be what you want! Run your build with --debug to see which files might be affected. Read more at https://maven.apache.org/plugins/maven-resources-plugin/examples/filtering-properties-files.html
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ websocket-ri-bundle ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 205 source files to /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/classes
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerFilter.java: Some input files use or override a deprecated API.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerFilter.java: Recompile with -Xlint:deprecation for details.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/ClientManager.java: Some input files use unchecked or unsafe operations.
[WARNING] /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/ClientManager.java: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ websocket-ri-bundle ---
[INFO] skip non existing resourceDirectory /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ websocket-ri-bundle ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ websocket-ri-bundle ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:bundle (default-bundle) @ websocket-ri-bundle ---
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:org/glassfish/tyrus/core/l10n
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:tyrus-core]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:org/glassfish/tyrus/core/wsadl/model
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:tyrus-core]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:org/glassfish/tyrus/core
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:tyrus-core]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:org/glassfish/tyrus/core/cluster
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:tyrus-core]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:org/glassfish/tyrus/core/coder
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:tyrus-core]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:org/glassfish/tyrus/core/frame
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:tyrus-core]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:org/glassfish/tyrus/core/monitoring
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:tyrus-core]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:org/glassfish/tyrus/core/extension
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:tyrus-core]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:org/glassfish/tyrus/core/uri/internal
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:tyrus-core]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:org/glassfish/tyrus/core/uri
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:tyrus-core]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:org/glassfish/tyrus/core/collection
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:tyrus-core]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:org/glassfish/tyrus/gf/ejb
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:tyrus-container-glassfish-ejb]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:org/glassfish/tyrus/spi
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:tyrus-spi]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:javax/websocket
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:javax.websocket-api]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[WARNING] Bundle org.glassfish.tyrus.bundles:websocket-ri-bundle:bundle:1.20 : Split package, multiple jars provide the same package:javax/websocket/server
Use Import/Export Package directive -split-package:=(merge-first|merge-last|error|first) to get rid of this warning
Package found in   [Jar:., Jar:javax.websocket-api]
Class path         [Jar:., Jar:javax.servlet-api, Jar:cdi-api, Jar:javax.el-api, Jar:javax.interceptor-api, Jar:javax.inject, Jar:javax.ejb-api, Jar:javax.transaction-api, Jar:grizzly-framework, Jar:grizzly-http-server, Jar:grizzly-http, Jar:tyrus-container-glassfish-ejb, Jar:tyrus-core, Jar:tyrus-spi, Jar:javax.websocket-api, Jar:jakarta.xml.bind-api, Jar:jakarta.activation-api, Jar:org.osgi.core]
[INFO] 
[INFO] --- maven-javadoc-plugin:3.0.1:jar (attach-javadocs) @ websocket-ri-bundle ---
[INFO] 
Loading source files for package javax.websocket...
Loading source files for package javax.websocket.server...
Loading source files for package org.glassfish.tyrus.core.l10n...
Loading source files for package org.glassfish.tyrus.core.wsadl.model...
Loading source files for package org.glassfish.tyrus.core.uri...
Loading source files for package org.glassfish.tyrus.core.uri.internal...
Loading source files for package org.glassfish.tyrus.core...
Loading source files for package org.glassfish.tyrus.core.monitoring...
Loading source files for package org.glassfish.tyrus.core.frame...
Loading source files for package org.glassfish.tyrus.core.extension...
Loading source files for package org.glassfish.tyrus.core.collection...
Loading source files for package org.glassfish.tyrus.core.coder...
Loading source files for package org.glassfish.tyrus.core.cluster...
Loading source files for package org.glassfish.tyrus.client...
Loading source files for package org.glassfish.tyrus.client.auth...
Loading source files for package org.glassfish.tyrus.server...
Loading source files for package org.glassfish.tyrus.gf.cdi...
Loading source files for package org.glassfish.tyrus.gf.ejb...
Loading source files for package org.glassfish.tyrus.container.grizzly.client...
Loading source files for package org.glassfish.tyrus.container.grizzly.server...
Loading source files for package org.glassfish.tyrus.servlet...
Loading source files for package org.glassfish.tyrus.spi...
Constructing Javadoc information...
Standard Doclet version 11.0.2
Building tree for all the packages and classes...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/ClientEndpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/ClientEndpointConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/ClientEndpointConfig.Builder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/ClientEndpointConfig.Configurator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/CloseReason.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/CloseReason.CloseCode.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/CloseReason.CloseCodes.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/ContainerProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/DecodeException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Decoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Decoder.Binary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Decoder.BinaryStream.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Decoder.Text.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Decoder.TextStream.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/DeploymentException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/EncodeException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Encoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Encoder.Binary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Encoder.BinaryStream.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Encoder.Text.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Encoder.TextStream.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Endpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/EndpointConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Extension.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Extension.Parameter.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/HandshakeResponse.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/MessageHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/MessageHandler.Partial.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/MessageHandler.Whole.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/OnClose.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/OnError.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/OnMessage.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/OnOpen.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/PongMessage.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/RemoteEndpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/RemoteEndpoint.Async.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/RemoteEndpoint.Basic.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/SendHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/SendResult.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/Session.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/SessionException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/WebSocketContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/HandshakeRequest.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/PathParam.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/ServerApplicationConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/ServerContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/ServerEndpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/ServerEndpointConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/ServerEndpointConfig.Builder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/ServerEndpointConfig.Configurator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/ClientManager.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/ClientProperties.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/RedirectException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/RetryAfterException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/SslContextConfigurator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/SslEngineConfigurator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/ThreadPoolConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/TyrusClientEngine.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/auth/AuthConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/auth/AuthConfig.Builder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/auth/AuthenticationException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/auth/Authenticator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/auth/Credentials.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/AnnotatedEndpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/BaseContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/Beta.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/CloseReasons.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ComponentProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ComponentProviderService.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/DebugContext.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/DebugContext.TracingThreshold.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/DebugContext.TracingType.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/DebugContext.Type.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/DefaultComponentProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ErrorCollector.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ExecutorServiceProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/Handshake.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/HandshakeException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/MaskingKeyGenerator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/MaxSessions.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/MessageHandlerManager.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/OsgiRegistry.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ProtocolException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ProtocolHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ReflectionHelper.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/RequestContext.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/RequestContext.Builder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ServiceConfigurationError.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ServiceFinder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/StrictUtf8.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/StrictUtf8.Parser.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusEndpointWrapper.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusExtension.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusFuture.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusRemoteEndpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusServerEndpointConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusSession.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusUpgradeResponse.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusWebSocket.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusWebSocketEngine.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/Utf8DecodingException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/Utils.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/Utils.Stringifier.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/Version.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/WebSocketException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/BroadcastListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/ClusterContext.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/DistributedSession.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/RemoteSession.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/SessionEventListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/SessionListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/CoderAdapter.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/CoderWrapper.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/InputStreamDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/NoOpTextCoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/PrimitiveDecoders.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/ReaderDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/ToStringEncoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/collection/LazyValue.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/collection/Value.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/collection/Values.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/extension/ExtendedExtension.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/BinaryFrame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/CloseFrame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/Frame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/Frame.Builder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/PingFrame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/PongFrame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/TextFrame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/TyrusFrame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/l10n/Localizable.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/l10n/LocalizableMessage.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/l10n/LocalizationMessages.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/l10n/Localizer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/monitoring/EndpointEventListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/monitoring/MessageEventListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/Match.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/PathPattern.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/PathSegment.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/PathTemplate.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/UriComponent.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/UriTemplate.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/wsadl/model/Application.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/wsadl/model/Endpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/server/Server.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/server/TyrusServerConfiguration.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/server/TyrusServerContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/ClientContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/ClientEngine.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/CompletionHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/Connection.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/Connection.CloseListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/ReadHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/ServerContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/ServerContainerFactory.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/UpgradeRequest.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/UpgradeResponse.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/WebSocketEngine.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/Writer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/WriterInfo.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/WriterInfo.MessageType.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/auth/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/auth/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/server/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/server/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/collection/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/collection/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/extension/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/extension/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/l10n/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/l10n/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/monitoring/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/monitoring/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/wsadl/model/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/wsadl/model/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/gf/cdi/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/gf/cdi/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/gf/ejb/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/gf/ejb/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/server/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/server/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/servlet/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/servlet/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/package-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/package-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/constant-values.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/serialized-form.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/WebSocketContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/SessionException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Session.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/SendResult.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/SendHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/RemoteEndpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/RemoteEndpoint.Basic.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/RemoteEndpoint.Async.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/PongMessage.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/OnOpen.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/OnMessage.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/OnError.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/OnClose.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/MessageHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/MessageHandler.Partial.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/MessageHandler.Whole.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/HandshakeResponse.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Extension.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Extension.Parameter.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/EndpointConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Endpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Encoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Encoder.BinaryStream.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Encoder.Binary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Encoder.TextStream.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Encoder.Text.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/EncodeException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/DeploymentException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Decoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Decoder.TextStream.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Decoder.Text.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Decoder.BinaryStream.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/Decoder.Binary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/DecodeException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/ContainerProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/CloseReason.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/CloseReason.CloseCodes.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/CloseReason.CloseCode.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/ClientEndpointConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/ClientEndpointConfig.Builder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/ClientEndpointConfig.Configurator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/class-use/ClientEndpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/class-use/ServerEndpointConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/class-use/ServerEndpointConfig.Builder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/class-use/ServerEndpointConfig.Configurator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/class-use/ServerEndpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/class-use/ServerContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/class-use/ServerApplicationConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/class-use/PathParam.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/class-use/HandshakeRequest.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/l10n/class-use/Localizer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/l10n/class-use/LocalizationMessages.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessageFactory.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessage.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/l10n/class-use/Localizable.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/wsadl/model/class-use/ObjectFactory.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/wsadl/model/class-use/Endpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/wsadl/model/class-use/Application.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/class-use/Match.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplateParser.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplate.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.Type.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/class-use/PatternWithGroups.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/class-use/PathTemplate.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/class-use/PathSegment.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.RightHandPath.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedStringMap.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedMap.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedHashMap.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/class-use/AbstractMultivaluedMap.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/WebSocketException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/Version.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/Utils.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/Utils.Stringifier.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/Utf8DecodingException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusWebSocket.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusUpgradeResponse.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusSession.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfigurator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.Builder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusRemoteEndpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusFuture.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusExtension.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusExtension.TyrusParameter.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.OnOpenResult.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/StrictUtf8.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/StrictUtf8.Parser.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ServiceFinder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ServiceFinder.DefaultServiceIteratorProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ServiceFinder.ServiceIteratorProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ServiceConfigurationError.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/RequestContext.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/RequestContext.Builder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/RequestContext.Builder.IsUserInRoleDelegate.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ReflectionHelper.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ReflectionHelper.ClassTypePair.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ReflectionHelper.DeclaringClassInterfacePair.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ReflectionHelper.TypeClassPair.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ProtocolHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ProtocolException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/OsgiRegistry.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/MessageHandlerManager.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/MaxSessions.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/MaskingKeyGenerator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/HandshakeException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/Handshake.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ExecutorServiceProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ErrorCollector.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/DefaultComponentProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/DebugContext.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/DebugContext.TracingThreshold.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/DebugContext.TracingType.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/DebugContext.Type.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ComponentProviderService.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/ComponentProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/CloseReasons.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/Beta.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/BaseContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/BaseContainer.ShutDownCondition.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/class-use/AnnotatedEndpoint.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/monitoring/class-use/MessageEventListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/monitoring/class-use/EndpointEventListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/monitoring/class-use/ApplicationEventListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.FrameType.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/class-use/TextFrame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/class-use/PongFrame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/class-use/PingFrame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/class-use/Frame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/class-use/Frame.Builder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/class-use/CloseFrame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/class-use/BinaryFrame.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.ExtensionContext.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/collection/class-use/Values.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/collection/class-use/Value.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/collection/class-use/LazyValue.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/ToStringEncoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/ReaderDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ShortDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.LongDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.IntegerDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.FloatDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.DoubleDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.CharacterDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ByteDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.BooleanDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/NoOpTextCoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/NoOpByteBufferCoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/NoOpByteArrayCoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/InputStreamDecoder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/CoderWrapper.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/class-use/CoderAdapter.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/class-use/SessionListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/class-use/SessionEventListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.DistributedMapKey.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/class-use/DistributedSession.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/class-use/ClusterContext.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/class-use/BroadcastListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/class-use/ClientManager.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/class-use/ClientManager.ReconnectHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/class-use/ClientProperties.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/class-use/RedirectException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/class-use/RetryAfterException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/class-use/SslContextConfigurator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/class-use/SslEngineConfigurator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/class-use/ThreadPoolConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/class-use/TyrusClientEngine.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/class-use/TyrusClientEngine.ClientHandshakeListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/auth/class-use/Credentials.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/auth/class-use/Authenticator.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/auth/class-use/AuthConfig.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/auth/class-use/AuthConfig.Builder.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/auth/class-use/AuthenticationException.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/server/class-use/TyrusServerContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/server/class-use/Server.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/server/class-use/TyrusServerConfiguration.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/gf/cdi/class-use/CdiComponentProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/gf/ejb/class-use/EjbComponentProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientProperties.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientSocket.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyContainerProvider.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyWriter.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Condition.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Task.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/server/class-use/WebSocketAddOn.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/server/class-use/GrizzlyServerContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/servlet/class-use/TyrusHttpUpgradeHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/servlet/class-use/TyrusServletContainerInitializer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/WriterInfo.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/WriterInfo.RemoteEndpointType.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/WriterInfo.MessageType.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/Writer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/WebSocketEngine.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeStatus.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeInfo.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/UpgradeResponse.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/UpgradeRequest.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/ServerContainerFactory.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/ServerContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/ReadHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/Connection.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/Connection.CloseListener.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/CompletionHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/ClientEngine.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeStatus.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeInfo.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/ClientEngine.TimeoutHandler.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/class-use/ClientContainer.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax/websocket/server/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/client/auth/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/client/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/container/grizzly/server/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/cluster/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/coder/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/collection/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/extension/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/frame/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/l10n/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/monitoring/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/uri/internal/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/core/wsadl/model/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/gf/cdi/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/gf/ejb/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/server/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/servlet/package-use.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org/glassfish/tyrus/spi/package-use.html...
Building index for all the packages and classes...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/overview-tree.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/index-all.html...
Building index for all classes...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/allclasses-index.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/allpackages-index.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/deprecated-list.html...
Building index for all classes...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/allclasses.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/allclasses.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/index.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/overview-summary.html...
Generating /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/help-doc.html...
51 errors
100 warnings
[ERROR] MavenReportException: Error while generating Javadoc: 
Exit code: 1 - /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/OnMessage.java:86: error: self-closing element not allowed
 * <p/>
   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Endpoint.java:79: error: bad use of '>'
 *         session.addMessageHandler(String.class, new MessageHandler.Whole&lt;String>() {
                                                                                     ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:37: error: tag not supported in the generated HTML version: tt
 * operations (<tt>get</tt> and <tt>put</tt>), assuming the hash function
               ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:37: error: tag not supported in the generated HTML version: tt
 * operations (<tt>get</tt> and <tt>put</tt>), assuming the hash function
                                ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:45: error: tag not supported in the generated HTML version: tt
 * An instance of <tt>MultivaluedHashMap</tt> has two parameters that affect its
                  ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:58: error: tag not supported in the generated HTML version: tt
 * <tt>HashMap</tt> class, including <tt>get</tt> and <tt>put</tt>). The
   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:58: error: tag not supported in the generated HTML version: tt
 * <tt>HashMap</tt> class, including <tt>get</tt> and <tt>put</tt>). The
                                     ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:58: error: tag not supported in the generated HTML version: tt
 * <tt>HashMap</tt> class, including <tt>get</tt> and <tt>put</tt>). The
                                                      ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:65: error: tag not supported in the generated HTML version: tt
 * If many mappings are to be stored in a <tt>MultivaluedHashMap</tt> instance,
                                          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:82: error: tag not supported in the generated HTML version: tt
 * <tt>remove</tt> method, the iterator will throw a {@link java.util.ConcurrentModificationException}.
   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:90: error: tag not supported in the generated HTML version: tt
 * throw <tt>ConcurrentModificationException</tt> on a best-effort basis.
         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:66: error: tag not supported in the generated HTML version: tt
 * on <tt>META-INF/services</tt> files is described below.
      ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:68: error: tag not supported in the generated HTML version: tt
 * can enforce a different approach by setting their custom <tt>ServiceIteratorProvider</tt>
                                                            ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:69: error: tag not supported in the generated HTML version: tt
 * by calling <tt>setIteratorProvider</tt>. The call must be made prior to any lookup attempts.
              ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:72: error: tag not supported in the generated HTML version: tt
 * file in the resource directory <tt>META-INF/services</tt>.  The file's name
                                  ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:76: error: tag not supported in the generated HTML version: tt
 * well as blank lines, are ignored.  The comment character is <tt>'#'</tt>
                                                               ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:77: error: tag not supported in the generated HTML version: tt
 * (<tt>0x23</tt>); on each line all characters following the first comment
    ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:89: error: tag not supported in the generated HTML version: tt
 * <tt>java.io.spi.CharCodec</tt>.  It has two abstract methods:
   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:95: error: tag not supported in the generated HTML version: tt
 * Each method returns an appropriate object or <tt>null</tt> if it cannot
                                                ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:96: error: tag not supported in the generated HTML version: tt
 * translate the given encoding.  Typical <tt>CharCodec</tt> providers will
                                          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:99: error: tag not supported in the generated HTML version: tt
 * If <tt>sun.io.StandardCodec</tt> is a provider of the <tt>CharCodec</tt>
      ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:99: error: tag not supported in the generated HTML version: tt
 * If <tt>sun.io.StandardCodec</tt> is a provider of the <tt>CharCodec</tt>
                                                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:101: error: tag not supported in the generated HTML version: tt
 * <tt>META-INF/services/java.io.spi.CharCodec</tt>.  This file would contain
   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/ThreadPoolConfig.java:26: error: tag not supported in the generated HTML version: tt
 * One can get a default <tt>ThreadPoolConfig</tt> using {@link ThreadPoolConfig#defaultConfig()}
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/ThreadPoolConfig.java:29: error: tag not supported in the generated HTML version: tt
 * A <tt>ThreadPoolConfig</tt> object might be customized in a "Builder"-like fashion:
     ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Decoder.java:89: warning: no @throws for javax.websocket.DecodeException
        T decode(ByteBuffer bytes) throws DecodeException;
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Decoder.java:113: warning: no @throws for javax.websocket.DecodeException
        T decode(InputStream is) throws DecodeException, IOException;
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Decoder.java:113: warning: no @throws for java.io.IOException
        T decode(InputStream is) throws DecodeException, IOException;
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Decoder.java:129: warning: no @throws for javax.websocket.DecodeException
        T decode(String s) throws DecodeException;
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Decoder.java:154: warning: no @throws for javax.websocket.DecodeException
        T decode(Reader reader) throws DecodeException, IOException;
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Decoder.java:154: warning: no @throws for java.io.IOException
        T decode(Reader reader) throws DecodeException, IOException;
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Encoder.java:132: warning: no @throws for javax.websocket.EncodeException
        ByteBuffer encode(T object) throws EncodeException;
                   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Encoder.java:149: warning: no @throws for javax.websocket.EncodeException
        void encode(T object, OutputStream os) throws EncodeException, IOException;
             ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Encoder.java:149: warning: no @throws for java.io.IOException
        void encode(T object, OutputStream os) throws EncodeException, IOException;
             ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Encoder.java:93: warning: no @throws for javax.websocket.EncodeException
        String encode(T object) throws EncodeException;
               ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/RemoteEndpoint.java:113: warning: no @return
    boolean getBatchingAllowed();
            ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/RemoteEndpoint.java:119: warning: no @throws for java.io.IOException
    void flushBatch() throws IOException;
         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Session.java:118: warning: no @param for <T>
    public <T> void addMessageHandler(Class<T> clazz, MessageHandler.Whole<T> handler);
                    ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Session.java:135: warning: no @param for <T>
    public <T> void addMessageHandler(Class<T> clazz, MessageHandler.Partial<T> handler);
                    ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/WebSocketContainer.java:81: warning: no @param for timeoutmillis
    void setAsyncSendTimeout(long timeoutmillis);
         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:70: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:80: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:90: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:100: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:110: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:120: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:130: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:140: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:150: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:160: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:242: error: tag not supported in the generated HTML version: tt
     * @return <tt>true</tt>, if {@link SSLEngine} will be configured to work
               ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:243: error: tag not supported in the generated HTML version: tt
     * in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt> mode.
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:243: error: tag not supported in the generated HTML version: tt
     * in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt> mode.
                                   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:243: error: tag not supported in the generated HTML version: tt
     * in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt> mode.
                                                      ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:252: error: tag not supported in the generated HTML version: tt
     * @param clientMode <tt>true</tt>, if {@link SSLEngine} will be configured
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:253: error: tag not supported in the generated HTML version: tt
     *                   to work in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt>
                                    ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:253: error: tag not supported in the generated HTML version: tt
     *                   to work in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt>
                                                             ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:253: error: tag not supported in the generated HTML version: tt
     *                   to work in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt>
                                                                                ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/ThreadPoolConfig.java:56: error: tag not supported in the generated HTML version: tt
     * Create new client thread pool configuration instance. The returned <tt>ThreadPoolConfig</tt> instance will be
                                                                          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/ThreadPoolConfig.java:298: error: tag not supported in the generated HTML version: tt
     * @param queueLimit the thread pool queue limit. The <tt>queueLimit</tt> value less than 0 means unlimited queue.
                                                          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:181: error: tag not supported in the generated HTML version: tt
     * <tt>getResources</tt> method of the given class loader to find all
       ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:193: error: tag not supported in the generated HTML version: tt
     *                and instantiate provider classes, or <tt>null</tt> if the system
                                                           ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:215: error: tag not supported in the generated HTML version: tt
     * <tt>getResources</tt> method of the given class loader to find all
       ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:227: error: tag not supported in the generated HTML version: tt
     *                              and instantiate provider classes, or <tt>null</tt> if the system
                                                                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:348: error: tag not supported in the generated HTML version: tt
     * @return An <tt>Iterator</tt> that yields provider objects for the given
                  ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:350: error: tag not supported in the generated HTML version: tt
     * <tt>ServiceConfigurationError</tt> if a provider-configuration
       ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:23: warning: no @param for arg0
    public static String INVALID_HEADER(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:23: warning: no @param for arg1
    public static String INVALID_HEADER(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:23: warning: no @return
    public static String INVALID_HEADER(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:35: warning: no @param for arg0
    public static String BINARY_MESSAGE_HANDLER_NOT_FOUND(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:35: warning: no @return
    public static String BINARY_MESSAGE_HANDLER_NOT_FOUND(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:47: warning: no @return
    public static String SOCKET_NOT_CONNECTED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:59: warning: no @param for arg0
    public static String CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:59: warning: no @param for arg1
    public static String CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:59: warning: no @return
    public static String CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:71: warning: no @param for arg0
    public static String AUTHENTICATION_DIGEST_QOP_UNSUPPORTED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:71: warning: no @return
    public static String AUTHENTICATION_DIGEST_QOP_UNSUPPORTED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:83: warning: no @return
    public static String MESSAGE_HANDLER_ALREADY_REGISTERED_BINARY() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:95: warning: no @return
    public static String SEND_MESSAGE_INFRAGMENT() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:107: warning: no @param for arg0
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:107: warning: no @param for arg1
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:107: warning: no @param for arg2
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:107: warning: no @return
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:119: warning: no @param for arg0
    public static String URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:119: warning: no @param for arg1
    public static String URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:119: warning: no @return
    public static String URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:131: warning: no @param for arg0
    public static String TEXT_MESSAGE_HANDLER_NOT_FOUND(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:131: warning: no @return
    public static String TEXT_MESSAGE_HANDLER_NOT_FOUND(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:143: warning: no @param for arg0
    public static String TEXT_MESSAGE_OUT_OF_ORDER(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:143: warning: no @return
    public static String TEXT_MESSAGE_OUT_OF_ORDER(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:155: warning: no @param for arg0
    public static String MESSAGE_HANDLER_PARTIAL_INVALID_TYPE(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:155: warning: no @return
    public static String MESSAGE_HANDLER_PARTIAL_INVALID_TYPE(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:167: warning: no @param for arg0
    public static String MESSAGE_HANDLER_DECODER_NOT_REGISTERED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:167: warning: no @return
    public static String MESSAGE_HANDLER_DECODER_NOT_REGISTERED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:179: warning: no @param for arg0
    public static String INVALID_RESPONSE_CODE(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:179: warning: no @param for arg1
    public static String INVALID_RESPONSE_CODE(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:179: warning: no @return
    public static String INVALID_RESPONSE_CODE(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:191: warning: no @return
    public static String SEC_KEY_NULL_NOT_ALLOWED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:203: warning: no @param for arg0
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:203: warning: no @param for arg1
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:203: warning: no @return
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:215: warning: no @param for arg0
    public static String EQUIVALENT_PATHS(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:215: warning: no @param for arg1
    public static String EQUIVALENT_PATHS(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:215: warning: no @return
    public static String EQUIVALENT_PATHS(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:227: warning: no @param for arg0
    public static String URI_COMPONENT_INVALID_CHARACTER(Object arg0, Object arg1, Object arg2, Object arg3) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:227: warning: no @param for arg1
    public static String URI_COMPONENT_INVALID_CHARACTER(Object arg0, Object arg1, Object arg2, Object arg3) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:227: warning: no @param for arg2
    public static String URI_COMPONENT_INVALID_CHARACTER(Object arg0, Object arg1, Object arg2, Object arg3) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:227: warning: no @param for arg3
    public static String URI_COMPONENT_INVALID_CHARACTER(Object arg0, Object arg1, Object arg2, Object arg3) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:227: warning: no @return
    public static String URI_COMPONENT_INVALID_CHARACTER(Object arg0, Object arg1, Object arg2, Object arg3) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:239: warning: no @return
    public static String MAX_SESSIONS_PER_REMOTEADDR_EXCEEDED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:251: warning: no @param for arg0
    public static String APPLICATION_DATA_TOO_LONG(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:251: warning: no @return
    public static String APPLICATION_DATA_TOO_LONG(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:263: warning: no @param for arg0
    public static String MESSAGE_TOO_LONG(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:263: warning: no @param for arg1
    public static String MESSAGE_TOO_LONG(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:263: warning: no @return
    public static String MESSAGE_TOO_LONG(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:275: warning: no @return
    public static String AUTHENTICATION_DIGEST_NO_SUCH_ALG() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:287: warning: no @param for arg0
    public static String HANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:287: warning: no @return
    public static String HANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:299: warning: no @return
    public static String HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:311: warning: no @param for arg0
    public static String ARGUMENT_NOT_NULL(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:311: warning: no @return
    public static String ARGUMENT_NOT_NULL(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:323: warning: no @param for arg0
    public static String COMPONENT_PROVIDER_NOT_FOUND(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:323: warning: no @return
    public static String COMPONENT_PROVIDER_NOT_FOUND(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:335: warning: no @param for arg0
    public static String PROVIDER_NOT_FOUND(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:335: warning: no @param for arg1
    public static String PROVIDER_NOT_FOUND(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:335: warning: no @return
    public static String PROVIDER_NOT_FOUND(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:347: warning: no @return
    public static String PARTIAL_MESSAGE_BUFFER_OVERFLOW() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:359: warning: no @return
    public static String RSV_INCORRECTLY_SET() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:371: warning: no @param for arg0
    public static String URI_COMPONENT_ENCODED_OCTET_MALFORMED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:371: warning: no @return
    public static String URI_COMPONENT_ENCODED_OCTET_MALFORMED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:383: warning: no @return
    public static String CONTROL_FRAME_FRAGMENTED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:395: warning: no @param for arg0
    public static String CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:395: warning: no @param for arg1
    public static String CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:395: warning: no @return
    public static String CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:407: warning: no @return
    public static String AUTHENTICATION_CREATE_AUTH_HEADER_FAILED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:419: warning: no @param for arg0
    public static String MESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:419: warning: no @return
    public static String MESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:431: warning: no @param for arg0
    public static String CLASS_CHECKER_MANDATORY_PARAM_MISSING(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:431: warning: no @param for arg1
    public static String CLASS_CHECKER_MANDATORY_PARAM_MISSING(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:431: warning: no @return
    public static String CLASS_CHECKER_MANDATORY_PARAM_MISSING(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:443: warning: no @param for arg0
    public static String ENDPOINT_WRONG_PATH_PARAM(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:443: warning: no @param for arg1
    public static String ENDPOINT_WRONG_PATH_PARAM(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:443: warning: no @return
    public static String ENDPOINT_WRONG_PATH_PARAM(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:455: warning: no @return
    public static String CONNECTION_HAS_BEEN_CLOSED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:467: warning: no @return
    public static String HANDSHAKE_HTTP_RETRY_AFTER_MESSAGE() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:479: warning: no @param for arg0
    public static String DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:479: warning: no @param for arg1
    public static String DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:479: warning: no @param for arg2
    public static String DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:479: warning: no @return
    public static String DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:491: warning: no @return
    public static String FRAME_WRITE_CANCELLED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:503: warning: no @return
    public static String UNEXPECTED_ERROR_CONNECTION_CLOSE() {
                         ^

Command line was: /opt/tools/java/openjdk/jdk-11/latest/bin/javadoc -J-Xmx512m -J-Xms128m @options @packages

Refer to the generated Javadoc files in '/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs' dir.

org.apache.maven.reporting.MavenReportException: 
Exit code: 1 - /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/OnMessage.java:86: error: self-closing element not allowed
 * <p/>
   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Endpoint.java:79: error: bad use of '>'
 *         session.addMessageHandler(String.class, new MessageHandler.Whole&lt;String>() {
                                                                                     ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:37: error: tag not supported in the generated HTML version: tt
 * operations (<tt>get</tt> and <tt>put</tt>), assuming the hash function
               ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:37: error: tag not supported in the generated HTML version: tt
 * operations (<tt>get</tt> and <tt>put</tt>), assuming the hash function
                                ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:45: error: tag not supported in the generated HTML version: tt
 * An instance of <tt>MultivaluedHashMap</tt> has two parameters that affect its
                  ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:58: error: tag not supported in the generated HTML version: tt
 * <tt>HashMap</tt> class, including <tt>get</tt> and <tt>put</tt>). The
   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:58: error: tag not supported in the generated HTML version: tt
 * <tt>HashMap</tt> class, including <tt>get</tt> and <tt>put</tt>). The
                                     ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:58: error: tag not supported in the generated HTML version: tt
 * <tt>HashMap</tt> class, including <tt>get</tt> and <tt>put</tt>). The
                                                      ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:65: error: tag not supported in the generated HTML version: tt
 * If many mappings are to be stored in a <tt>MultivaluedHashMap</tt> instance,
                                          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:82: error: tag not supported in the generated HTML version: tt
 * <tt>remove</tt> method, the iterator will throw a {@link java.util.ConcurrentModificationException}.
   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.java:90: error: tag not supported in the generated HTML version: tt
 * throw <tt>ConcurrentModificationException</tt> on a best-effort basis.
         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:66: error: tag not supported in the generated HTML version: tt
 * on <tt>META-INF/services</tt> files is described below.
      ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:68: error: tag not supported in the generated HTML version: tt
 * can enforce a different approach by setting their custom <tt>ServiceIteratorProvider</tt>
                                                            ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:69: error: tag not supported in the generated HTML version: tt
 * by calling <tt>setIteratorProvider</tt>. The call must be made prior to any lookup attempts.
              ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:72: error: tag not supported in the generated HTML version: tt
 * file in the resource directory <tt>META-INF/services</tt>.  The file's name
                                  ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:76: error: tag not supported in the generated HTML version: tt
 * well as blank lines, are ignored.  The comment character is <tt>'#'</tt>
                                                               ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:77: error: tag not supported in the generated HTML version: tt
 * (<tt>0x23</tt>); on each line all characters following the first comment
    ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:89: error: tag not supported in the generated HTML version: tt
 * <tt>java.io.spi.CharCodec</tt>.  It has two abstract methods:
   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:95: error: tag not supported in the generated HTML version: tt
 * Each method returns an appropriate object or <tt>null</tt> if it cannot
                                                ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:96: error: tag not supported in the generated HTML version: tt
 * translate the given encoding.  Typical <tt>CharCodec</tt> providers will
                                          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:99: error: tag not supported in the generated HTML version: tt
 * If <tt>sun.io.StandardCodec</tt> is a provider of the <tt>CharCodec</tt>
      ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:99: error: tag not supported in the generated HTML version: tt
 * If <tt>sun.io.StandardCodec</tt> is a provider of the <tt>CharCodec</tt>
                                                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:101: error: tag not supported in the generated HTML version: tt
 * <tt>META-INF/services/java.io.spi.CharCodec</tt>.  This file would contain
   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/ThreadPoolConfig.java:26: error: tag not supported in the generated HTML version: tt
 * One can get a default <tt>ThreadPoolConfig</tt> using {@link ThreadPoolConfig#defaultConfig()}
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/ThreadPoolConfig.java:29: error: tag not supported in the generated HTML version: tt
 * A <tt>ThreadPoolConfig</tt> object might be customized in a "Builder"-like fashion:
     ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Decoder.java:89: warning: no @throws for javax.websocket.DecodeException
        T decode(ByteBuffer bytes) throws DecodeException;
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Decoder.java:113: warning: no @throws for javax.websocket.DecodeException
        T decode(InputStream is) throws DecodeException, IOException;
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Decoder.java:113: warning: no @throws for java.io.IOException
        T decode(InputStream is) throws DecodeException, IOException;
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Decoder.java:129: warning: no @throws for javax.websocket.DecodeException
        T decode(String s) throws DecodeException;
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Decoder.java:154: warning: no @throws for javax.websocket.DecodeException
        T decode(Reader reader) throws DecodeException, IOException;
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Decoder.java:154: warning: no @throws for java.io.IOException
        T decode(Reader reader) throws DecodeException, IOException;
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Encoder.java:132: warning: no @throws for javax.websocket.EncodeException
        ByteBuffer encode(T object) throws EncodeException;
                   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Encoder.java:149: warning: no @throws for javax.websocket.EncodeException
        void encode(T object, OutputStream os) throws EncodeException, IOException;
             ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Encoder.java:149: warning: no @throws for java.io.IOException
        void encode(T object, OutputStream os) throws EncodeException, IOException;
             ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Encoder.java:93: warning: no @throws for javax.websocket.EncodeException
        String encode(T object) throws EncodeException;
               ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/RemoteEndpoint.java:113: warning: no @return
    boolean getBatchingAllowed();
            ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/RemoteEndpoint.java:119: warning: no @throws for java.io.IOException
    void flushBatch() throws IOException;
         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Session.java:118: warning: no @param for <T>
    public <T> void addMessageHandler(Class<T> clazz, MessageHandler.Whole<T> handler);
                    ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/Session.java:135: warning: no @param for <T>
    public <T> void addMessageHandler(Class<T> clazz, MessageHandler.Partial<T> handler);
                    ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/javax/websocket/WebSocketContainer.java:81: warning: no @param for timeoutmillis
    void setAsyncSendTimeout(long timeoutmillis);
         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:70: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:80: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:90: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:100: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:110: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:120: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:130: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:140: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:150: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslContextConfigurator.java:160: error: tag not supported in the generated HTML version: tt
     * The name of the configuration property is <tt>{@value}</tt>.
                                                 ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:242: error: tag not supported in the generated HTML version: tt
     * @return <tt>true</tt>, if {@link SSLEngine} will be configured to work
               ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:243: error: tag not supported in the generated HTML version: tt
     * in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt> mode.
          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:243: error: tag not supported in the generated HTML version: tt
     * in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt> mode.
                                   ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:243: error: tag not supported in the generated HTML version: tt
     * in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt> mode.
                                                      ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:252: error: tag not supported in the generated HTML version: tt
     * @param clientMode <tt>true</tt>, if {@link SSLEngine} will be configured
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:253: error: tag not supported in the generated HTML version: tt
     *                   to work in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt>
                                    ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:253: error: tag not supported in the generated HTML version: tt
     *                   to work in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt>
                                                             ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/SslEngineConfigurator.java:253: error: tag not supported in the generated HTML version: tt
     *                   to work in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt>
                                                                                ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/ThreadPoolConfig.java:56: error: tag not supported in the generated HTML version: tt
     * Create new client thread pool configuration instance. The returned <tt>ThreadPoolConfig</tt> instance will be
                                                                          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/client/ThreadPoolConfig.java:298: error: tag not supported in the generated HTML version: tt
     * @param queueLimit the thread pool queue limit. The <tt>queueLimit</tt> value less than 0 means unlimited queue.
                                                          ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:181: error: tag not supported in the generated HTML version: tt
     * <tt>getResources</tt> method of the given class loader to find all
       ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:193: error: tag not supported in the generated HTML version: tt
     *                and instantiate provider classes, or <tt>null</tt> if the system
                                                           ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:215: error: tag not supported in the generated HTML version: tt
     * <tt>getResources</tt> method of the given class loader to find all
       ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:227: error: tag not supported in the generated HTML version: tt
     *                              and instantiate provider classes, or <tt>null</tt> if the system
                                                                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:348: error: tag not supported in the generated HTML version: tt
     * @return An <tt>Iterator</tt> that yields provider objects for the given
                  ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/ServiceFinder.java:350: error: tag not supported in the generated HTML version: tt
     * <tt>ServiceConfigurationError</tt> if a provider-configuration
       ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:23: warning: no @param for arg0
    public static String INVALID_HEADER(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:23: warning: no @param for arg1
    public static String INVALID_HEADER(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:23: warning: no @return
    public static String INVALID_HEADER(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:35: warning: no @param for arg0
    public static String BINARY_MESSAGE_HANDLER_NOT_FOUND(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:35: warning: no @return
    public static String BINARY_MESSAGE_HANDLER_NOT_FOUND(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:47: warning: no @return
    public static String SOCKET_NOT_CONNECTED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:59: warning: no @param for arg0
    public static String CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:59: warning: no @param for arg1
    public static String CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:59: warning: no @return
    public static String CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:71: warning: no @param for arg0
    public static String AUTHENTICATION_DIGEST_QOP_UNSUPPORTED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:71: warning: no @return
    public static String AUTHENTICATION_DIGEST_QOP_UNSUPPORTED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:83: warning: no @return
    public static String MESSAGE_HANDLER_ALREADY_REGISTERED_BINARY() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:95: warning: no @return
    public static String SEND_MESSAGE_INFRAGMENT() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:107: warning: no @param for arg0
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:107: warning: no @param for arg1
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:107: warning: no @param for arg2
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:107: warning: no @return
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:119: warning: no @param for arg0
    public static String URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:119: warning: no @param for arg1
    public static String URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:119: warning: no @return
    public static String URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:131: warning: no @param for arg0
    public static String TEXT_MESSAGE_HANDLER_NOT_FOUND(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:131: warning: no @return
    public static String TEXT_MESSAGE_HANDLER_NOT_FOUND(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:143: warning: no @param for arg0
    public static String TEXT_MESSAGE_OUT_OF_ORDER(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:143: warning: no @return
    public static String TEXT_MESSAGE_OUT_OF_ORDER(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:155: warning: no @param for arg0
    public static String MESSAGE_HANDLER_PARTIAL_INVALID_TYPE(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:155: warning: no @return
    public static String MESSAGE_HANDLER_PARTIAL_INVALID_TYPE(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:167: warning: no @param for arg0
    public static String MESSAGE_HANDLER_DECODER_NOT_REGISTERED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:167: warning: no @return
    public static String MESSAGE_HANDLER_DECODER_NOT_REGISTERED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:179: warning: no @param for arg0
    public static String INVALID_RESPONSE_CODE(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:179: warning: no @param for arg1
    public static String INVALID_RESPONSE_CODE(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:179: warning: no @return
    public static String INVALID_RESPONSE_CODE(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:191: warning: no @return
    public static String SEC_KEY_NULL_NOT_ALLOWED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:203: warning: no @param for arg0
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:203: warning: no @param for arg1
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:203: warning: no @return
    public static String CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:215: warning: no @param for arg0
    public static String EQUIVALENT_PATHS(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:215: warning: no @param for arg1
    public static String EQUIVALENT_PATHS(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:215: warning: no @return
    public static String EQUIVALENT_PATHS(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:227: warning: no @param for arg0
    public static String URI_COMPONENT_INVALID_CHARACTER(Object arg0, Object arg1, Object arg2, Object arg3) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:227: warning: no @param for arg1
    public static String URI_COMPONENT_INVALID_CHARACTER(Object arg0, Object arg1, Object arg2, Object arg3) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:227: warning: no @param for arg2
    public static String URI_COMPONENT_INVALID_CHARACTER(Object arg0, Object arg1, Object arg2, Object arg3) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:227: warning: no @param for arg3
    public static String URI_COMPONENT_INVALID_CHARACTER(Object arg0, Object arg1, Object arg2, Object arg3) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:227: warning: no @return
    public static String URI_COMPONENT_INVALID_CHARACTER(Object arg0, Object arg1, Object arg2, Object arg3) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:239: warning: no @return
    public static String MAX_SESSIONS_PER_REMOTEADDR_EXCEEDED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:251: warning: no @param for arg0
    public static String APPLICATION_DATA_TOO_LONG(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:251: warning: no @return
    public static String APPLICATION_DATA_TOO_LONG(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:263: warning: no @param for arg0
    public static String MESSAGE_TOO_LONG(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:263: warning: no @param for arg1
    public static String MESSAGE_TOO_LONG(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:263: warning: no @return
    public static String MESSAGE_TOO_LONG(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:275: warning: no @return
    public static String AUTHENTICATION_DIGEST_NO_SUCH_ALG() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:287: warning: no @param for arg0
    public static String HANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:287: warning: no @return
    public static String HANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:299: warning: no @return
    public static String HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:311: warning: no @param for arg0
    public static String ARGUMENT_NOT_NULL(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:311: warning: no @return
    public static String ARGUMENT_NOT_NULL(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:323: warning: no @param for arg0
    public static String COMPONENT_PROVIDER_NOT_FOUND(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:323: warning: no @return
    public static String COMPONENT_PROVIDER_NOT_FOUND(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:335: warning: no @param for arg0
    public static String PROVIDER_NOT_FOUND(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:335: warning: no @param for arg1
    public static String PROVIDER_NOT_FOUND(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:335: warning: no @return
    public static String PROVIDER_NOT_FOUND(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:347: warning: no @return
    public static String PARTIAL_MESSAGE_BUFFER_OVERFLOW() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:359: warning: no @return
    public static String RSV_INCORRECTLY_SET() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:371: warning: no @param for arg0
    public static String URI_COMPONENT_ENCODED_OCTET_MALFORMED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:371: warning: no @return
    public static String URI_COMPONENT_ENCODED_OCTET_MALFORMED(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:383: warning: no @return
    public static String CONTROL_FRAME_FRAGMENTED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:395: warning: no @param for arg0
    public static String CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:395: warning: no @param for arg1
    public static String CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:395: warning: no @return
    public static String CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:407: warning: no @return
    public static String AUTHENTICATION_CREATE_AUTH_HEADER_FAILED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:419: warning: no @param for arg0
    public static String MESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:419: warning: no @return
    public static String MESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(Object arg0) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:431: warning: no @param for arg0
    public static String CLASS_CHECKER_MANDATORY_PARAM_MISSING(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:431: warning: no @param for arg1
    public static String CLASS_CHECKER_MANDATORY_PARAM_MISSING(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:431: warning: no @return
    public static String CLASS_CHECKER_MANDATORY_PARAM_MISSING(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:443: warning: no @param for arg0
    public static String ENDPOINT_WRONG_PATH_PARAM(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:443: warning: no @param for arg1
    public static String ENDPOINT_WRONG_PATH_PARAM(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:443: warning: no @return
    public static String ENDPOINT_WRONG_PATH_PARAM(Object arg0, Object arg1) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:455: warning: no @return
    public static String CONNECTION_HAS_BEEN_CLOSED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:467: warning: no @return
    public static String HANDSHAKE_HTTP_RETRY_AFTER_MESSAGE() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:479: warning: no @param for arg0
    public static String DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:479: warning: no @param for arg1
    public static String DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:479: warning: no @param for arg2
    public static String DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:479: warning: no @return
    public static String DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(Object arg0, Object arg1, Object arg2) {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:491: warning: no @return
    public static String FRAME_WRITE_CANCELLED() {
                         ^
/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java/org/glassfish/tyrus/core/l10n/LocalizationMessages.java:503: warning: no @return
    public static String UNEXPECTED_ERROR_CONNECTION_CLOSE() {
                         ^

Command line was: /opt/tools/java/openjdk/jdk-11/latest/bin/javadoc -J-Xmx512m -J-Xms128m @options @packages

Refer to the generated Javadoc files in '/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs' dir.

    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5298)
    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.executeReport (AbstractJavadocMojo.java:2134)
    at org.apache.maven.plugins.javadoc.JavadocJar.doExecute (JavadocJar.java:190)
    at org.apache.maven.plugins.javadoc.AbstractJavadocMojo.execute (AbstractJavadocMojo.java:1912)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:301)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:211)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:165)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:157)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:121)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:127)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/websocket-ri-bundle-1.20-javadoc.jar
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar-no-fork (attach-sources) @ websocket-ri-bundle ---
[INFO] Building jar: /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/websocket-ri-bundle-1.20-sources.jar
[INFO] 
[INFO] --- maven-install-plugin:3.0.1:install (default-install) @ websocket-ri-bundle ---
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/pom.xml to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/websocket-ri-bundle/1.20/websocket-ri-bundle-1.20.pom
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/websocket-ri-bundle-1.20.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/websocket-ri-bundle/1.20/websocket-ri-bundle-1.20.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/websocket-ri-bundle-1.20-javadoc.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/websocket-ri-bundle/1.20/websocket-ri-bundle-1.20-javadoc.jar
[INFO] Installing /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/websocket-ri-bundle-1.20-sources.jar to /home/jenkins/.m2/repository/org/glassfish/tyrus/bundles/websocket-ri-bundle/1.20/websocket-ri-bundle-1.20-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.4.0:install (default-install) @ websocket-ri-bundle ---
[INFO] Installing org/glassfish/tyrus/bundles/websocket-ri-bundle/1.20/websocket-ri-bundle-1.20.jar
[INFO] Writing OBR metadata
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for tyrus 1.20:
[INFO] 
[INFO] tyrus .............................................. SUCCESS [ 17.322 s]
[INFO] tyrus-archetypes ................................... SUCCESS [  1.157 s]
[INFO] Tyrus Echo Archetype ............................... SUCCESS [ 13.881 s]
[INFO] Tyrus BOM .......................................... SUCCESS [  0.004 s]
[INFO] Tyrus Container SPI ................................ SUCCESS [  3.733 s]
[INFO] Tyrus Core ......................................... SUCCESS [ 10.420 s]
[INFO] Tyrus Client ....................................... SUCCESS [  0.546 s]
[INFO] Tyrus Container Modules ............................ SUCCESS [  0.006 s]
[INFO] Tyrus Containers For Glassfish ..................... SUCCESS [  0.005 s]
[INFO] Tyrus CDI Component Provider ....................... SUCCESS [  0.499 s]
[INFO] Tyrus EJB Component Provider ....................... SUCCESS [  0.520 s]
[INFO] Tyrus Grizzly Client Container ..................... SUCCESS [  0.881 s]
[INFO] Tyrus Server ....................................... SUCCESS [  0.312 s]
[INFO] Tyrus Grizzly Server Container ..................... SUCCESS [  0.222 s]
[INFO] Tyrus InMemory Container ........................... SUCCESS [  0.279 s]
[INFO] Tyrus Servlet Bundle ............................... SUCCESS [  8.022 s]
[INFO] Tyrus Tests ........................................ SUCCESS [  0.005 s]
[INFO] Tyrus Test Tools ................................... SUCCESS [  0.192 s]
[INFO] Tyrus JDK Client Container ......................... SUCCESS [  0.460 s]
[INFO] Tyrus Documentation ................................ SUCCESS [ 21.907 s]
[INFO] Tyrus Extension Modules ............................ SUCCESS [  0.004 s]
[INFO] Tyrus CLI Client ................................... SUCCESS [  2.333 s]
[INFO] Tyrus Monitoring JMX ............................... SUCCESS [  0.686 s]
[INFO] Tyrus Extension - Per Message Deflate .............. SUCCESS [  0.183 s]
[INFO] Tyrus Java8 Client Extension ....................... SUCCESS [  0.184 s]
[INFO] Tyrus Samples ...................................... SUCCESS [  0.004 s]
[INFO] Tyrus Auction Sample ............................... SUCCESS [  1.722 s]
[INFO] Tyrus CDI Sample ................................... SUCCESS [  0.486 s]
[INFO] Tyrus Chat Sample .................................. SUCCESS [  0.243 s]
[INFO] Tyrus Draw Sample .................................. SUCCESS [  0.158 s]
[INFO] Tyrus Echo Sample .................................. SUCCESS [  0.282 s]
[INFO] Tyrus Basic Auth Sample ............................ SUCCESS [  0.222 s]
[INFO] Tyrus Secure Echo Sample ........................... SUCCESS [  0.224 s]
[INFO] Tyrus Programmatic Echo Sample ..................... SUCCESS [  0.196 s]
[INFO] Tyrus Simple Life Sample ........................... SUCCESS [  0.186 s]
[INFO] Tyrus Shared Collection Sample ..................... SUCCESS [  3.493 s]
[INFO] Tyrus End-to-End Tests ............................. SUCCESS [  0.008 s]
[INFO] Tyrus End-to-End Application Config Tests .......... SUCCESS [  0.217 s]
[INFO] Tyrus End-to-End Non-deployable Tests .............. SUCCESS [  0.391 s]
[INFO] Tyrus End-to-End Standard Config Tests ............. SUCCESS [  0.985 s]
[INFO] Tyrus End-to-End Java 8 Tests ...................... SUCCESS [  0.209 s]
[INFO] Tyrus End-to-End Tests running on Jetty ............ SUCCESS [  0.004 s]
[INFO] Tyrus End-to-End Basic Auth Tests .................. SUCCESS [ 11.001 s]
[INFO] Tyrus End-to-End Digest Auth Tests ................. SUCCESS [  0.731 s]
[INFO] Tyrus Server Integration Tests ..................... SUCCESS [  0.004 s]
[INFO] Tyrus Servlet Async Tests .......................... SUCCESS [  0.227 s]
[INFO] Tyrus Autobahn Echo Server ......................... SUCCESS [  0.223 s]
[INFO] Tyrus Servlet Basic Tests .......................... SUCCESS [  0.229 s]
[INFO] Tyrus Servlet Dynamic Deploy Test .................. SUCCESS [  0.168 s]
[INFO] Tyrus Servlet No App Config ........................ SUCCESS [  0.128 s]
[INFO] Tyrus Servlet One App Config ....................... SUCCESS [  0.196 s]
[INFO] Tyrus Servlet RemoteEndpoint Timeout ............... SUCCESS [  0.373 s]
[INFO] Tyrus Servlet Session Closing ...................... SUCCESS [  0.223 s]
[INFO] Tyrus Servlet Two App Config ....................... SUCCESS [  0.265 s]
[INFO] Tyrus Servlet Monitoring Test ...................... SUCCESS [  0.128 s]
[INFO] Tyrus Servlet Inject Test .......................... SUCCESS [  0.169 s]
[INFO] Tyrus Servlet Max Sessions Per App Tests ........... SUCCESS [  0.198 s]
[INFO] Tyrus Servlet Max Sessions Per Remote Addr Tests ... SUCCESS [  0.144 s]
[INFO] Tyrus Debug Debug Samples .......................... SUCCESS [  0.166 s]
[INFO] Tyrus Bundles ...................................... SUCCESS [  0.004 s]
[INFO] Tyrus Samples Bundle ............................... SUCCESS [  3.230 s]
[INFO] Tyrus Standalone Client ............................ SUCCESS [  8.133 s]
[INFO] Tyrus Standalone Client - JDK ...................... SUCCESS [  4.228 s]
[INFO] Tyrus Websocket RI Archive ......................... SUCCESS [  2.140 s]
[INFO] Tyrus Websocket RI Bundle .......................... SUCCESS [  7.295 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:22 min
[INFO] Finished at: 2022-10-11T10:16:35Z
[INFO] ------------------------------------------------------------------------
+ git clone git@github.com:eclipse-ee4j/tyrus-project.github.io.git 1.20
Cloning into '1.20'...
Checking out files:  93% (16909/18156)   
Checking out files:  94% (17067/18156)   
Checking out files:  95% (17249/18156)   
Checking out files:  96% (17430/18156)   
Checking out files:  97% (17612/18156)   
Checking out files:  98% (17793/18156)   
Checking out files:  99% (17975/18156)   
Checking out files: 100% (18156/18156)   
Checking out files: 100% (18156/18156), done.
+ cd 1.20/apidocs
+ mkdir 1.20
+ cp -a /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/allclasses.html /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/allclasses-index.html /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/allpackages-index.html /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/constant-values.html /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/deprecated-list.html /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/element-list /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/help-doc.html /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/index-all.html /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/index.html /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javadoc.sh /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/javax /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/jquery /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/member-search-index.js /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/member-search-index.zip /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/options /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/org /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/overview-summary.html /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/overview-tree.html /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/packages /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/package-search-index.js /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/package-search-index.zip /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/resources /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/script.js /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/search.js /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/serialized-form.html /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/stylesheet.css /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/type-search-index.js /home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs/type-search-index.zip 1.20/
+ rm -rf latest1x/allclasses.html latest1x/allclasses-index.html latest1x/allpackages-index.html latest1x/constant-values.html latest1x/deprecated-list.html latest1x/element-list latest1x/help-doc.html latest1x/index-all.html latest1x/index.html latest1x/javadoc.sh latest1x/javax latest1x/jquery latest1x/member-search-index.js latest1x/member-search-index.zip latest1x/options latest1x/org latest1x/overview-summary.html latest1x/overview-tree.html latest1x/packages latest1x/package-search-index.js latest1x/package-search-index.zip latest1x/resources latest1x/script.js latest1x/search.js latest1x/serialized-form.html latest1x/stylesheet.css latest1x/type-search-index.js latest1x/type-search-index.zip
+ cp -a 1.20/allclasses.html 1.20/allclasses-index.html 1.20/allpackages-index.html 1.20/constant-values.html 1.20/deprecated-list.html 1.20/element-list 1.20/help-doc.html 1.20/index-all.html 1.20/index.html 1.20/javadoc.sh 1.20/javax 1.20/jquery 1.20/member-search-index.js 1.20/member-search-index.zip 1.20/options 1.20/org 1.20/overview-summary.html 1.20/overview-tree.html 1.20/packages 1.20/package-search-index.js 1.20/package-search-index.zip 1.20/resources 1.20/script.js 1.20/search.js 1.20/serialized-form.html 1.20/stylesheet.css 1.20/type-search-index.js 1.20/type-search-index.zip latest1x/
+ git config --local user.email tyrus-bot@eclipse.org
+ git config --local user.name tyrus-bot
+ git add -A .
+ git diff --cached --exit-code
diff --git a/apidocs/1.20/allclasses-index.html b/apidocs/1.20/allclasses-index.html
new file mode 100644
index 00000000..d8460627
--- /dev/null
+++ b/apidocs/1.20/allclasses-index.html
@@ -0,0 +1,1534 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>All Classes (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="All Classes (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":2,"i1":2,"i2":2,"i3":1,"i4":2,"i5":2,"i6":8,"i7":2,"i8":2,"i9":1,"i10":32,"i11":2,"i12":1,"i13":2,"i14":1,"i15":32,"i16":1,"i17":2,"i18":2,"i19":1,"i20":1,"i21":4,"i22":1,"i23":2,"i24":2,"i25":2,"i26":2,"i27":2,"i28":1,"i29":4,"i30":4,"i31":2,"i32":2,"i33":2,"i34":2,"i35":2,"i36":2,"i37":1,"i38":1,"i39":2,"i40":2,"i41":2,"i42":4,"i43":4,"i44":4,"i45":8,"i46":1,"i47":1,"i48":1,"i49":1,"i50":1,"i51":2,"i52":8,"i53":1,"i54":2,"i55":8,"i56":1,"i57":1,"i58":1,"i59":1,"i60":1,"i61":2,"i62":2,"i63":1,"i64":1,"i65":2,"i66":2,"i67":1,"i68":1,"i69":1,"i70":1,"i71":2,"i72":2,"i73":2,"i74":2,"i75":2,"i76":2,"i77":2,"i78":2,"i79":2,"i80":8,"i81":1,"i82":1,"i83":2,"i84":1,"i85":1,"i86":2,"i87":2,"i88":2,"i89":2,"i90":1,"i91":2,"i92":32,"i93":1,"i94":1,"i95":1,"i96":1,"i97":2,"i98":2,"i99":1,"i100":2,"i101":2,"i102":2,"i103":2,"i104":2,"i105":32,"i106":32,"i107":32,"i108":32,"i109":2,"i110":32,"i111":2,"i112":4,"i113":1,"i114":2,"i115":2,"i116":2,"i117":2,"i118":1,"i119":2,"i120":2,"i121":2,"i122":2,"i123":2,"i124":2,"i125":2,"i126":2,"i127":2,"i128":8,"i129":2,"i130":2,"i131":1,"i132":8,"i133":2,"i134":2,"i135":2,"i136":2,"i137":1,"i138":1,"i139":1,"i140":2,"i141":4,"i142":2,"i143":2,"i144":1,"i145":8,"i146":1,"i147":2,"i148":2,"i149":1,"i150":1,"i151":1,"i152":2,"i153":32,"i154":1,"i155":2,"i156":2,"i157":16,"i158":2,"i159":2,"i160":2,"i161":1,"i162":2,"i163":8,"i164":1,"i165":2,"i166":2,"i167":2,"i168":2,"i169":2,"i170":1,"i171":2,"i172":2,"i173":2,"i174":2,"i175":2,"i176":1,"i177":2,"i178":2,"i179":4,"i180":2,"i181":2,"i182":2,"i183":4,"i184":2,"i185":2,"i186":2,"i187":2,"i188":2,"i189":1,"i190":2,"i191":2,"i192":2,"i193":2,"i194":2,"i195":2,"i196":2,"i197":2,"i198":2,"i199":2,"i200":2,"i201":4,"i202":2,"i203":2,"i204":8,"i205":2,"i206":2,"i207":1,"i208":2,"i209":4,"i210":2,"i211":1,"i212":1,"i213":1,"i214":4,"i215":8,"i216":2,"i217":2,"i218":4,"i219":4};
+var tabs = {65535:["t0","All Classes"],1:["t1","Interface Summary"],2:["t2","Class Summary"],4:["t3","Enum Summary"],8:["t4","Exception Summary"],16:["t5","Error Summary"],32:["t6","Annotation Types Summary"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
+</div>
+<div class="allClassesContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Classes</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Interface Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Class Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Enum Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Exception Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Error Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Annotation Types Summary</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a>&lt;<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Abstract skeleton implementation of a <a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> that is backed
+ by a [key, multi-value] store represented as a <code>Map&lt;K, List&lt;V&gt;&gt;</code>.</div>
+</th>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></td>
+<th class="colLast" scope="row">
+<div class="block"><a href="javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> descendant which represents deployed annotated endpoint.</div>
+</th>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></td>
+<th class="colLast" scope="row">
+<div class="block">Java class for anonymous complex type.</div>
+</th>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></td>
+<th class="colLast" scope="row">
+<div class="block">Listens to application-level events that are interesting for monitoring.</div>
+</th>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a></td>
+<th class="colLast" scope="row">
+<div class="block">AuthConfig serves as a configuration of HTTP authentication.</div>
+</th>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">The AuthConfig.Builder is a class used for creating an instance of <a href="org/glassfish/tyrus/client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a> for purpose of HTTP
+ Authentication.</div>
+</th>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/auth/AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">AuthenticationException</a></td>
+<th class="colLast" scope="row">
+<div class="block">This exception is set as a cause of <a href="javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown when <a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...)
+ fails because of any of the following:
+ 
+ 
+ HTTP response status code 401 is received and "<a href="org/glassfish/tyrus/spi/UpgradeResponse.html#WWW_AUTHENTICATE">"WWW-Authenticate"</a>" header
+ contains scheme which is not handled by any <a href="org/glassfish/tyrus/client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> registered in <a href="org/glassfish/tyrus/client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>.</div>
+</th>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a></td>
+<th class="colLast" scope="row">
+<div class="block">Authenticator provides a way how to plug-in custom authentication provider.</div>
+</th>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></td>
+<th class="colLast" scope="row">
+<div class="block">Base WebSocket container.</div>
+</th>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">BaseContainer.ShutDownCondition</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/Beta.html" title="annotation in org.glassfish.tyrus.core">Beta</a></td>
+<th class="colLast" scope="row">
+<div class="block">Marker of a public Tyrus API that is still in "beta" non-final version.</div>
+</th>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/frame/BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a></td>
+<th class="colLast" scope="row">
+<div class="block">Binary frame representation.</div>
+</th>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/cluster/BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster">BroadcastListener</a></td>
+<th class="colLast" scope="row">
+<div class="block">Broadcast listener.</div>
+</th>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi">CdiComponentProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">Provides the instance for CDI class.</div>
+</th>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a></td>
+<th class="colLast" scope="row">
+<div class="block">Entry point for client implementation.</div>
+</th>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/ClientEndpoint.html" title="annotation in javax.websocket">ClientEndpoint</a></td>
+<th class="colLast" scope="row">
+<div class="block">The ClientEndpoint annotation a class level annotation is used to denote that a POJO
+ is a web socket client and can be deployed as such.</div>
+</th>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><a href="javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></td>
+<th class="colLast" scope="row">
+<div class="block">The ClientEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to client endpoints.</div>
+</th>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">The ClientEndpointConfig.Builder is a class used for creating
+ <a href="javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket"><code>ClientEndpointConfig</code></a> objects for the purposes of
+ deploying a client endpoint.</div>
+</th>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><a href="javax/websocket/ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a></td>
+<th class="colLast" scope="row">
+<div class="block">The Configurator class may be extended by developers who want to
+ provide custom configuration algorithms, such as intercepting the opening handshake, or
+ providing arbitrary methods and algorithms that can be accessed from each endpoint
+ instance configured with this configurator.</div>
+</th>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></td>
+<th class="colLast" scope="row">
+<div class="block">Facade for handling client operations from containers.</div>
+</th>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></td>
+<th class="colLast" scope="row">
+<div class="block">Upgrade process result.</div>
+</th>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></td>
+<th class="colLast" scope="row">
+<div class="block">Status of upgrade process.</div>
+</th>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates to container that handshake timeout was reached.</div>
+</th>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></td>
+<th class="colLast" scope="row">
+<div class="block">ClientManager implementation.</div>
+</th>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client">ClientManager.ReconnectHandler</a></td>
+<th class="colLast" scope="row">
+<div class="block">Reconnect handler.</div>
+</th>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></td>
+<th class="colLast" scope="row">
+<div class="block">Tyrus client configuration properties.</div>
+</th>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/frame/CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a></td>
+<th class="colLast" scope="row">
+<div class="block">Close frame representation.</div>
+</th>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a></td>
+<th class="colLast" scope="row">
+<div class="block">A class encapsulating the reason why a web socket has been closed, or why it is being asked to
+ close.</div>
+</th>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><a href="javax/websocket/CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></td>
+<th class="colLast" scope="row">
+<div class="block">A marker interface for the close codes.</div>
+</th>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></td>
+<th class="colLast" scope="row">
+<div class="block">An Enumeration of status codes for a web socket close that
+ are defined in the specification.</div>
+</th>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></td>
+<th class="colLast" scope="row">
+<div class="block">Enum containing standard CloseReasons defined in RFC 6455, see chapter
+ <a href="https://tools.ietf.org/html/rfc6455#section-7.4.1">7.4.1 Defined Status Codes</a>.</div>
+</th>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Cluster related context.</div>
+</th>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></td>
+<th class="colLast" scope="row">
+<div class="block">Adapter for <a href="javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> which implements lifecycle
+ methods.</div>
+</th>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a>&lt;<a href="org/glassfish/tyrus/core/coder/CoderWrapper.html" title="type parameter in CoderWrapper">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Wrapper of coders storing the coder coder class (and optionally coder instance), return type of the encode / decode
+ method and coder class.</div>
+</th>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a>&lt;<a href="org/glassfish/tyrus/spi/CompletionHandler.html" title="type parameter in CompletionHandler">E</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">A callback to notify about asynchronous I/O operations status updates.</div>
+</th>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">Provides an instance.</div>
+</th>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></td>
+<th class="colLast" scope="row">
+<div class="block">Provides an instance of component.</div>
+</th>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></td>
+<th class="colLast" scope="row">
+<div class="block">A logical websocket connection.</div>
+</th>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a></td>
+<th class="colLast" scope="row">
+<div class="block">Transport close listener that receives connection close
+ notifications from Tyrus.</div>
+</th>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/ContainerProvider.html" title="class in javax.websocket">ContainerProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">Provider class that allows the developer to get a reference to
+ the implementation of the WebSocketContainer.</div>
+</th>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/auth/Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a></td>
+<th class="colLast" scope="row">
+<div class="block">Credentials can be used when configuring authentication properties used during client handshake.</div>
+</th>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">A <code>Logger</code> wrapper that gives logging records a common formatting and temporarily stores log
+ records and postpones their logging until they can be provided with a session ID.</div>
+</th>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></td>
+<th class="colLast" scope="row">
+<div class="block">Tracing threshold - used for configuration granularity of information that will be sent in tracing headers.</div>
+</th>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></td>
+<th class="colLast" scope="row">
+<div class="block">Type of tracing - used for tracing configuration.</div>
+</th>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></td>
+<th class="colLast" scope="row">
+<div class="block">Type of the record - used to graphically distinguish these message types in the log.</div>
+</th>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A general exception that occurs when trying to decode a custom object from a text or binary message.</div>
+</th>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><a href="javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></td>
+<th class="colLast" scope="row">
+<div class="block">The Decoder interface holds member interfaces that define how a developer can provide
+ the web socket container a way web socket messages into developer defined custom objects.</div>
+</th>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">This interface defines how a custom object (of type T) is decoded from a web socket message in
+ the form of a byte buffer.</div>
+</th>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><a href="javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">This interface defines how a custom object is decoded from a web socket message in
+ the form of a binary stream.</div>
+</th>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">This interface defines how a custom object is decoded from a web socket message in
+ the form of a string.</div>
+</th>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><a href="javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">This interface defines how a custom object of type T is decoded from a web socket message in
+ the form of a character stream.</div>
+</th>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core">DefaultComponentProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">Provides instances using reflection.</div>
+</th>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><a href="javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></td>
+<th class="colLast" scope="row">
+<div class="block">Checked exception indicating some kind of failure either to publish
+ an endpoint on its server, or a failure to connect a client to its server.</div>
+</th>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></td>
+<th class="colLast" scope="row">
+<div class="block">Extended <a href="javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a> which adds distributed properties.</div>
+</th>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb">EjbComponentProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">Provides the instance for the supported EJB classes.</div>
+</th>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A general exception that occurs when trying to encode a custom object to a string or binary message.</div>
+</th>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><a href="javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></td>
+<th class="colLast" scope="row">
+<div class="block">The Encoder interface defines how developers can provide a way to convert
+ their custom objects into web socket messages.</div>
+</th>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;<a href="javax/websocket/Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a binary message.</div>
+</th>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><a href="javax/websocket/Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;<a href="javax/websocket/Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">This interface may be implemented by encoding algorithms
+ that want to write the encoded object to a binary stream.</div>
+</th>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;<a href="javax/websocket/Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a text message.</div>
+</th>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><a href="javax/websocket/Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;<a href="javax/websocket/Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">This interface may be implemented by encoding algorithms
+ that want to write the encoded object to a character stream.</div>
+</th>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a></td>
+<th class="colLast" scope="row">
+<div class="block">The Web Socket Endpoint represents an object that can handle websocket conversations.</div>
+</th>
+</tr>
+<tr id="i62" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></td>
+<th class="colLast" scope="row">
+<div class="block">Java class for anonymous complex type.</div>
+</th>
+</tr>
+<tr id="i63" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></td>
+<th class="colLast" scope="row">
+<div class="block">The endpoint configuration contains all the information needed during the handshake process
+ for this end point.</div>
+</th>
+</tr>
+<tr id="i64" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></td>
+<th class="colLast" scope="row">
+<div class="block">Listens to endpoint-level events that are interesting for monitoring.</div>
+</th>
+</tr>
+<tr id="i65" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a></td>
+<th class="colLast" scope="row">
+<div class="block">Used to collect deployment errors to present these to the user together.</div>
+</th>
+</tr>
+<tr id="i66" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i67" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension</a></td>
+<th class="colLast" scope="row">
+<div class="block">WebSocket <a href="javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a>.</div>
+</th>
+</tr>
+<tr id="i68" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Context present as a parameter in all <a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension"><code>ExtendedExtension</code></a> methods.</div>
+</th>
+</tr>
+<tr id="i69" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a></td>
+<th class="colLast" scope="row">
+<div class="block">A simple representation of a websocket extension as a name and map of extension parameters.</div>
+</th>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><a href="javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></td>
+<th class="colLast" scope="row">
+<div class="block">This member interface defines a single websocket extension parameter.</div>
+</th>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></td>
+<th class="colLast" scope="row">
+<div class="block">WebSocket frame representation.</div>
+</th>
+</tr>
+<tr id="i72" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">Frame builder.</div>
+</th>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientContainer</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i74" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientProperties</a></td>
+<th class="colLast" scope="row">
+<div class="block">Grizzly client properties.</div>
+</th>
+</tr>
+<tr id="i75" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientSocket</a></td>
+<th class="colLast" scope="row">
+<div class="block">Implementation of the WebSocket interface.</div>
+</th>
+</tr>
+<tr id="i76" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyContainerProvider</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i77" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server">GrizzlyServerContainer</a></td>
+<th class="colLast" scope="row">
+<div class="block">Grizzly implementation of <a href="org/glassfish/tyrus/spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi"><code>ServerContainerFactory</code></a> and <a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</div>
+</th>
+</tr>
+<tr id="i78" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyWriter</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i79" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></td>
+<th class="colLast" scope="row">
+<div class="block">Class responsible for performing and validating handshake.</div>
+</th>
+</tr>
+<tr id="i80" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></td>
+<th class="colLast" scope="row">
+<div class="block"><code>Exception</code>, which describes the error, occurred during the handshake phase.</div>
+</th>
+</tr>
+<tr id="i81" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></td>
+<th class="colLast" scope="row">
+<div class="block">The handshake request represents the web socket defined Http GET request 
+ for the opening handshake of a web socket session.</div>
+</th>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><a href="javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></td>
+<th class="colLast" scope="row">
+<div class="block">The handshake response represents the web socket-defined Http response
+ that is the response to the opening handshake request.</div>
+</th>
+</tr>
+<tr id="i83" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">InputStreamDecoder</a></td>
+<th class="colLast" scope="row">
+<div class="block">Built in <a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>InputStream</code>.</div>
+</th>
+</tr>
+<tr id="i84" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/collection/LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">LazyValue</a>&lt;<a href="org/glassfish/tyrus/core/collection/LazyValue.html" title="type parameter in LazyValue">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Lazily initialized <a href="org/glassfish/tyrus/core/collection/Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value</code></a>.</div>
+</th>
+</tr>
+<tr id="i85" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/l10n/Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></td>
+<th class="colLast" scope="row">
+<div class="block">Localizable message.</div>
+</th>
+</tr>
+<tr id="i86" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/l10n/LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessage</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i87" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessageFactory</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i88" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></td>
+<th class="colLast" scope="row">
+<div class="block">Defines string formatting method for each constant in the resource file</div>
+</th>
+</tr>
+<tr id="i89" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/l10n/Localizer.html" title="class in org.glassfish.tyrus.core.l10n">Localizer</a></td>
+<th class="colLast" scope="row">
+<div class="block">Localizes the <a href="org/glassfish/tyrus/core/l10n/Localizable.html" title="interface in org.glassfish.tyrus.core.l10n"><code>Localizable</code></a> into a message by using a configured <code>Locale</code>.</div>
+</th>
+</tr>
+<tr id="i90" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core">MaskingKeyGenerator</a></td>
+<th class="colLast" scope="row">
+<div class="block">Can be implemented to generate masking keys.</div>
+</th>
+</tr>
+<tr id="i91" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a></td>
+<th class="colLast" scope="row">
+<div class="block">Defines a match on an endpoint.</div>
+</th>
+</tr>
+<tr id="i92" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/MaxSessions.html" title="annotation in org.glassfish.tyrus.core">MaxSessions</a></td>
+<th class="colLast" scope="row">
+<div class="block">This annotation may be used to annotate server endpoints as a optional annotation
+ to <a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>.</div>
+</th>
+</tr>
+<tr id="i93" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/monitoring/MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></td>
+<th class="colLast" scope="row">
+<div class="block">Listens for message-level events that are interesting for monitoring.</div>
+</th>
+</tr>
+<tr id="i94" class="altColor">
+<td class="colFirst"><a href="javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></td>
+<th class="colLast" scope="row">
+<div class="block">Developers implement MessageHandlers in order to receive incoming messages
+ during a web socket conversation.</div>
+</th>
+</tr>
+<tr id="i95" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;<a href="javax/websocket/MessageHandler.Partial.html" title="type parameter in MessageHandler.Partial">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">This kind of handler is notified by the implementation as it becomes ready
+ to deliver parts of a whole message.</div>
+</th>
+</tr>
+<tr id="i96" class="altColor">
+<td class="colFirst"><a href="javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;<a href="javax/websocket/MessageHandler.Whole.html" title="type parameter in MessageHandler.Whole">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">This kind of handler is notified by the container on arrival of a complete message.</div>
+</th>
+</tr>
+<tr id="i97" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></td>
+<th class="colLast" scope="row">
+<div class="block">Manages registered <a href="javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a>s and checks whether the new ones may be registered.</div>
+</th>
+</tr>
+<tr id="i98" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a>&lt;<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">A hash table based implementation of <a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> interface.</div>
+</th>
+</tr>
+<tr id="i99" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">A map of key-values pairs.</div>
+</th>
+</tr>
+<tr id="i100" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></td>
+<th class="colLast" scope="row">
+<div class="block">An implementation of <a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> where keys and values are
+ instances of String.</div>
+</th>
+</tr>
+<tr id="i101" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></td>
+<th class="colLast" scope="row">
+<div class="block"><a href="javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for byte array.</div>
+</th>
+</tr>
+<tr id="i102" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></td>
+<th class="colLast" scope="row">
+<div class="block"><a href="javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for <code>ByteBuffer</code>.</div>
+</th>
+</tr>
+<tr id="i103" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i104" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html" title="class in org.glassfish.tyrus.core.wsadl.model">ObjectFactory</a></td>
+<th class="colLast" scope="row">
+<div class="block">This object contains factory methods for each 
+ Java content interface and Java element interface 
+ generated in the org.glassfish.tyrus.core.wsadl.model package.</div>
+</th>
+</tr>
+<tr id="i105" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/OnClose.html" title="annotation in javax.websocket">OnClose</a></td>
+<th class="colLast" scope="row">
+<div class="block">This method level annotation can be used to decorate a Java method that wishes 
+ to be called when a web socket session is closing.</div>
+</th>
+</tr>
+<tr id="i106" class="altColor">
+<td class="colFirst"><a href="javax/websocket/OnError.html" title="annotation in javax.websocket">OnError</a></td>
+<th class="colLast" scope="row">
+<div class="block">This method level annotation can be used to decorate a Java method that wishes to be called in order
+ to handle errors.</div>
+</th>
+</tr>
+<tr id="i107" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/OnMessage.html" title="annotation in javax.websocket">OnMessage</a></td>
+<th class="colLast" scope="row">
+<div class="block">This method level annotation can be used to make a Java method receive incoming web socket messages.</div>
+</th>
+</tr>
+<tr id="i108" class="altColor">
+<td class="colFirst"><a href="javax/websocket/OnOpen.html" title="annotation in javax.websocket">OnOpen</a></td>
+<th class="colLast" scope="row">
+<div class="block">This method level annotation can be used to decorate a Java method that wishes to be called when a new
+ web socket session is open.</div>
+</th>
+</tr>
+<tr id="i109" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></td>
+<th class="colLast" scope="row">
+<div class="block">Taken from Jersey 2.</div>
+</th>
+</tr>
+<tr id="i110" class="altColor">
+<td class="colFirst"><a href="javax/websocket/server/PathParam.html" title="annotation in javax.websocket.server">PathParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">This annotation may be used to annotate method parameters on server endpoints
+ where a URI-template has been used in the path-mapping of the <a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>
+ annotation.</div>
+</th>
+</tr>
+<tr id="i111" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></td>
+<th class="colLast" scope="row">
+<div class="block">A path pattern that is a regular expression generated from a URI path template.</div>
+</th>
+</tr>
+<tr id="i112" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></td>
+<th class="colLast" scope="row">
+<div class="block">The set of right hand path patterns that may be appended to a path pattern.</div>
+</th>
+</tr>
+<tr id="i113" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/internal/PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a></td>
+<th class="colLast" scope="row">
+<div class="block">Represents a URI path segment and any associated matrix parameters.</div>
+</th>
+</tr>
+<tr id="i114" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/internal/PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a></td>
+<th class="colLast" scope="row">
+<div class="block">A URI template for a URI path.</div>
+</th>
+</tr>
+<tr id="i115" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></td>
+<th class="colLast" scope="row">
+<div class="block">A pattern for matching a string against a regular expression and returning capturing group values for any capturing
+ groups present in the expression.</div>
+</th>
+</tr>
+<tr id="i116" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/frame/PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a></td>
+<th class="colLast" scope="row">
+<div class="block">Ping frame representation.</div>
+</th>
+</tr>
+<tr id="i117" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/frame/PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a></td>
+<th class="colLast" scope="row">
+<div class="block">Pong frame representation.</div>
+</th>
+</tr>
+<tr id="i118" class="altColor">
+<td class="colFirst"><a href="javax/websocket/PongMessage.html" title="interface in javax.websocket">PongMessage</a></td>
+<th class="colLast" scope="row">
+<div class="block">The PongMessage interface represents a web socket pong.</div>
+</th>
+</tr>
+<tr id="i119" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="type parameter in PrimitiveDecoders">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Collection of decoders for all primitive types.</div>
+</th>
+</tr>
+<tr id="i120" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i121" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i122" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i123" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i124" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i125" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i126" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i127" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i128" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ProtocolException.html" title="class in org.glassfish.tyrus.core">ProtocolException</a></td>
+<th class="colLast" scope="row">
+<div class="block">Represents issue with parsing or producing websocket frame.</div>
+</th>
+</tr>
+<tr id="i129" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></td>
+<th class="colLast" scope="row">
+<div class="block">Tyrus protocol handler.</div>
+</th>
+</tr>
+<tr id="i130" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">ReaderDecoder</a></td>
+<th class="colLast" scope="row">
+<div class="block">Built in <a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>Reader</code>.</div>
+</th>
+</tr>
+<tr id="i131" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/ReadHandler.html" title="interface in org.glassfish.tyrus.spi">ReadHandler</a></td>
+<th class="colLast" scope="row">
+<div class="block">Read handler provides a way for a transport to pass websocket
+ connection data to tyrus runtime.</div>
+</th>
+</tr>
+<tr id="i132" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/RedirectException.html" title="class in org.glassfish.tyrus.client">RedirectException</a></td>
+<th class="colLast" scope="row">
+<div class="block">This exception is set as a cause of <a href="javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown from <a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...)
+ when any of the Redirect HTTP response status codes (300, 301, 302, 303, 307, 308) is received as a handshake
+ response and:
+ 
+ 
+ <a href="org/glassfish/tyrus/client/ClientProperties.html#REDIRECT_ENABLED"><code>ClientProperties.REDIRECT_ENABLED</code></a> is not enabled
+ 
+ 
+ or the chained redirection count exceeds the value of <a href="org/glassfish/tyrus/client/ClientProperties.html#REDIRECT_THRESHOLD"><code>ClientProperties.REDIRECT_THRESHOLD</code></a>
+ 
+ 
+ or Infinite redirection loop is detected
+ 
+ 
+ or <a href="org/glassfish/tyrus/spi/UpgradeResponse.html#LOCATION">"Location"</a> response header is missing, empty or does not contain a valid <code>URI</code>.</div>
+</th>
+</tr>
+<tr id="i133" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></td>
+<th class="colLast" scope="row">
+<div class="block">Utility methods for Java reflection.</div>
+</th>
+</tr>
+<tr id="i134" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a></td>
+<th class="colLast" scope="row">
+<div class="block">A tuple consisting of a class and type of the class.</div>
+</th>
+</tr>
+<tr id="i135" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a></td>
+<th class="colLast" scope="row">
+<div class="block">A tuple consisting of a concrete class, declaring class that declares a generic interface type.</div>
+</th>
+</tr>
+<tr id="i136" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i137" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></td>
+<th class="colLast" scope="row">
+<div class="block">The RemoteEndpoint object is supplied by the container and represents the 
+ 'other end' or peer of the Web Socket conversation.</div>
+</th>
+</tr>
+<tr id="i138" class="altColor">
+<td class="colFirst"><a href="javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></td>
+<th class="colLast" scope="row">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages asynchronously.</div>
+</th>
+</tr>
+<tr id="i139" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></td>
+<th class="colLast" scope="row">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages synchronously.</div>
+</th>
+</tr>
+<tr id="i140" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></td>
+<th class="colLast" scope="row">
+<div class="block">Remote session represents session originating from another node.</div>
+</th>
+</tr>
+<tr id="i141" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i142" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Implementation of all possible request interfaces.</div>
+</th>
+</tr>
+<tr id="i143" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block"><a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a> builder.</div>
+</th>
+</tr>
+<tr id="i144" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core">RequestContext.Builder.IsUserInRoleDelegate</a></td>
+<th class="colLast" scope="row">
+<div class="block">Is user in role delegate.</div>
+</th>
+</tr>
+<tr id="i145" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/RetryAfterException.html" title="class in org.glassfish.tyrus.client">RetryAfterException</a></td>
+<th class="colLast" scope="row">
+<div class="block">This exception is set as a cause of <a href="javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown from <a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...) when HTTP response status code <code>503 - Service Unavailable</code> is
+ received.</div>
+</th>
+</tr>
+<tr id="i146" class="altColor">
+<td class="colFirst"><a href="javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a></td>
+<th class="colLast" scope="row">
+<div class="block">A simple callback object for asynchronous sending of web socket messages.</div>
+</th>
+</tr>
+<tr id="i147" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/SendResult.html" title="class in javax.websocket">SendResult</a></td>
+<th class="colLast" scope="row">
+<div class="block">The result of asynchronously sending a web socket message.</div>
+</th>
+</tr>
+<tr id="i148" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server">Server</a></td>
+<th class="colLast" scope="row">
+<div class="block">Implementation of the WebSocket Server.</div>
+</th>
+</tr>
+<tr id="i149" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a></td>
+<th class="colLast" scope="row">
+<div class="block">Developers include implementations of ServerApplicationConfig in an archive containing
+ websocket endpoints (WAR file, or JAR file within the WAR file) in order to specify the websocket 
+ endpoints within the archive the implementation must deploy.</div>
+</th>
+</tr>
+<tr id="i150" class="altColor">
+<td class="colFirst"><a href="javax/websocket/server/ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></td>
+<th class="colLast" scope="row">
+<div class="block">The ServerContainer is the specialized view of the WebSocketContainer available
+ in server-side deployments.</div>
+</th>
+</tr>
+<tr id="i151" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></td>
+<th class="colLast" scope="row">
+<div class="block">HTTP server abstraction.</div>
+</th>
+</tr>
+<tr id="i152" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">ServerContainerFactory</a></td>
+<th class="colLast" scope="row">
+<div class="block">Factory used to get instances of <a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</div>
+</th>
+</tr>
+<tr id="i153" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server">ServerEndpoint</a></td>
+<th class="colLast" scope="row">
+<div class="block">This class level annotation declares that the class it decorates
+ is a web socket endpoint that will be deployed and made available in the URI-space
+ of a web socket server.</div>
+</th>
+</tr>
+<tr id="i154" class="altColor">
+<td class="colFirst"><a href="javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></td>
+<th class="colLast" scope="row">
+<div class="block">The ServerEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to server endpoints.</div>
+</th>
+</tr>
+<tr id="i155" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">The ServerEndpointConfig.Builder is a class used for creating
+ <a href="javax/websocket/server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Builder</code></a> objects for the purposes of
+ deploying a server endpoint.</div>
+</th>
+</tr>
+<tr id="i156" class="altColor">
+<td class="colFirst"><a href="javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></td>
+<th class="colLast" scope="row">
+<div class="block">The ServerEndpointConfig.Configurator class may be extended by developers who want to
+ provide custom configuration algorithms, such as intercepting the opening handshake, or
+ providing arbitrary methods and algorithms that can be accessed from each endpoint
+ instance configured with this configurator.</div>
+</th>
+</tr>
+<tr id="i157" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></td>
+<th class="colLast" scope="row">
+<div class="block">Taken from Jersey 2.</div>
+</th>
+</tr>
+<tr id="i158" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;<a href="org/glassfish/tyrus/core/ServiceFinder.html" title="type parameter in ServiceFinder">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">A simple service-provider lookup mechanism.</div>
+</th>
+</tr>
+<tr id="i159" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.DefaultServiceIteratorProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">The default service iterator provider that looks up provider classes in
+ META-INF/services files.</div>
+</th>
+</tr>
+<tr id="i160" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">Supports iteration of provider instances or classes.</div>
+</th>
+</tr>
+<tr id="i161" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></td>
+<th class="colLast" scope="row">
+<div class="block">A Web Socket session represents a conversation between two web socket endpoints.</div>
+</th>
+</tr>
+<tr id="i162" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></td>
+<th class="colLast" scope="row">
+<div class="block">Session event listener.</div>
+</th>
+</tr>
+<tr id="i163" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/SessionException.html" title="class in javax.websocket">SessionException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A SessionException represents a general exception type reporting problems
+ occurring on a websocket session.</div>
+</th>
+</tr>
+<tr id="i164" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/cluster/SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster">SessionListener</a></td>
+<th class="colLast" scope="row">
+<div class="block">Session listener.</div>
+</th>
+</tr>
+<tr id="i165" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></td>
+<th class="colLast" scope="row">
+<div class="block">Utility class, which helps to configure ssl context.</div>
+</th>
+</tr>
+<tr id="i166" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></td>
+<th class="colLast" scope="row">
+<div class="block">SSLEngineConfigurator class from Grizzly project.</div>
+</th>
+</tr>
+<tr id="i167" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/StrictUtf8.html" title="class in org.glassfish.tyrus.core">StrictUtf8</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+<tr id="i168" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/StrictUtf8.Parser.html" title="class in org.glassfish.tyrus.core">StrictUtf8.Parser</a></td>
+<th class="colLast" scope="row">
+<div class="block">Surrogate parsing support.</div>
+</th>
+</tr>
+<tr id="i169" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor</a></td>
+<th class="colLast" scope="row">
+<div class="block">A class responsible for processing <a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client"><code>TaskProcessor.Task</code></a>.</div>
+</th>
+</tr>
+<tr id="i170" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Condition</a></td>
+<th class="colLast" scope="row">
+<div class="block">Condition used in <a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html#processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)"><code>TaskProcessor.processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)</code></a>.</div>
+</th>
+</tr>
+<tr id="i171" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Task</a></td>
+<th class="colLast" scope="row">
+<div class="block">Generic task representation.</div>
+</th>
+</tr>
+<tr id="i172" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></td>
+<th class="colLast" scope="row">
+<div class="block">Text frame representation.</div>
+</th>
+</tr>
+<tr id="i173" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></td>
+<th class="colLast" scope="row">
+<div class="block">Client thread pool configuration, which might be used to customize client thread pool.</div>
+</th>
+</tr>
+<tr id="i174" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/coder/ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder">ToStringEncoder</a></td>
+<th class="colLast" scope="row">
+<div class="block">Fall-back encoder - encoders any object to string using <code>Object.toString()</code> method.</div>
+</th>
+</tr>
+<tr id="i175" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">TyrusClientEngine</a></td>
+<th class="colLast" scope="row">
+<div class="block">Tyrus <a href="org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine</code></a> implementation.</div>
+</th>
+</tr>
+<tr id="i176" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html" title="interface in org.glassfish.tyrus.client">TyrusClientEngine.ClientHandshakeListener</a></td>
+<th class="colLast" scope="row">
+<div class="block">Called when response is received from the server.</div>
+</th>
+</tr>
+<tr id="i177" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></td>
+<th class="colLast" scope="row">
+<div class="block">Wraps the registered application class.</div>
+</th>
+</tr>
+<tr id="i178" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a></td>
+<th class="colLast" scope="row">
+<div class="block">Session listener.</div>
+</th>
+</tr>
+<tr id="i179" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></td>
+<th class="colLast" scope="row">
+<div class="block">Result of <a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html#onOpen(org.glassfish.tyrus.core.TyrusSession)"><code>TyrusEndpointWrapper.SessionListener.onOpen(TyrusSession)</code></a>.</div>
+</th>
+</tr>
+<tr id="i180" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></td>
+<th class="colLast" scope="row">
+<div class="block">WebSocket <a href="javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a> implementation.</div>
+</th>
+</tr>
+<tr id="i181" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core">TyrusExtension.TyrusParameter</a></td>
+<th class="colLast" scope="row">
+<div class="block">WebSocket <a href="javax/websocket/Extension.Parameter.html" title="interface in javax.websocket"><code>Extension.Parameter</code></a> implementation.</div>
+</th>
+</tr>
+<tr id="i182" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></td>
+<th class="colLast" scope="row">
+<div class="block">Frame representation used in Tyrus runtime.</div>
+</th>
+</tr>
+<tr id="i183" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></td>
+<th class="colLast" scope="row">
+<div class="block">An Enumeration of frame types.</div>
+</th>
+</tr>
+<tr id="i184" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusFuture.html" title="class in org.glassfish.tyrus.core">TyrusFuture</a>&lt;<a href="org/glassfish/tyrus/core/TyrusFuture.html" title="type parameter in TyrusFuture">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Simple <code>Future</code> implementation.</div>
+</th>
+</tr>
+<tr id="i185" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></td>
+<th class="colLast" scope="row">
+<div class="block"><code>HttpUpgradeHandler</code> and <code>ReadListener</code> implementation.</div>
+</th>
+</tr>
+<tr id="i186" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">TyrusRemoteEndpoint</a></td>
+<th class="colLast" scope="row">
+<div class="block">Wraps the <a href="javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket"><code>RemoteEndpoint</code></a> and represents the other side of the websocket connection.</div>
+</th>
+</tr>
+<tr id="i187" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server">TyrusServerConfiguration</a></td>
+<th class="colLast" scope="row">
+<div class="block">Container for either deployed <a href="javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><code>ServerApplicationConfig</code></a>s, if any, or deployed classes.</div>
+</th>
+</tr>
+<tr id="i188" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></td>
+<th class="colLast" scope="row">
+<div class="block">Server Container Implementation.</div>
+</th>
+</tr>
+<tr id="i189" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a></td>
+<th class="colLast" scope="row">
+<div class="block">Configuration <a href="javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> enhanced
+ to offer tyrus specific attributes like maxSessions.</div>
+</th>
+</tr>
+<tr id="i190" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">The TyrusServerEndpointConfig.Builder is a class used for creating
+ <a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core"><code>TyrusServerEndpointConfig.Builder</code></a> objects for the purposes of
+ deploying a server endpoint.</div>
+</th>
+</tr>
+<tr id="i191" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfigurator</a></td>
+<th class="colLast" scope="row">
+<div class="block">Tyrus' implementation of <a href="javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Configurator</code></a>.</div>
+</th>
+</tr>
+<tr id="i192" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html" title="class in org.glassfish.tyrus.servlet">TyrusServletContainerInitializer</a></td>
+<th class="colLast" scope="row">
+<div class="block">Registers a filter for upgrade handshake.</div>
+</th>
+</tr>
+<tr id="i193" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></td>
+<th class="colLast" scope="row">
+<div class="block">Implementation of the <a href="javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</th>
+</tr>
+<tr id="i194" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">TyrusUpgradeResponse</a></td>
+<th class="colLast" scope="row">
+<div class="block">HTTP response representation.</div>
+</th>
+</tr>
+<tr id="i195" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></td>
+<th class="colLast" scope="row">
+<div class="block">Tyrus representation of web socket connection.</div>
+</th>
+</tr>
+<tr id="i196" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></td>
+<th class="colLast" scope="row">
+<div class="block"><a href="org/glassfish/tyrus/spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi"><code>WebSocketEngine</code></a> implementation, which handles server-side handshake, validation and data processing.</div>
+</th>
+</tr>
+<tr id="i197" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></td>
+<th class="colLast" scope="row">
+<div class="block"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> builder.</div>
+</th>
+</tr>
+<tr id="i198" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></td>
+<th class="colLast" scope="row">
+<div class="block">Abstraction for a HTTP upgrade request.</div>
+</th>
+</tr>
+<tr id="i199" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></td>
+<th class="colLast" scope="row">
+<div class="block">Abstraction for a HTTP upgrade response.</div>
+</th>
+</tr>
+<tr id="i200" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></td>
+<th class="colLast" scope="row">
+<div class="block">Utility class for validating, encoding and decoding components
+ of a URI.</div>
+</th>
+</tr>
+<tr id="i201" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></td>
+<th class="colLast" scope="row">
+<div class="block">The URI component type.</div>
+</th>
+</tr>
+<tr id="i202" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></td>
+<th class="colLast" scope="row">
+<div class="block">A URI template.</div>
+</th>
+</tr>
+<tr id="i203" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></td>
+<th class="colLast" scope="row">
+<div class="block">A URI template parser that parses JAX-RS specific URI templates.</div>
+</th>
+</tr>
+<tr id="i204" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/Utf8DecodingException.html" title="class in org.glassfish.tyrus.core">Utf8DecodingException</a></td>
+<th class="colLast" scope="row">
+<div class="block">TODO</div>
+</th>
+</tr>
+<tr id="i205" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></td>
+<th class="colLast" scope="row">
+<div class="block">Utility methods shared among Tyrus modules.</div>
+</th>
+</tr>
+<tr id="i206" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a>&lt;<a href="org/glassfish/tyrus/core/Utils.Stringifier.html" title="type parameter in Utils.Stringifier">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Define to <code>String</code> conversion for various types.</div>
+</th>
+</tr>
+<tr id="i207" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/collection/Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;<a href="org/glassfish/tyrus/core/collection/Value.html" title="type parameter in Value">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">A generic value provider.</div>
+</th>
+</tr>
+<tr id="i208" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/collection/Values.html" title="class in org.glassfish.tyrus.core.collection">Values</a></td>
+<th class="colLast" scope="row">
+<div class="block">A collection of <a href="org/glassfish/tyrus/core/collection/Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>Value provider</code></a> factory &amp; utility methods.</div>
+</th>
+</tr>
+<tr id="i209" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/Version.html" title="enum in org.glassfish.tyrus.core">Version</a></td>
+<th class="colLast" scope="row">
+<div class="block">TODO</div>
+</th>
+</tr>
+<tr id="i210" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html" title="class in org.glassfish.tyrus.container.grizzly.server">WebSocketAddOn</a></td>
+<th class="colLast" scope="row">
+<div class="block">WebSockets <code>AddOn</code> for the <code>HttpServer</code>.</div>
+</th>
+</tr>
+<tr id="i211" class="rowColor">
+<td class="colFirst"><a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></td>
+<th class="colLast" scope="row">
+<div class="block">A WebSocketContainer is an implementation provided object that provides applications
+ a view on the container running it.</div>
+</th>
+</tr>
+<tr id="i212" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></td>
+<th class="colLast" scope="row">
+<div class="block">WebSocket engine is used for upgrading HTTP requests into websocket connections.</div>
+</th>
+</tr>
+<tr id="i213" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></td>
+<th class="colLast" scope="row">
+<div class="block">Upgrade info that includes status for HTTP request upgrading and connection creation details.</div>
+</th>
+</tr>
+<tr id="i214" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></td>
+<th class="colLast" scope="row">
+<div class="block">Upgrade Status for HTTP request upgrading.</div>
+</th>
+</tr>
+<tr id="i215" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/core/WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a></td>
+<th class="colLast" scope="row">
+<div class="block">WebSocketException can be thrown during runtime (after handshake).</div>
+</th>
+</tr>
+<tr id="i216" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></td>
+<th class="colLast" scope="row">
+<div class="block">Writer class that is used by tyrus runtime to pass outbound websocket data
+ for a connection to a transport.</div>
+</th>
+</tr>
+<tr id="i217" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a></td>
+<th class="colLast" scope="row">
+<div class="block">Additional data for the transport.</div>
+</th>
+</tr>
+<tr id="i218" class="altColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></td>
+<th class="colLast" scope="row">
+<div class="block">Possible WebSocket Message Types.</div>
+</th>
+</tr>
+<tr id="i219" class="rowColor">
+<td class="colFirst"><a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></td>
+<th class="colLast" scope="row">&nbsp;</th>
+</tr>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/allclasses.html b/apidocs/1.20/allclasses.html
new file mode 100644
index 00000000..919877bc
--- /dev/null
+++ b/apidocs/1.20/allclasses.html
@@ -0,0 +1,248 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>All Classes (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<main role="main" class="indexContainer">
+<ul>
+<li><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></li>
+<li><a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></li>
+<li><a href="org/glassfish/tyrus/core/wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></li>
+<li><a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><span class="interfaceName">ApplicationEventListener</span></a></li>
+<li><a href="org/glassfish/tyrus/client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a></li>
+<li><a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></li>
+<li><a href="org/glassfish/tyrus/client/auth/AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">AuthenticationException</a></li>
+<li><a href="org/glassfish/tyrus/client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a></li>
+<li><a href="org/glassfish/tyrus/core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></li>
+<li><a href="org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core"><span class="interfaceName">BaseContainer.ShutDownCondition</span></a></li>
+<li><a href="org/glassfish/tyrus/core/Beta.html" title="annotation in org.glassfish.tyrus.core">Beta</a></li>
+<li><a href="org/glassfish/tyrus/core/frame/BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a></li>
+<li><a href="org/glassfish/tyrus/core/cluster/BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster"><span class="interfaceName">BroadcastListener</span></a></li>
+<li><a href="org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi">CdiComponentProvider</a></li>
+<li><a href="org/glassfish/tyrus/spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi"><span class="interfaceName">ClientContainer</span></a></li>
+<li><a href="javax/websocket/ClientEndpoint.html" title="annotation in javax.websocket">ClientEndpoint</a></li>
+<li><a href="javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket"><span class="interfaceName">ClientEndpointConfig</span></a></li>
+<li><a href="javax/websocket/ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></li>
+<li><a href="javax/websocket/ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a></li>
+<li><a href="org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><span class="interfaceName">ClientEngine</span></a></li>
+<li><a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><span class="interfaceName">ClientEngine.ClientUpgradeInfo</span></a></li>
+<li><a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></li>
+<li><a href="org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><span class="interfaceName">ClientEngine.TimeoutHandler</span></a></li>
+<li><a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></li>
+<li><a href="org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client">ClientManager.ReconnectHandler</a></li>
+<li><a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></li>
+<li><a href="org/glassfish/tyrus/core/frame/CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a></li>
+<li><a href="javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a></li>
+<li><a href="javax/websocket/CloseReason.CloseCode.html" title="interface in javax.websocket"><span class="interfaceName">CloseReason.CloseCode</span></a></li>
+<li><a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></li>
+<li><a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></li>
+<li><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a></li>
+<li><a href="org/glassfish/tyrus/spi/CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a></li>
+<li><a href="org/glassfish/tyrus/core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></li>
+<li><a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></li>
+<li><a href="org/glassfish/tyrus/spi/Connection.html" title="interface in org.glassfish.tyrus.spi"><span class="interfaceName">Connection</span></a></li>
+<li><a href="org/glassfish/tyrus/spi/Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi"><span class="interfaceName">Connection.CloseListener</span></a></li>
+<li><a href="javax/websocket/ContainerProvider.html" title="class in javax.websocket">ContainerProvider</a></li>
+<li><a href="org/glassfish/tyrus/client/auth/Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a></li>
+<li><a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></li>
+<li><a href="org/glassfish/tyrus/core/DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></li>
+<li><a href="org/glassfish/tyrus/core/DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></li>
+<li><a href="org/glassfish/tyrus/core/DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></li>
+<li><a href="javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></li>
+<li><a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><span class="interfaceName">Decoder</span></a></li>
+<li><a href="javax/websocket/Decoder.Binary.html" title="interface in javax.websocket"><span class="interfaceName">Decoder.Binary</span></a></li>
+<li><a href="javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket"><span class="interfaceName">Decoder.BinaryStream</span></a></li>
+<li><a href="javax/websocket/Decoder.Text.html" title="interface in javax.websocket"><span class="interfaceName">Decoder.Text</span></a></li>
+<li><a href="javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket"><span class="interfaceName">Decoder.TextStream</span></a></li>
+<li><a href="org/glassfish/tyrus/core/DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core">DefaultComponentProvider</a></li>
+<li><a href="javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></li>
+<li><a href="org/glassfish/tyrus/core/cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster"><span class="interfaceName">DistributedSession</span></a></li>
+<li><a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb">EjbComponentProvider</a></li>
+<li><a href="javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></li>
+<li><a href="javax/websocket/Encoder.html" title="interface in javax.websocket"><span class="interfaceName">Encoder</span></a></li>
+<li><a href="javax/websocket/Encoder.Binary.html" title="interface in javax.websocket"><span class="interfaceName">Encoder.Binary</span></a></li>
+<li><a href="javax/websocket/Encoder.BinaryStream.html" title="interface in javax.websocket"><span class="interfaceName">Encoder.BinaryStream</span></a></li>
+<li><a href="javax/websocket/Encoder.Text.html" title="interface in javax.websocket"><span class="interfaceName">Encoder.Text</span></a></li>
+<li><a href="javax/websocket/Encoder.TextStream.html" title="interface in javax.websocket"><span class="interfaceName">Encoder.TextStream</span></a></li>
+<li><a href="javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a></li>
+<li><a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></li>
+<li><a href="javax/websocket/EndpointConfig.html" title="interface in javax.websocket"><span class="interfaceName">EndpointConfig</span></a></li>
+<li><a href="org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><span class="interfaceName">EndpointEventListener</span></a></li>
+<li><a href="org/glassfish/tyrus/core/ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a></li>
+<li><a href="org/glassfish/tyrus/core/ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a></li>
+<li><a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension"><span class="interfaceName">ExtendedExtension</span></a></li>
+<li><a href="org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension"><span class="interfaceName">ExtendedExtension.ExtensionContext</span></a></li>
+<li><a href="javax/websocket/Extension.html" title="interface in javax.websocket"><span class="interfaceName">Extension</span></a></li>
+<li><a href="javax/websocket/Extension.Parameter.html" title="interface in javax.websocket"><span class="interfaceName">Extension.Parameter</span></a></li>
+<li><a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></li>
+<li><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></li>
+<li><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientContainer</a></li>
+<li><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientProperties</a></li>
+<li><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientSocket</a></li>
+<li><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyContainerProvider</a></li>
+<li><a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server">GrizzlyServerContainer</a></li>
+<li><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyWriter</a></li>
+<li><a href="org/glassfish/tyrus/core/Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></li>
+<li><a href="org/glassfish/tyrus/core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></li>
+<li><a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server"><span class="interfaceName">HandshakeRequest</span></a></li>
+<li><a href="javax/websocket/HandshakeResponse.html" title="interface in javax.websocket"><span class="interfaceName">HandshakeResponse</span></a></li>
+<li><a href="org/glassfish/tyrus/core/coder/InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">InputStreamDecoder</a></li>
+<li><a href="org/glassfish/tyrus/core/collection/LazyValue.html" title="interface in org.glassfish.tyrus.core.collection"><span class="interfaceName">LazyValue</span></a></li>
+<li><a href="org/glassfish/tyrus/core/l10n/Localizable.html" title="interface in org.glassfish.tyrus.core.l10n"><span class="interfaceName">Localizable</span></a></li>
+<li><a href="org/glassfish/tyrus/core/l10n/LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessage</a></li>
+<li><a href="org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessageFactory</a></li>
+<li><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></li>
+<li><a href="org/glassfish/tyrus/core/l10n/Localizer.html" title="class in org.glassfish.tyrus.core.l10n">Localizer</a></li>
+<li><a href="org/glassfish/tyrus/core/MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core"><span class="interfaceName">MaskingKeyGenerator</span></a></li>
+<li><a href="org/glassfish/tyrus/core/uri/Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a></li>
+<li><a href="org/glassfish/tyrus/core/MaxSessions.html" title="annotation in org.glassfish.tyrus.core">MaxSessions</a></li>
+<li><a href="org/glassfish/tyrus/core/monitoring/MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><span class="interfaceName">MessageEventListener</span></a></li>
+<li><a href="javax/websocket/MessageHandler.html" title="interface in javax.websocket"><span class="interfaceName">MessageHandler</span></a></li>
+<li><a href="javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket"><span class="interfaceName">MessageHandler.Partial</span></a></li>
+<li><a href="javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket"><span class="interfaceName">MessageHandler.Whole</span></a></li>
+<li><a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></li>
+<li><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a></li>
+<li><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><span class="interfaceName">MultivaluedMap</span></a></li>
+<li><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></li>
+<li><a href="org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html" title="class in org.glassfish.tyrus.core.wsadl.model">ObjectFactory</a></li>
+<li><a href="javax/websocket/OnClose.html" title="annotation in javax.websocket">OnClose</a></li>
+<li><a href="javax/websocket/OnError.html" title="annotation in javax.websocket">OnError</a></li>
+<li><a href="javax/websocket/OnMessage.html" title="annotation in javax.websocket">OnMessage</a></li>
+<li><a href="javax/websocket/OnOpen.html" title="annotation in javax.websocket">OnOpen</a></li>
+<li><a href="org/glassfish/tyrus/core/OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></li>
+<li><a href="javax/websocket/server/PathParam.html" title="annotation in javax.websocket.server">PathParam</a></li>
+<li><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></li>
+<li><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></li>
+<li><a href="org/glassfish/tyrus/core/uri/internal/PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal"><span class="interfaceName">PathSegment</span></a></li>
+<li><a href="org/glassfish/tyrus/core/uri/internal/PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a></li>
+<li><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></li>
+<li><a href="org/glassfish/tyrus/core/frame/PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a></li>
+<li><a href="org/glassfish/tyrus/core/frame/PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a></li>
+<li><a href="javax/websocket/PongMessage.html" title="interface in javax.websocket"><span class="interfaceName">PongMessage</span></a></li>
+<li><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></li>
+<li><a href="org/glassfish/tyrus/core/ProtocolException.html" title="class in org.glassfish.tyrus.core">ProtocolException</a></li>
+<li><a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">ReaderDecoder</a></li>
+<li><a href="org/glassfish/tyrus/spi/ReadHandler.html" title="interface in org.glassfish.tyrus.spi"><span class="interfaceName">ReadHandler</span></a></li>
+<li><a href="org/glassfish/tyrus/client/RedirectException.html" title="class in org.glassfish.tyrus.client">RedirectException</a></li>
+<li><a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></li>
+<li><a href="org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a></li>
+<li><a href="org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a></li>
+<li><a href="org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a></li>
+<li><a href="javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket"><span class="interfaceName">RemoteEndpoint</span></a></li>
+<li><a href="javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket"><span class="interfaceName">RemoteEndpoint.Async</span></a></li>
+<li><a href="javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket"><span class="interfaceName">RemoteEndpoint.Basic</span></a></li>
+<li><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></li>
+<li><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></li>
+<li><a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></li>
+<li><a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></li>
+<li><a href="org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core"><span class="interfaceName">RequestContext.Builder.IsUserInRoleDelegate</span></a></li>
+<li><a href="org/glassfish/tyrus/client/RetryAfterException.html" title="class in org.glassfish.tyrus.client">RetryAfterException</a></li>
+<li><a href="javax/websocket/SendHandler.html" title="interface in javax.websocket"><span class="interfaceName">SendHandler</span></a></li>
+<li><a href="javax/websocket/SendResult.html" title="class in javax.websocket">SendResult</a></li>
+<li><a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server">Server</a></li>
+<li><a href="javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><span class="interfaceName">ServerApplicationConfig</span></a></li>
+<li><a href="javax/websocket/server/ServerContainer.html" title="interface in javax.websocket.server"><span class="interfaceName">ServerContainer</span></a></li>
+<li><a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><span class="interfaceName">ServerContainer</span></a></li>
+<li><a href="org/glassfish/tyrus/spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">ServerContainerFactory</a></li>
+<li><a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server">ServerEndpoint</a></li>
+<li><a href="javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><span class="interfaceName">ServerEndpointConfig</span></a></li>
+<li><a href="javax/websocket/server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></li>
+<li><a href="javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></li>
+<li><a href="org/glassfish/tyrus/core/ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></li>
+<li><a href="org/glassfish/tyrus/core/ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a></li>
+<li><a href="org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.DefaultServiceIteratorProvider</a></li>
+<li><a href="org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a></li>
+<li><a href="javax/websocket/Session.html" title="interface in javax.websocket"><span class="interfaceName">Session</span></a></li>
+<li><a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></li>
+<li><a href="javax/websocket/SessionException.html" title="class in javax.websocket">SessionException</a></li>
+<li><a href="org/glassfish/tyrus/core/cluster/SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster"><span class="interfaceName">SessionListener</span></a></li>
+<li><a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></li>
+<li><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></li>
+<li><a href="org/glassfish/tyrus/core/StrictUtf8.html" title="class in org.glassfish.tyrus.core">StrictUtf8</a></li>
+<li><a href="org/glassfish/tyrus/core/StrictUtf8.Parser.html" title="class in org.glassfish.tyrus.core">StrictUtf8.Parser</a></li>
+<li><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor</a></li>
+<li><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client"><span class="interfaceName">TaskProcessor.Condition</span></a></li>
+<li><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Task</a></li>
+<li><a href="org/glassfish/tyrus/core/frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></li>
+<li><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></li>
+<li><a href="org/glassfish/tyrus/core/coder/ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder">ToStringEncoder</a></li>
+<li><a href="org/glassfish/tyrus/client/TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">TyrusClientEngine</a></li>
+<li><a href="org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html" title="interface in org.glassfish.tyrus.client"><span class="interfaceName">TyrusClientEngine.ClientHandshakeListener</span></a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core">TyrusExtension.TyrusParameter</a></li>
+<li><a href="org/glassfish/tyrus/core/frame/TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></li>
+<li><a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusFuture.html" title="class in org.glassfish.tyrus.core">TyrusFuture</a></li>
+<li><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">TyrusRemoteEndpoint</a></li>
+<li><a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server">TyrusServerConfiguration</a></li>
+<li><a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core"><span class="interfaceName">TyrusServerEndpointConfig</span></a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfigurator</a></li>
+<li><a href="org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html" title="class in org.glassfish.tyrus.servlet">TyrusServletContainerInitializer</a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">TyrusUpgradeResponse</a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></li>
+<li><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></li>
+<li><a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></li>
+<li><a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></li>
+<li><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></li>
+<li><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></li>
+<li><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></li>
+<li><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></li>
+<li><a href="org/glassfish/tyrus/core/Utf8DecodingException.html" title="class in org.glassfish.tyrus.core">Utf8DecodingException</a></li>
+<li><a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></li>
+<li><a href="org/glassfish/tyrus/core/Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a></li>
+<li><a href="org/glassfish/tyrus/core/collection/Value.html" title="interface in org.glassfish.tyrus.core.collection"><span class="interfaceName">Value</span></a></li>
+<li><a href="org/glassfish/tyrus/core/collection/Values.html" title="class in org.glassfish.tyrus.core.collection">Values</a></li>
+<li><a href="org/glassfish/tyrus/core/Version.html" title="enum in org.glassfish.tyrus.core">Version</a></li>
+<li><a href="org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html" title="class in org.glassfish.tyrus.container.grizzly.server">WebSocketAddOn</a></li>
+<li><a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><span class="interfaceName">WebSocketContainer</span></a></li>
+<li><a href="org/glassfish/tyrus/spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi"><span class="interfaceName">WebSocketEngine</span></a></li>
+<li><a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><span class="interfaceName">WebSocketEngine.UpgradeInfo</span></a></li>
+<li><a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></li>
+<li><a href="org/glassfish/tyrus/core/WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a></li>
+<li><a href="org/glassfish/tyrus/spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></li>
+<li><a href="org/glassfish/tyrus/spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a></li>
+<li><a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></li>
+<li><a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></li>
+</ul>
+</main>
+</body>
+</html>
diff --git a/apidocs/1.20/allpackages-index.html b/apidocs/1.20/allpackages-index.html
new file mode 100644
index 00000000..cf37fcb7
--- /dev/null
+++ b/apidocs/1.20/allpackages-index.html
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>All Packages (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="All Packages (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
+</div>
+<div class="allPackagesContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="packagesSummary">
+<caption><span>Package Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="javax/websocket/package-summary.html">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="javax/websocket/server/package-summary.html">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/client/auth/package-summary.html">org.glassfish.tyrus.client.auth</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/container/grizzly/server/package-summary.html">org.glassfish.tyrus.container.grizzly.server</a></th>
+<td class="colLast">
+<div class="block">Grizzly Server container.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/collection/package-summary.html">org.glassfish.tyrus.core.collection</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/extension/package-summary.html">org.glassfish.tyrus.core.extension</a></th>
+<td class="colLast">
+<div class="block">WebSocket Extension support.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representations.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/l10n/package-summary.html">org.glassfish.tyrus.core.l10n</a></th>
+<td class="colLast">
+<div class="block">Common internal localization utility classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/monitoring/package-summary.html">org.glassfish.tyrus.core.monitoring</a></th>
+<td class="colLast">
+<div class="block">Monitoring interfaces.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/uri/package-summary.html">org.glassfish.tyrus.core.uri</a></th>
+<td class="colLast">
+<div class="block">URI matching.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/wsadl/model/package-summary.html">org.glassfish.tyrus.core.wsadl.model</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/gf/cdi/package-summary.html">org.glassfish.tyrus.gf.cdi</a></th>
+<td class="colLast">
+<div class="block">Tyrus CDI integration with Glassfish (and possibly other compatible containers).</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/gf/ejb/package-summary.html">org.glassfish.tyrus.gf.ejb</a></th>
+<td class="colLast">
+<div class="block">Tyrus EJB integration with Glassfish (and possibly other compatible containers).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/servlet/package-summary.html">org.glassfish.tyrus.servlet</a></th>
+<td class="colLast">
+<div class="block">Servlet 3.1 integration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/constant-values.html b/apidocs/1.20/constant-values.html
new file mode 100644
index 00000000..979753ec
--- /dev/null
+++ b/apidocs/1.20/constant-values.html
@@ -0,0 +1,1063 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Constant Field Values (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Constant Field Values (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<section role="region">
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#javax.websocket">javax.websocket.*</a></li>
+<li><a href="#org.glassfish">org.glassfish.*</a></li>
+</ul>
+</section>
+</div>
+<div class="constantValuesContainer"><a id="javax.websocket">
+<!--   -->
+</a>
+<section role="region">
+<h2 title="javax.websocket">javax.websocket.*</h2>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>javax.websocket.<a href="javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.websocket.HandshakeResponse.SEC_WEBSOCKET_ACCEPT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/websocket/HandshakeResponse.html#SEC_WEBSOCKET_ACCEPT">SEC_WEBSOCKET_ACCEPT</a></code></th>
+<td class="colLast"><code>"Sec-WebSocket-Accept"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.websocket.server.HandshakeRequest.SEC_WEBSOCKET_EXTENSIONS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_EXTENSIONS">SEC_WEBSOCKET_EXTENSIONS</a></code></th>
+<td class="colLast"><code>"Sec-WebSocket-Extensions"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.websocket.server.HandshakeRequest.SEC_WEBSOCKET_KEY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_KEY">SEC_WEBSOCKET_KEY</a></code></th>
+<td class="colLast"><code>"Sec-WebSocket-Key"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.websocket.server.HandshakeRequest.SEC_WEBSOCKET_PROTOCOL">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_PROTOCOL">SEC_WEBSOCKET_PROTOCOL</a></code></th>
+<td class="colLast"><code>"Sec-WebSocket-Protocol"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.websocket.server.HandshakeRequest.SEC_WEBSOCKET_VERSION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_VERSION">SEC_WEBSOCKET_VERSION</a></code></th>
+<td class="colLast"><code>"Sec-WebSocket-Version"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</section>
+<a id="org.glassfish">
+<!--   -->
+</a>
+<section role="region">
+<h2 title="org.glassfish">org.glassfish.*</h2>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.HANDSHAKE_TIMEOUT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#HANDSHAKE_TIMEOUT">HANDSHAKE_TIMEOUT</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.ClientManager.ContainerTimeout"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.PROXY_HEADERS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#PROXY_HEADERS">PROXY_HEADERS</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.proxy.headers"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.PROXY_URI">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#PROXY_URI">PROXY_URI</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.proxy"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.RECONNECT_HANDLER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#RECONNECT_HANDLER">RECONNECT_HANDLER</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.ClientManager.ReconnectHandler"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.SSL_ENGINE_CONFIGURATOR">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#SSL_ENGINE_CONFIGURATOR">SSL_ENGINE_CONFIGURATOR</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.sslEngineConfigurator"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.WLS_HOSTNAME_VERIFIER_CLASS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_HOSTNAME_VERIFIER_CLASS">WLS_HOSTNAME_VERIFIER_CLASS</a></code></th>
+<td class="colLast"><code>"weblogic.security.SSL.HostnameVerifier"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.WLS_IGNORE_HOSTNAME_VERIFICATION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_IGNORE_HOSTNAME_VERIFICATION">WLS_IGNORE_HOSTNAME_VERIFICATION</a></code></th>
+<td class="colLast"><code>"weblogic.security.SSL.ignoreHostnameVerification"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.WLS_MAX_THREADS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_MAX_THREADS">WLS_MAX_THREADS</a></code></th>
+<td class="colLast"><code>"weblogic.websocket.client.max-aio-threads"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.WLS_PROXY_HOST">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_PROXY_HOST">WLS_PROXY_HOST</a></code></th>
+<td class="colLast"><code>"weblogic.websocket.client.PROXY_HOST"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.WLS_PROXY_PASSWORD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_PROXY_PASSWORD">WLS_PROXY_PASSWORD</a></code></th>
+<td class="colLast"><code>"weblogic.websocket.client.PROXY_PASSWORD"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.WLS_PROXY_PORT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_PROXY_PORT">WLS_PROXY_PORT</a></code></th>
+<td class="colLast"><code>"weblogic.websocket.client.PROXY_PORT"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.WLS_PROXY_USERNAME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_PROXY_USERNAME">WLS_PROXY_USERNAME</a></code></th>
+<td class="colLast"><code>"weblogic.websocket.client.PROXY_USERNAME"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.WLS_SSL_PROTOCOLS_PROPERTY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_SSL_PROTOCOLS_PROPERTY">WLS_SSL_PROTOCOLS_PROPERTY</a></code></th>
+<td class="colLast"><code>"weblogic.websocket.client.SSL_PROTOCOLS"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.WLS_SSL_TRUSTSTORE_PROPERTY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_SSL_TRUSTSTORE_PROPERTY">WLS_SSL_TRUSTSTORE_PROPERTY</a></code></th>
+<td class="colLast"><code>"weblogic.websocket.client.SSL_TRUSTSTORE"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientManager.WLS_SSL_TRUSTSTORE_PWD_PROPERTY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_SSL_TRUSTSTORE_PWD_PROPERTY">WLS_SSL_TRUSTSTORE_PWD_PROPERTY</a></code></th>
+<td class="colLast"><code>"weblogic.websocket.client.SSL_TRUSTSTORE_PWD"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.AUTH_CONFIG">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#AUTH_CONFIG">AUTH_CONFIG</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.http.auth.AuthConfig"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.CREDENTIALS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#CREDENTIALS">CREDENTIALS</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.http.auth.Credentials"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.HANDSHAKE_TIMEOUT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#HANDSHAKE_TIMEOUT">HANDSHAKE_TIMEOUT</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.ClientManager.ContainerTimeout"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.INCOMING_BUFFER_SIZE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#INCOMING_BUFFER_SIZE">INCOMING_BUFFER_SIZE</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.incomingBufferSize"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.LOG_HTTP_UPGRADE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#LOG_HTTP_UPGRADE">LOG_HTTP_UPGRADE</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.http.logUpgrade"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.MASKING_KEY_GENERATOR">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#MASKING_KEY_GENERATOR">MASKING_KEY_GENERATOR</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.maskingKeyGenerator"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.PROXY_HEADERS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#PROXY_HEADERS">PROXY_HEADERS</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.proxy.headers"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.PROXY_URI">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#PROXY_URI">PROXY_URI</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.proxy"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.RECONNECT_HANDLER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#RECONNECT_HANDLER">RECONNECT_HANDLER</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.ClientManager.ReconnectHandler"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.REDIRECT_ENABLED">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#REDIRECT_ENABLED">REDIRECT_ENABLED</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.http.redirect"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.REDIRECT_THRESHOLD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#REDIRECT_THRESHOLD">REDIRECT_THRESHOLD</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.http.redirect.threshold"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.RETRY_AFTER_SERVICE_UNAVAILABLE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#RETRY_AFTER_SERVICE_UNAVAILABLE">RETRY_AFTER_SERVICE_UNAVAILABLE</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.http.retryAfter"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.SHARED_CONTAINER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#SHARED_CONTAINER">SHARED_CONTAINER</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.sharedContainer"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.SHARED_CONTAINER_IDLE_TIMEOUT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#SHARED_CONTAINER_IDLE_TIMEOUT">SHARED_CONTAINER_IDLE_TIMEOUT</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.sharedContainerIdleTimeout"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.SOCKET_BINDING">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#SOCKET_BINDING">SOCKET_BINDING</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.socketBinding"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.SSL_ENGINE_CONFIGURATOR">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#SSL_ENGINE_CONFIGURATOR">SSL_ENGINE_CONFIGURATOR</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.sslEngineConfigurator"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.ClientProperties.WORKER_THREAD_POOL_CONFIG">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/ClientProperties.html#WORKER_THREAD_POOL_CONFIG">WORKER_THREAD_POOL_CONFIG</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.workerThreadPoolConfig"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.SslContextConfigurator.KEY_FACTORY_MANAGER_ALGORITHM">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#KEY_FACTORY_MANAGER_ALGORITHM">KEY_FACTORY_MANAGER_ALGORITHM</a></code></th>
+<td class="colLast"><code>"ssl.KeyManagerFactory.algorithm"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.SslContextConfigurator.KEY_STORE_FILE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#KEY_STORE_FILE">KEY_STORE_FILE</a></code></th>
+<td class="colLast"><code>"javax.net.ssl.keyStore"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.SslContextConfigurator.KEY_STORE_PASSWORD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#KEY_STORE_PASSWORD">KEY_STORE_PASSWORD</a></code></th>
+<td class="colLast"><code>"javax.net.ssl.keyStorePassword"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.SslContextConfigurator.KEY_STORE_PROVIDER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#KEY_STORE_PROVIDER">KEY_STORE_PROVIDER</a></code></th>
+<td class="colLast"><code>"javax.net.ssl.keyStoreProvider"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.SslContextConfigurator.KEY_STORE_TYPE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#KEY_STORE_TYPE">KEY_STORE_TYPE</a></code></th>
+<td class="colLast"><code>"javax.net.ssl.keyStoreType"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.SslContextConfigurator.TRUST_FACTORY_MANAGER_ALGORITHM">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#TRUST_FACTORY_MANAGER_ALGORITHM">TRUST_FACTORY_MANAGER_ALGORITHM</a></code></th>
+<td class="colLast"><code>"ssl.TrustManagerFactory.algorithm"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.SslContextConfigurator.TRUST_STORE_FILE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#TRUST_STORE_FILE">TRUST_STORE_FILE</a></code></th>
+<td class="colLast"><code>"javax.net.ssl.trustStore"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.SslContextConfigurator.TRUST_STORE_PASSWORD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#TRUST_STORE_PASSWORD">TRUST_STORE_PASSWORD</a></code></th>
+<td class="colLast"><code>"javax.net.ssl.trustStorePassword"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.SslContextConfigurator.TRUST_STORE_PROVIDER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#TRUST_STORE_PROVIDER">TRUST_STORE_PROVIDER</a></code></th>
+<td class="colLast"><code>"javax.net.ssl.trustStoreProvider"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.SslContextConfigurator.TRUST_STORE_TYPE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#TRUST_STORE_TYPE">TRUST_STORE_TYPE</a></code></th>
+<td class="colLast"><code>"javax.net.ssl.trustStoreType"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">TyrusClientEngine</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.client.TyrusClientEngine.DEFAULT_INCOMING_BUFFER_SIZE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/client/TyrusClientEngine.html#DEFAULT_INCOMING_BUFFER_SIZE">DEFAULT_INCOMING_BUFFER_SIZE</a></code></th>
+<td class="colLast"><code>4194315</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer.SHARED_CONTAINER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html#SHARED_CONTAINER">SHARED_CONTAINER</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.sharedContainer"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer.SHARED_CONTAINER_IDLE_TIMEOUT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html#SHARED_CONTAINER_IDLE_TIMEOUT">SHARED_CONTAINER_IDLE_TIMEOUT</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.sharedContainerIdleTimeout"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer.SSL_ENGINE_CONFIGURATOR">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html#SSL_ENGINE_CONFIGURATOR">SSL_ENGINE_CONFIGURATOR</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.sslEngineConfigurator"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientProperties</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties.SELECTOR_THREAD_POOL_CONFIG">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html#SELECTOR_THREAD_POOL_CONFIG">SELECTOR_THREAD_POOL_CONFIG</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.grizzly.selectorThreadPoolConfig"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties.WORKER_THREAD_POOL_CONFIG">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html#WORKER_THREAD_POOL_CONFIG">WORKER_THREAD_POOL_CONFIG</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.grizzly.workerThreadPoolConfig"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.PROXY_HEADERS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#PROXY_HEADERS">PROXY_HEADERS</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.proxy.headers"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.PROXY_URI">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#PROXY_URI">PROXY_URI</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.proxy"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.SELECTOR_THREAD_POOL_CONFIG">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#SELECTOR_THREAD_POOL_CONFIG">SELECTOR_THREAD_POOL_CONFIG</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.grizzly.selectorThreadPoolConfig"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.WORKER_THREAD_POOL_CONFIG">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#WORKER_THREAD_POOL_CONFIG">WORKER_THREAD_POOL_CONFIG</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.client.grizzly.workerThreadPoolConfig"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.container.grizzly.server.<a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server">GrizzlyServerContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer.SELECTOR_THREAD_POOL_CONFIG">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html#SELECTOR_THREAD_POOL_CONFIG">SELECTOR_THREAD_POOL_CONFIG</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.container.grizzly.server.selectorThreadPoolConfig"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer.WORKER_THREAD_POOL_CONFIG">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html#WORKER_THREAD_POOL_CONFIG">WORKER_THREAD_POOL_CONFIG</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.container.grizzly.server.workerThreadPoolConfig"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.core.ProtocolHandler.MASK_SIZE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/core/ProtocolHandler.html#MASK_SIZE">MASK_SIZE</a></code></th>
+<td class="colLast"><code>4</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.core.TyrusWebSocketEngine.INCOMING_BUFFER_SIZE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#INCOMING_BUFFER_SIZE">INCOMING_BUFFER_SIZE</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.incomingBufferSize"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.core.TyrusWebSocketEngine.MAX_SESSIONS_PER_APP">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#MAX_SESSIONS_PER_APP">MAX_SESSIONS_PER_APP</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.maxSessionsPerApp"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.core.TyrusWebSocketEngine.MAX_SESSIONS_PER_REMOTE_ADDR">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#MAX_SESSIONS_PER_REMOTE_ADDR">MAX_SESSIONS_PER_REMOTE_ADDR</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.maxSessionsPerRemoteAddr"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.core.TyrusWebSocketEngine.PARALLEL_BROADCAST_ENABLED">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#PARALLEL_BROADCAST_ENABLED">PARALLEL_BROADCAST_ENABLED</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.server.parallelBroadcastEnabled"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.core.TyrusWebSocketEngine.TRACING_THRESHOLD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#TRACING_THRESHOLD">TRACING_THRESHOLD</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.server.tracingThreshold"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.core.TyrusWebSocketEngine.TRACING_TYPE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#TRACING_TYPE">TRACING_TYPE</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.server.tracingType"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.core.TyrusWebSocketEngine.WSADL_SUPPORT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#WSADL_SUPPORT">WSADL_SUPPORT</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.server.wsadl"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.core.cluster.ClusterContext.CLUSTER_CONTEXT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#CLUSTER_CONTEXT">CLUSTER_CONTEXT</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.core.cluster.ClusterContext"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.core.l10n.Localizable.NOT_LOCALIZABLE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/core/l10n/Localizable.html#NOT_LOCALIZABLE">NOT_LOCALIZABLE</a></code></th>
+<td class="colLast"><code>"\u0000"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.core.monitoring.ApplicationEventListener.APPLICATION_EVENT_LISTENER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html#APPLICATION_EVENT_LISTENER">APPLICATION_EVENT_LISTENER</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.core.monitoring.ApplicationEventListener"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server">Server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.server.Server.STATIC_CONTENT_ROOT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/server/Server.html#STATIC_CONTENT_ROOT">STATIC_CONTENT_ROOT</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.server.staticContentRoot"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler.FRAME_BUFFER_SIZE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html#FRAME_BUFFER_SIZE">FRAME_BUFFER_SIZE</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.servlet.incoming-buffer-size"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.ClientContainer.INCOMING_BUFFER_SIZE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/ClientContainer.html#INCOMING_BUFFER_SIZE">INCOMING_BUFFER_SIZE</a></code></th>
+<td class="colLast"><code>"org.glassfish.tyrus.incomingBufferSize"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.ClientContainer.WLS_INCOMING_BUFFER_SIZE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/ClientContainer.html#WLS_INCOMING_BUFFER_SIZE">WLS_INCOMING_BUFFER_SIZE</a></code></th>
+<td class="colLast"><code>"weblogic.websocket.tyrus.incoming-buffer-size"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeRequest.AUTHORIZATION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#AUTHORIZATION">AUTHORIZATION</a></code></th>
+<td class="colLast"><code>"Authorization"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeRequest.CLUSTER_CONNECTION_ID_HEADER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#CLUSTER_CONNECTION_ID_HEADER">CLUSTER_CONNECTION_ID_HEADER</a></code></th>
+<td class="colLast"><code>"tyrus-cluster-connection-id"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeRequest.CONNECTION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#CONNECTION">CONNECTION</a></code></th>
+<td class="colLast"><code>"Connection"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeRequest.ENABLE_TRACING_HEADER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#ENABLE_TRACING_HEADER">ENABLE_TRACING_HEADER</a></code></th>
+<td class="colLast"><code>"X-Tyrus-Tracing-Accept"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeRequest.HOST">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#HOST">HOST</a></code></th>
+<td class="colLast"><code>"Host"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeRequest.ORIGIN_HEADER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#ORIGIN_HEADER">ORIGIN_HEADER</a></code></th>
+<td class="colLast"><code>"Origin"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeRequest.RESPONSE_CODE_MESSAGE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#RESPONSE_CODE_MESSAGE">RESPONSE_CODE_MESSAGE</a></code></th>
+<td class="colLast"><code>"Switching Protocols"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeRequest.SEC_WS_ORIGIN_HEADER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#SEC_WS_ORIGIN_HEADER">SEC_WS_ORIGIN_HEADER</a></code></th>
+<td class="colLast"><code>"Sec-WebSocket-Origin"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeRequest.SERVER_KEY_HASH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#SERVER_KEY_HASH">SERVER_KEY_HASH</a></code></th>
+<td class="colLast"><code>"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeRequest.TRACING_THRESHOLD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#TRACING_THRESHOLD">TRACING_THRESHOLD</a></code></th>
+<td class="colLast"><code>"X-Tyrus-Tracing-Threshold"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeRequest.UPGRADE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#UPGRADE">UPGRADE</a></code></th>
+<td class="colLast"><code>"Upgrade"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeRequest.WEBSOCKET">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#WEBSOCKET">WEBSOCKET</a></code></th>
+<td class="colLast"><code>"websocket"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary">
+<caption><span>org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeResponse.LOCATION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeResponse.html#LOCATION">LOCATION</a></code></th>
+<td class="colLast"><code>"Location"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeResponse.RETRY_AFTER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeResponse.html#RETRY_AFTER">RETRY_AFTER</a></code></th>
+<td class="colLast"><code>"Retry-After"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeResponse.TRACING_HEADER_PREFIX">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeResponse.html#TRACING_HEADER_PREFIX">TRACING_HEADER_PREFIX</a></code></th>
+<td class="colLast"><code>"X-Tyrus-Tracing-"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="org.glassfish.tyrus.spi.UpgradeResponse.WWW_AUTHENTICATE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><a href="org/glassfish/tyrus/spi/UpgradeResponse.html#WWW_AUTHENTICATE">WWW_AUTHENTICATE</a></code></th>
+<td class="colLast"><code>"WWW-Authenticate"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/deprecated-list.html b/apidocs/1.20/deprecated-list.html
new file mode 100644
index 00000000..ac0b8ce9
--- /dev/null
+++ b/apidocs/1.20/deprecated-list.html
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Deprecated List (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Deprecated List (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#field">Fields</a></li>
+<li><a href="#method">Methods</a></li>
+</ul>
+</div>
+<div class="contentContainer"><a id="field">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/client/ClientManager.html#HANDSHAKE_TIMEOUT">org.glassfish.tyrus.client.ClientManager.HANDSHAKE_TIMEOUT</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#HANDSHAKE_TIMEOUT"><code>ClientProperties.HANDSHAKE_TIMEOUT</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/client/ClientManager.html#PROXY_HEADERS">org.glassfish.tyrus.client.ClientManager.PROXY_HEADERS</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#PROXY_HEADERS"><code>ClientProperties.PROXY_HEADERS</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/client/ClientManager.html#PROXY_URI">org.glassfish.tyrus.client.ClientManager.PROXY_URI</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#PROXY_URI"><code>ClientProperties.PROXY_URI</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/client/ClientManager.html#RECONNECT_HANDLER">org.glassfish.tyrus.client.ClientManager.RECONNECT_HANDLER</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#RECONNECT_HANDLER"><code>ClientProperties.RECONNECT_HANDLER</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/client/ClientManager.html#SSL_ENGINE_CONFIGURATOR">org.glassfish.tyrus.client.ClientManager.SSL_ENGINE_CONFIGURATOR</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#SSL_ENGINE_CONFIGURATOR"><code>ClientProperties.SSL_ENGINE_CONFIGURATOR</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html#SHARED_CONTAINER">org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer.SHARED_CONTAINER</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#SHARED_CONTAINER"><code>ClientProperties.SHARED_CONTAINER</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html#SHARED_CONTAINER_IDLE_TIMEOUT">org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer.SHARED_CONTAINER_IDLE_TIMEOUT</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#SHARED_CONTAINER_IDLE_TIMEOUT"><code>ClientProperties.SHARED_CONTAINER_IDLE_TIMEOUT</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html#SSL_ENGINE_CONFIGURATOR">org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer.SSL_ENGINE_CONFIGURATOR</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#SSL_ENGINE_CONFIGURATOR"><code>ClientProperties.SSL_ENGINE_CONFIGURATOR</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#PROXY_HEADERS">org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.PROXY_HEADERS</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#PROXY_HEADERS"><code>ClientProperties.PROXY_HEADERS</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#PROXY_URI">org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.PROXY_URI</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#PROXY_URI"><code>ClientProperties.PROXY_URI</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#SELECTOR_THREAD_POOL_CONFIG">org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.SELECTOR_THREAD_POOL_CONFIG</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html"><code>.GrizzlyClientProperties#SELECTOR_THREAD_POOL_CONFIG</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#WORKER_THREAD_POOL_CONFIG">org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.WORKER_THREAD_POOL_CONFIG</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html"><code>.GrizzlyClientProperties#WORKER_THREAD_POOL_CONFIG</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/spi/ClientContainer.html#INCOMING_BUFFER_SIZE">org.glassfish.tyrus.spi.ClientContainer.INCOMING_BUFFER_SIZE</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <code>org.glassfish.tyrus.client.ClientProperties#INCOMING_BUFFER_SIZE</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a id="method">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#send(byte%5B%5D)">org.glassfish.tyrus.core.ProtocolHandler.send&#8203;(byte[])</a></th>
+<td class="colLast"></td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#stream(boolean,byte%5B%5D,int,int)">org.glassfish.tyrus.core.ProtocolHandler.stream&#8203;(boolean, byte[], int, int)</a></th>
+<td class="colLast"></td>
+</tr>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/core/TyrusSession.html#addMessageHandler(javax.websocket.MessageHandler)">org.glassfish.tyrus.core.TyrusSession.addMessageHandler&#8203;(MessageHandler)</a></th>
+<td class="colLast">
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/core/TyrusSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)"><code>TyrusSession.addMessageHandler(Class, javax.websocket.MessageHandler.Whole)</code></a> or <a href="org/glassfish/tyrus/core/TyrusSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)"><code>TyrusSession.addMessageHandler(Class, javax.websocket.MessageHandler.Partial)</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendBinary(byte%5B%5D)">org.glassfish.tyrus.core.TyrusWebSocket.sendBinary&#8203;(byte[])</a></th>
+<td class="colLast"></td>
+</tr>
+<tr class="altColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendText(java.lang.String)">org.glassfish.tyrus.core.TyrusWebSocket.sendText&#8203;(String)</a></th>
+<td class="colLast"></td>
+</tr>
+<tr class="rowColor">
+<th class="colDeprecatedItemName" scope="row"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#setIncomingBufferSize(int)">org.glassfish.tyrus.core.TyrusWebSocketEngine.setIncomingBufferSize&#8203;(int)</a></th>
+<td class="colLast">
+<div class="deprecationComment">Please use <a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>.TyrusWebSocketEngineBuilder#incomingBufferSize(Integer)</code></a>
+ instead.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/element-list b/apidocs/1.20/element-list
new file mode 100644
index 00000000..5d409fdb
--- /dev/null
+++ b/apidocs/1.20/element-list
@@ -0,0 +1,22 @@
+javax.websocket
+javax.websocket.server
+org.glassfish.tyrus.client
+org.glassfish.tyrus.client.auth
+org.glassfish.tyrus.container.grizzly.client
+org.glassfish.tyrus.container.grizzly.server
+org.glassfish.tyrus.core
+org.glassfish.tyrus.core.cluster
+org.glassfish.tyrus.core.coder
+org.glassfish.tyrus.core.collection
+org.glassfish.tyrus.core.extension
+org.glassfish.tyrus.core.frame
+org.glassfish.tyrus.core.l10n
+org.glassfish.tyrus.core.monitoring
+org.glassfish.tyrus.core.uri
+org.glassfish.tyrus.core.uri.internal
+org.glassfish.tyrus.core.wsadl.model
+org.glassfish.tyrus.gf.cdi
+org.glassfish.tyrus.gf.ejb
+org.glassfish.tyrus.server
+org.glassfish.tyrus.servlet
+org.glassfish.tyrus.spi
diff --git a/apidocs/1.20/help-doc.html b/apidocs/1.20/help-doc.html
new file mode 100644
index 00000000..d7a704fc
--- /dev/null
+++ b/apidocs/1.20/help-doc.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>API Help (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="API Help (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">How This API Document Is Organized</h1>
+<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<section role="region">
+<h2>Overview</h2>
+<p>The <a href="index.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Package</h2>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:</p>
+<ul>
+<li>Interfaces</li>
+<li>Classes</li>
+<li>Enums</li>
+<li>Exceptions</li>
+<li>Errors</li>
+<li>Annotation Types</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Class or Interface</h2>
+<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
+<ul>
+<li>Class Inheritance Diagram</li>
+<li>Direct Subclasses</li>
+<li>All Known Subinterfaces</li>
+<li>All Known Implementing Classes</li>
+<li>Class or Interface Declaration</li>
+<li>Class or Interface Description</li>
+</ul>
+<br>
+<ul>
+<li>Nested Class Summary</li>
+<li>Field Summary</li>
+<li>Property Summary</li>
+<li>Constructor Summary</li>
+<li>Method Summary</li>
+</ul>
+<br>
+<ul>
+<li>Field Detail</li>
+<li>Property Detail</li>
+<li>Constructor Detail</li>
+<li>Method Detail</li>
+</ul>
+<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Annotation Type</h2>
+<p>Each annotation type has its own separate page with the following sections:</p>
+<ul>
+<li>Annotation Type Declaration</li>
+<li>Annotation Type Description</li>
+<li>Required Element Summary</li>
+<li>Optional Element Summary</li>
+<li>Element Detail</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Enum</h2>
+<p>Each enum has its own separate page with the following sections:</p>
+<ul>
+<li>Enum Declaration</li>
+<li>Enum Description</li>
+<li>Enum Constant Summary</li>
+<li>Enum Constant Detail</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Use</h2>
+<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Tree (Class Hierarchy)</h2>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<ul>
+<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
+<li>When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Deprecated API</h2>
+<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Index</h2>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>All&nbsp;Classes</h2>
+<p>The <a href="allclasses.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Serialized Form</h2>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Constant Field Values</h2>
+<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Search</h2>
+<p>You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".</p>
+</section>
+</li>
+</ul>
+<hr>
+<span class="emphasizedPhrase">This help file applies to API documentation generated by the standard doclet.</span></div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/index-all.html b/apidocs/1.20/index-all.html
new file mode 100644
index 00000000..60d247a9
--- /dev/null
+++ b/apidocs/1.20/index-all.html
@@ -0,0 +1,6979 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Index (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Index (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:K">K</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a>&nbsp;<a href="allpackages-index.html">All&nbsp;Packages</a><a id="I:A">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">AbstractMultivaluedMap</span></a>&lt;<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt; - Class in <a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></dt>
+<dd>
+<div class="block">Abstract skeleton implementation of a <a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> that is backed
+ by a [key, multi-value] store represented as a <code>Map&lt;K, List&lt;V&gt;&gt;</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#%3Cinit%3E(java.util.Map)">AbstractMultivaluedMap(Map&lt;K, List&lt;V&gt;&gt;)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Initialize the backing store in the abstract parent multivalued map
+ implementation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#add(K,V)">add(K, V)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Add a value to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html#add(K,V)">add(K, V)</a></span> - Method in interface org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Add a value to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#addAll(K,java.util.List)">addAll(K, List&lt;V&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Add all the values from the supplied value list to the current list of
+ values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html#addAll(K,java.util.List)">addAll(K, List&lt;V&gt;)</a></span> - Method in interface org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Add all the values from the supplied value list to the current list of
+ values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#addAll(K,V...)">addAll(K, V...)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Add multiple values to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html#addAll(K,V...)">addAll(K, V...)</a></span> - Method in interface org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Add multiple values to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerContainer.html#addEndpoint(java.lang.Class)">addEndpoint(Class&lt;?&gt;)</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></dt>
+<dd>
+<div class="block">Deploys the given annotated endpoint into this ServerContainer during the
+ initialization phase of deploying the application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#addEndpoint(java.lang.Class)">addEndpoint(Class&lt;?&gt;)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerContainer.html#addEndpoint(javax.websocket.server.ServerEndpointConfig)">addEndpoint(ServerEndpointConfig)</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#addEndpoint(javax.websocket.server.ServerEndpointConfig)">addEndpoint(ServerEndpointConfig)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ErrorCollector.html#addException(java.lang.Exception)">addException(Exception)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a></dt>
+<dd>
+<div class="block">Add <code>Exception</code> to the collector.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#addFirst(K,V)">addFirst(K, V)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Add a value to the first position in the current list of values for the
+ supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html#addFirst(K,V)">addFirst(K, V)</a></span> - Method in interface org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Add a value to the first position in the current list of values for the
+ supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html#addFirstNull(java.util.List)">addFirstNull(List&lt;String&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#addFirstNull(java.util.List)">addFirstNull(List&lt;V&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Define the behavior for adding a <code>null</code> values to the first position
+ in the value list.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler(Class&lt;T&gt;, MessageHandler.Partial&lt;T&gt;)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler(Class&lt;T&gt;, MessageHandler.Partial&lt;T&gt;)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">This method is not supported on <a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/MessageHandlerManager.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler(Class&lt;T&gt;, MessageHandler.Partial&lt;T&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></dt>
+<dd>
+<div class="block">Add <a href="javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket"><code>MessageHandler.Partial</code></a> to the manager.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler(Class&lt;T&gt;, MessageHandler.Partial&lt;T&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler(Class&lt;T&gt;, MessageHandler.Whole&lt;T&gt;)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler(Class&lt;T&gt;, MessageHandler.Whole&lt;T&gt;)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">This method is not supported on <a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/MessageHandlerManager.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler(Class&lt;T&gt;, MessageHandler.Whole&lt;T&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></dt>
+<dd>
+<div class="block">Add <a href="javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket"><code>MessageHandler.Whole</code></a> to the manager.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler(Class&lt;T&gt;, MessageHandler.Whole&lt;T&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler(MessageHandler)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler(MessageHandler)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">This method is not supported on <a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/MessageHandlerManager.html#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler(MessageHandler)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></dt>
+<dd>
+<div class="block">Add <a href="javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a> to the manager.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler(MessageHandler)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/core/TyrusSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)"><code>TyrusSession.addMessageHandler(Class, javax.websocket.MessageHandler.Whole)</code></a> or <a href="org/glassfish/tyrus/core/TyrusSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)"><code>TyrusSession.addMessageHandler(Class, javax.websocket.MessageHandler.Partial)</code></a></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html#addNull(java.util.List)">addNull(List&lt;String&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#addNull(java.util.List)">addNull(List&lt;V&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Define the behavior for adding a <code>null</code> values to the value list.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpointConfig.Configurator.html#afterResponse(javax.websocket.HandshakeResponse)">afterResponse(HandshakeResponse)</a></span> - Method in class javax.websocket.<a href="javax/websocket/ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a></dt>
+<dd>
+<div class="block">This method is called by the implementation after it has received a handshake response
+ from the server as a result of a handshake interaction it initiated.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.TracingType.html#ALL">ALL</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></dt>
+<dd>
+<div class="block">Tracing headers will be present in all handshake responses.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html#ALL">ALL</a></span> - Static variable in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html#ALL_INSTANCES">ALL_INSTANCES</a></span> - Static variable in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">AnnotatedEndpoint</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block"><a href="javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> descendant which represents deployed annotated endpoint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html#ANOTHER_UPGRADE_REQUEST_REQUIRED">ANOTHER_UPGRADE_REQUEST_REQUIRED</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></dt>
+<dd>
+<div class="block">Client engine needs to send another request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/Application.html#any">any</a></span> - Variable in class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#appendBuffers(java.nio.ByteBuffer,java.nio.ByteBuffer,int,int)">appendBuffers(ByteBuffer, ByteBuffer, int, int)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Concatenates two buffers into one.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.html#appendLogMessage(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Object...)">appendLogMessage(Logger, Level, DebugContext.Type, Object...)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></dt>
+<dd>
+<div class="block">Append a message to the log, the logging will be postponed until the message can be provided with a session ID.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.html#appendLogMessageWithThrowable(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Throwable,java.lang.Object...)">appendLogMessageWithThrowable(Logger, Level, DebugContext.Type, Throwable, Object...)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></dt>
+<dd>
+<div class="block">Append a message to the log, the logging will be postponed until the message can be provided with a session ID.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.html#appendStandardOutputMessage(org.glassfish.tyrus.core.DebugContext.Type,java.lang.String)">appendStandardOutputMessage(DebugContext.Type, String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></dt>
+<dd>
+<div class="block">Write a message to the standard output, the logging will be postponed until the message can be provided with
+ a session ID.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.html#appendTraceMessage(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Object...)">appendTraceMessage(Logger, Level, DebugContext.Type, Object...)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></dt>
+<dd>
+<div class="block">Append a message to the log and to the list of trace messages that are sent in handshake response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.html#appendTraceMessageWithThrowable(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Throwable,java.lang.Object...)">appendTraceMessageWithThrowable(Logger, Level, DebugContext.Type, Throwable, Object...)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></dt>
+<dd>
+<div class="block">Append a message to the log and to the list of trace messages that are sent in handshake response.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model"><span class="typeNameLink">Application</span></a> - Class in <a href="org/glassfish/tyrus/core/wsadl/model/package-summary.html">org.glassfish.tyrus.core.wsadl.model</a></dt>
+<dd>
+<div class="block">Java class for anonymous complex type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/Application.html#%3Cinit%3E()">Application()</a></span> - Constructor for class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#APPLICATION_DATA_TOO_LONG(java.lang.Object)">APPLICATION_DATA_TOO_LONG(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">{0} applicationData exceeded the maximum allowed payload of 125 bytes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html#APPLICATION_EVENT_LISTENER">APPLICATION_EVENT_LISTENER</a></span> - Static variable in interface org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></dt>
+<dd>
+<div class="block">A key used for registering a application event listener implementation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#applicationEventListener(org.glassfish.tyrus.core.monitoring.ApplicationEventListener)">applicationEventListener(ApplicationEventListener)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></dt>
+<dd>
+<div class="block">Set <a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><code>ApplicationEventListener</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><span class="typeNameLink">ApplicationEventListener</span></a> - Interface in <a href="org/glassfish/tyrus/core/monitoring/package-summary.html">org.glassfish.tyrus.core.monitoring</a></dt>
+<dd>
+<div class="block">Listens to application-level events that are interesting for monitoring.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ARGUMENT_NOT_NULL(java.lang.Object)">ARGUMENT_NOT_NULL(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Argument ''{0}'' cannot be null.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html#asClosed(org.glassfish.tyrus.core.uri.internal.PathPattern)">asClosed(PathPattern)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></dt>
+<dd>
+<div class="block">Return a new path pattern with a same path template but a <a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html#capturingZeroSegments"><code>closed</code></a>
+ right hand path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html#ASYNC">ASYNC</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></dt>
+<dd>
+<div class="block">RemoteEndpoint.Async</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(java.lang.Class,java.net.URI)">asyncConnectToServer(Class&lt;?&gt;, URI)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="block">Non-blocking version of <a href="javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, java.net.URI)</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(java.lang.Class,java.net.URI)">asyncConnectToServer(Class&lt;?&gt;, URI)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>
+<div class="block">Non-blocking version of <a href="javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, java.net.URI)</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer(Class&lt;? extends Endpoint&gt;, ClientEndpointConfig, URI)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="block">Non-blocking version of <a href="javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, javax.websocket.ClientEndpointConfig,
+ java.net.URI)</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer(Class&lt;? extends Endpoint&gt;, ClientEndpointConfig, URI)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>
+<div class="block">Non-blocking version of <a href="javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(java.lang.Object,java.net.URI)">asyncConnectToServer(Object, URI)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="block">Non-blocking version of <a href="javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)"><code>WebSocketContainer.connectToServer(Object, java.net.URI)</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(java.lang.Object,java.net.URI)">asyncConnectToServer(Object, URI)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>
+<div class="block">Non-blocking version of <a href="javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)"><code>WebSocketContainer.connectToServer(Object, java.net.URI)</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer(Endpoint, ClientEndpointConfig, URI)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="block">Non-blocking version of <a href="javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer(Endpoint, ClientEndpointConfig, URI)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>
+<div class="block">Non-blocking version of <a href="javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#AUTH_CONFIG">AUTH_CONFIG</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">Authentication configuration.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">AuthConfig</span></a> - Class in <a href="org/glassfish/tyrus/client/auth/package-summary.html">org.glassfish.tyrus.client.auth</a></dt>
+<dd>
+<div class="block">AuthConfig serves as a configuration of HTTP authentication.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">AuthConfig.Builder</span></a> - Class in <a href="org/glassfish/tyrus/client/auth/package-summary.html">org.glassfish.tyrus.client.auth</a></dt>
+<dd>
+<div class="block">The AuthConfig.Builder is a class used for creating an instance of <a href="org/glassfish/tyrus/client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a> for purpose of HTTP
+ Authentication.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#AUTHENTICATION_CREATE_AUTH_HEADER_FAILED()">AUTHENTICATION_CREATE_AUTH_HEADER_FAILED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Could not add authorization header in http request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#AUTHENTICATION_CREDENTIALS_MISSING()">AUTHENTICATION_CREDENTIALS_MISSING()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Credentials are missing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#AUTHENTICATION_DIGEST_NO_SUCH_ALG()">AUTHENTICATION_DIGEST_NO_SUCH_ALG()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">No such algorithm to generate authorization digest http header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#AUTHENTICATION_DIGEST_QOP_UNSUPPORTED(java.lang.Object)">AUTHENTICATION_DIGEST_QOP_UNSUPPORTED(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">The 'qop' (quality of protection) = {0} extension requested by the server is not supported by Tyrus.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#AUTHENTICATION_FAILED()">AUTHENTICATION_FAILED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Authentication failed.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/auth/AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">AuthenticationException</span></a> - Exception in <a href="org/glassfish/tyrus/client/auth/package-summary.html">org.glassfish.tyrus.client.auth</a></dt>
+<dd>
+<div class="block">This exception is set as a cause of <a href="javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown when <a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...)
+ fails because of any of the following:
+ 
+ 
+ HTTP response status code 401 is received and "<a href="org/glassfish/tyrus/spi/UpgradeResponse.html#WWW_AUTHENTICATE">"WWW-Authenticate"</a>" header
+ contains scheme which is not handled by any <a href="org/glassfish/tyrus/client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> registered in <a href="org/glassfish/tyrus/client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/AuthenticationException.html#%3Cinit%3E(java.lang.String)">AuthenticationException(String)</a></span> - Constructor for exception org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">AuthenticationException</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">Authenticator</span></a> - Class in <a href="org/glassfish/tyrus/client/auth/package-summary.html">org.glassfish.tyrus.client.auth</a></dt>
+<dd>
+<div class="block">Authenticator provides a way how to plug-in custom authentication provider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/Authenticator.html#%3Cinit%3E()">Authenticator()</a></span> - Constructor for class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#AUTHORITY">AUTHORITY</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">The URI authority component type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#AUTHORIZATION">AUTHORIZATION</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">HTTP "Authorization" header name.</div>
+</dd>
+</dl>
+<a id="I:B">
+<!--   -->
+</a>
+<h2 class="title">B</h2>
+<dl>
+<dt><a href="org/glassfish/tyrus/core/BaseContainer.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">BaseContainer</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Base WebSocket container.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/BaseContainer.html#%3Cinit%3E()">BaseContainer()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core"><span class="typeNameLink">BaseContainer.ShutDownCondition</span></a> - Interface in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html#BASIC">BASIC</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></dt>
+<dd>
+<div class="block">RemoteEndpoint.Basic</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpointConfig.Configurator.html#beforeRequest(java.util.Map)">beforeRequest(Map&lt;String, List&lt;String&gt;&gt;)</a></span> - Method in class javax.websocket.<a href="javax/websocket/ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a></dt>
+<dd>
+<div class="block">This method is called by the implementation after it has formulated the handshake
+ request that will be used to initiate the connection to the server, but before it has
+ sent any part of the request.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/Beta.html" title="annotation in org.glassfish.tyrus.core"><span class="typeNameLink">Beta</span></a> - Annotation Type in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Marker of a public Tyrus API that is still in "beta" non-final version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html#BINARY">BINARY</a></span> - org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></dt>
+<dd>
+<div class="block">Binary frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html#BINARY">BINARY</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></dt>
+<dd>
+<div class="block">Binary type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html#BINARY_CONTINUATION">BINARY_CONTINUATION</a></span> - org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></dt>
+<dd>
+<div class="block">Continuation binary frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html#BINARY_CONTINUATION">BINARY_CONTINUATION</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></dt>
+<dd>
+<div class="block">Continuation binary type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#BINARY_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">BINARY_MESSAGE_HANDLER_NOT_FOUND(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Binary message handler not found.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#BINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">BINARY_MESSAGE_OUT_OF_ORDER(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Binary message received out of order.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/frame/BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">BinaryFrame</span></a> - Class in <a href="org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a></dt>
+<dd>
+<div class="block">Binary frame representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/BinaryFrame.html#%3Cinit%3E(byte%5B%5D,boolean,boolean)">BinaryFrame(byte[], boolean, boolean)</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/BinaryFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">BinaryFrame(Frame)</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/BinaryFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,boolean)">BinaryFrame(Frame, boolean)</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html#%3Cinit%3E()">BooleanDecoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#broadcast(java.lang.String)">broadcast(String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>
+<div class="block">Broadcasts text message to all connected clients.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#broadcast(java.nio.ByteBuffer)">broadcast(ByteBuffer)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>
+<div class="block">Broadcasts binary message to all connected clients, including remote sessions (if any).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html#BROADCAST">BROADCAST</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></dt>
+<dd>
+<div class="block">Broadcast</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#broadcastBinary(java.lang.String,byte%5B%5D)">broadcastBinary(String, byte[])</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Broadcast binary message.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/cluster/BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">BroadcastListener</span></a> - Interface in <a href="org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></dt>
+<dd>
+<div class="block">Broadcast listener.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#broadcastText(java.lang.String,java.lang.String)">broadcastText(String, String)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Broadcast text message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#BUFFER_OVERFLOW()">BUFFER_OVERFLOW()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Buffer overflow.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpointConfig.Builder.html#build()">build()</a></span> - Method in class javax.websocket.<a href="javax/websocket/ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Builds a configuration object using the attributes set
+ on this builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.Builder.html#build()">build()</a></span> - Method in class javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Builds the configuration object using the current attributes
+ that have been set on this builder object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html#build()">build()</a></span> - Method in class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></dt>
+<dd>
+<div class="block">Build an instance of <a href="org/glassfish/tyrus/client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html#build()">build()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></dt>
+<dd>
+<div class="block">Build new frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.Builder.html#build()">build()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></dt>
+<dd>
+<div class="block">Build <a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a> from given properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html#build()">build()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Builds the configuration object using the current attributes
+ that have been set on this builder object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#build()">build()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> instance with current set of parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/AuthConfig.html#builder()">builder()</a></span> - Static method in class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig.Builder</code></a> instance, which contains provided Basic and Digest authenticators.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#builder()">builder()</a></span> - Static method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#builder(javax.websocket.WebSocketContainer)">builder(WebSocketContainer)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>
+<div class="block">Create <a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</code></a>
+ instance based on passed <a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#builder(org.glassfish.tyrus.core.frame.Frame)">builder(Frame)</a></span> - Static method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> based on provided frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html#%3Cinit%3E()">Builder()</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.Builder.html#%3Cinit%3E()">Builder()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">Builder(Frame)</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/OsgiRegistry.html#bundleChanged(org.osgi.framework.BundleEvent)">bundleChanged(BundleEvent)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html#%3Cinit%3E()">ByteDecoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a id="I:C">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html#c">c</a></span> - Variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a></dt>
+<dd>
+<div class="block">The class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html#c">c</a></span> - Variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusFuture.html#cancel(boolean)">cancel(boolean)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusFuture.html" title="class in org.glassfish.tyrus.core">TyrusFuture</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/CompletionHandler.html#cancelled()">cancelled()</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a></dt>
+<dd>
+<div class="block">The operation was cancelled.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#CANNOT_ACCEPT">CANNOT_ACCEPT</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1003 indicates that an endpoint is terminating the connection
+ because it has received a type of data it cannot accept (e.g., an
+ endpoint that understands only text data MAY send this if it
+ receives a binary message).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#CANNOT_ACCEPT">CANNOT_ACCEPT</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1003 indicates that an endpoint is terminating the connection
+ because it has received a type of data it cannot accept (e.g., an
+ endpoint that understands only text data MAY send this if it
+ receives a binary message).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html#capturingZeroOrMoreSegments">capturingZeroOrMoreSegments</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></dt>
+<dd>
+<div class="block">A capturing group that matches zero or more path segments and keeps the matching path template open.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html#capturingZeroSegments">capturingZeroSegments</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></dt>
+<dd>
+<div class="block">A capturing group that matches zero segments and effectively closes the matching path template.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi"><span class="typeNameLink">CdiComponentProvider</span></a> - Class in <a href="org/glassfish/tyrus/gf/cdi/package-summary.html">org.glassfish.tyrus.gf.cdi</a></dt>
+<dd>
+<div class="block">Provides the instance for CDI class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html#%3Cinit%3E()">CdiComponentProvider()</a></span> - Constructor for class org.glassfish.tyrus.gf.cdi.<a href="org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi">CdiComponentProvider</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html#%3Cinit%3E()">CharacterDecoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#checkNotNull(T,java.lang.String)">checkNotNull(T, String)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Check for null.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.Configurator.html#checkOrigin(java.lang.String)">checkOrigin(String)</a></span> - Method in class javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></dt>
+<dd>
+<div class="block">Check the value of the Origin header (<a href="http://tools.ietf.org/html/rfc6454">See Origin Header</a>) the client passed during the opening
+ handshake.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html#checkOrigin(java.lang.String)">checkOrigin(String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(java.lang.Object,java.lang.Object)">CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Class {0}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#CLASS_CHECKER_FORBIDDEN_RETURN_TYPE(java.lang.Object,java.lang.Object)">CLASS_CHECKER_FORBIDDEN_RETURN_TYPE(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Method: {0}.{1}: has got unsupported return type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(java.lang.Object,java.lang.Object)">CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Method: {0}.{1}: @OnClose has got different params than Session or CloseReason.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Method: {0}.{1}: {2} is not allowed as parameter type for method annotated with @OnError.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Method: {0}.{1}: {2} has got multiple parameters of identical type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#CLASS_CHECKER_MANDATORY_PARAM_MISSING(java.lang.Object,java.lang.Object)">CLASS_CHECKER_MANDATORY_PARAM_MISSING(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Method: {0}.{1}: does not have mandatory Throwable param.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(java.lang.Object,java.lang.Object)">CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Method: {0}.{1}: has got multiple parameters of identical type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#CLASS_NOT_INSTANTIATED(java.lang.Object)">CLASS_NOT_INSTANTIATED(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Class {0} couldn''t be instantiated.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#classForName(java.lang.String)">classForName(String)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get the Class from the class name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#classForName(java.lang.String,java.lang.ClassLoader)">classForName(String, ClassLoader)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get the Class from the class name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/OsgiRegistry.html#classForNameWithException(java.lang.String)">classForNameWithException(String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></dt>
+<dd>
+<div class="block">Get the Class from the class name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#classForNameWithException(java.lang.String)">classForNameWithException(String)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get the Class from the class name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#classForNameWithException(java.lang.String,java.lang.ClassLoader)">classForNameWithException(String, ClassLoader)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get the Class from the class name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#classForNameWithExceptionPEA(java.lang.String)">classForNameWithExceptionPEA(String)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get privileged exception action to obtain Class from given class name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#classForNameWithExceptionPEA(java.lang.String,java.lang.ClassLoader)">classForNameWithExceptionPEA(String, ClassLoader)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get privileged exception action to obtain Class from given class name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html#%3Cinit%3E(java.lang.Class)">ClassTypePair(Class)</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html#%3Cinit%3E(java.lang.Class,java.lang.reflect.Type)">ClassTypePair(Class, Type)</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#clear()">clear()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#CLIENT_CANNOT_CONNECT(java.lang.Object)">CLIENT_CANNOT_CONNECT(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Client cannot connect to "{0}".</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientContainer</span></a> - Interface in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Entry point for client implementation.</div>
+</dd>
+<dt><a href="javax/websocket/ClientEndpoint.html" title="annotation in javax.websocket"><span class="typeNameLink">ClientEndpoint</span></a> - Annotation Type in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">The ClientEndpoint annotation a class level annotation is used to denote that a POJO
+ is a web socket client and can be deployed as such.</div>
+</dd>
+<dt><a href="javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket"><span class="typeNameLink">ClientEndpointConfig</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">The ClientEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to client endpoints.</div>
+</dd>
+<dt><a href="javax/websocket/ClientEndpointConfig.Builder.html" title="class in javax.websocket"><span class="typeNameLink">ClientEndpointConfig.Builder</span></a> - Class in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">The ClientEndpointConfig.Builder is a class used for creating
+ <a href="javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket"><code>ClientEndpointConfig</code></a> objects for the purposes of
+ deploying a client endpoint.</div>
+</dd>
+<dt><a href="javax/websocket/ClientEndpointConfig.Configurator.html" title="class in javax.websocket"><span class="typeNameLink">ClientEndpointConfig.Configurator</span></a> - Class in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">The Configurator class may be extended by developers who want to
+ provide custom configuration algorithms, such as intercepting the opening handshake, or
+ providing arbitrary methods and algorithms that can be accessed from each endpoint
+ instance configured with this configurator.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientEngine</span></a> - Interface in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Facade for handling client operations from containers.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientEngine.ClientUpgradeInfo</span></a> - Interface in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Upgrade process result.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientEngine.ClientUpgradeStatus</span></a> - Enum in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Status of upgrade process.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientEngine.TimeoutHandler</span></a> - Interface in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Indicates to container that handshake timeout was reached.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">ClientManager</span></a> - Class in <a href="org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></dt>
+<dd>
+<div class="block">ClientManager implementation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#%3Cinit%3E()">ClientManager()</a></span> - Constructor for class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client"><code>ClientManager</code></a> instance.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">ClientManager.ReconnectHandler</span></a> - Class in <a href="org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></dt>
+<dd>
+<div class="block">Reconnect handler.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#clientMode">clientMode</a></span> - Variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Client mode when handshaking.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">ClientProperties</span></a> - Class in <a href="org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></dt>
+<dd>
+<div class="block">Tyrus client configuration properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#%3Cinit%3E()">ClientProperties()</a></span> - Constructor for class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#close()">close()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Close the current conversation with a normal status code and no reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html#close()">close()</a></span> - Method in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#close()">close()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Close the current conversation with a normal status code and no reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#close()">close()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#close()">close()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Closes this <a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#close(int,java.lang.String)">close(int, String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#close(int,java.lang.String)">close(int, String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Closes this <a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a> using the specified status code and
+ reason.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#close(java.lang.String)">close(String)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Close remote session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#close(java.lang.String,javax.websocket.CloseReason)">close(String, CloseReason)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Close remote session with custom <a href="javax/websocket/CloseReason.html" title="class in javax.websocket"><code>CloseReason</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#close(javax.websocket.CloseReason)">close(CloseReason)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Close the current conversation, giving a reason for the closure.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#close(javax.websocket.CloseReason)">close(CloseReason)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Close the current conversation, giving a reason for the closure.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html#close(javax.websocket.CloseReason)">close(CloseReason)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">TyrusRemoteEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#close(javax.websocket.CloseReason)">close(CloseReason)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#close(javax.websocket.CloseReason)">close(CloseReason)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Closes this <a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a> using the <a href="javax/websocket/CloseReason.html" title="class in javax.websocket"><code>CloseReason</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/Connection.html#close(javax.websocket.CloseReason)">close(CloseReason)</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></dt>
+<dd>
+<div class="block">Notifies tyrus that underlying transport is closing the connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/Connection.CloseListener.html#close(javax.websocket.CloseReason)">close(CloseReason)</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a></dt>
+<dd>
+<div class="block">Tyrus notifies that logical connection is closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html#CLOSE">CLOSE</a></span> - org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></dt>
+<dd>
+<div class="block">Close frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html#CLOSE">CLOSE</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></dt>
+<dd>
+<div class="block">Close type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#CLOSED_ABNORMALLY">CLOSED_ABNORMALLY</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1006 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#CLOSED_ABNORMALLY">CLOSED_ABNORMALLY</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1006 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/frame/CloseFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">CloseFrame</span></a> - Class in <a href="org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a></dt>
+<dd>
+<div class="block">Close frame representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/CloseFrame.html#%3Cinit%3E(javax.websocket.CloseReason)">CloseFrame(CloseReason)</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/CloseFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">CloseFrame(Frame)</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><a href="javax/websocket/CloseReason.html" title="class in javax.websocket"><span class="typeNameLink">CloseReason</span></a> - Class in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">A class encapsulating the reason why a web socket has been closed, or why it is being asked to
+ close.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.html#%3Cinit%3E(javax.websocket.CloseReason.CloseCode,java.lang.String)">CloseReason(CloseReason.CloseCode, String)</a></span> - Constructor for class javax.websocket.<a href="javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a></dt>
+<dd>
+<div class="block">Creates a reason for closing a web socket connection with the given
+ code and reason phrase.</div>
+</dd>
+<dt><a href="javax/websocket/CloseReason.CloseCode.html" title="interface in javax.websocket"><span class="typeNameLink">CloseReason.CloseCode</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">A marker interface for the close codes.</div>
+</dd>
+<dt><a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket"><span class="typeNameLink">CloseReason.CloseCodes</span></a> - Enum in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">An Enumeration of status codes for a web socket close that
+ are defined in the specification.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">CloseReasons</span></a> - Enum in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Enum containing standard CloseReasons defined in RFC 6455, see chapter
+ <a href="https://tools.ietf.org/html/rfc6455#section-7.4.1">7.4.1 Defined Status Codes</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#CLUSTER_CONNECTION_ID_HEADER">CLUSTER_CONNECTION_ID_HEADER</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">Tyrus cluster connection ID header name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#CLUSTER_CONTEXT">CLUSTER_CONTEXT</a></span> - Static variable in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">ClusterContext registration property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#clusterContext(org.glassfish.tyrus.core.cluster.ClusterContext)">clusterContext(ClusterContext)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></dt>
+<dd>
+<div class="block">Set <a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster"><code>ClusterContext</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">ClusterContext</span></a> - Class in <a href="org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></dt>
+<dd>
+<div class="block">Cluster related context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#%3Cinit%3E()">ClusterContext()</a></span> - Constructor for class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">CoderAdapter</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>
+<div class="block">Adapter for <a href="javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> which implements lifecycle
+ methods.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/CoderAdapter.html#%3Cinit%3E()">CoderAdapter()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">CoderWrapper</span></a>&lt;<a href="org/glassfish/tyrus/core/coder/CoderWrapper.html" title="type parameter in CoderWrapper">T</a>&gt; - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>
+<div class="block">Wrapper of coders storing the coder coder class (and optionally coder instance), return type of the encode / decode
+ method and coder class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/CoderWrapper.html#%3Cinit%3E(java.lang.Class,java.lang.Class)">CoderWrapper(Class&lt;? extends T&gt;, Class&lt;?&gt;)</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a></dt>
+<dd>
+<div class="block">Construct new coder wrapper.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/CoderWrapper.html#%3Cinit%3E(T,java.lang.Class)">CoderWrapper(T, Class&lt;?&gt;)</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a></dt>
+<dd>
+<div class="block">Construct new coder wrapper.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html#COMPARATOR">COMPARATOR</a></span> - Static variable in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></dt>
+<dd>
+<div class="block">Path pattern comparator that defers to <a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#COMPARATOR"><code>comparing the templates</code></a> associated with the
+ patterns.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#COMPARATOR">COMPARATOR</a></span> - Static variable in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Order the templates according to JAX-RS specification.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/CompletionHandler.html#completed(E)">completed(E)</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a></dt>
+<dd>
+<div class="block">The operation was completed.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/CompletionHandler.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">CompletionHandler</span></a>&lt;<a href="org/glassfish/tyrus/spi/CompletionHandler.html" title="type parameter in CompletionHandler">E</a>&gt; - Class in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">A callback to notify about asynchronous I/O operations status updates.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/CompletionHandler.html#%3Cinit%3E()">CompletionHandler()</a></span> - Constructor for class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#COMPONENT_PROVIDER_NOT_FOUND(java.lang.Object)">COMPONENT_PROVIDER_NOT_FOUND(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Component provider for class {0} not found.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#COMPONENT_PROVIDER_THREW_EXCEPTION(java.lang.Object)">COMPONENT_PROVIDER_THREW_EXCEPTION(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Component provider threw exception when providing instance of class {0}.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/ComponentProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ComponentProvider</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Provides an instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ComponentProvider.html#%3Cinit%3E()">ComponentProvider()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ComponentProviderService</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Provides an instance of component.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ComponentProviderService.html#%3Cinit%3E(org.glassfish.tyrus.core.ComponentProviderService)">ComponentProviderService(ComponentProviderService)</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></dt>
+<dd>
+<div class="block">Copy constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ErrorCollector.html#composeComprehensiveException()">composeComprehensiveException()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a></dt>
+<dd>
+<div class="block">Create <a href="javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> with message concatenated from collected exceptions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html#concreteClass">concreteClass</a></span> - Variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpoint.html#configurator()">configurator()</a></span> - Method in annotation type javax.websocket.<a href="javax/websocket/ClientEndpoint.html" title="annotation in javax.websocket">ClientEndpoint</a></dt>
+<dd>
+<div class="block">An optional custom configurator class that the developer would like to use
+ to provide custom configuration of new instances of this endpoint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpoint.html#configurator()">configurator()</a></span> - Method in annotation type javax.websocket.server.<a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server">ServerEndpoint</a></dt>
+<dd>
+<div class="block">The optional custom configurator class that the developer would like to use
+ to further configure new instances of this endpoint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpointConfig.Builder.html#configurator(javax.websocket.ClientEndpointConfig.Configurator)">configurator(ClientEndpointConfig.Configurator)</a></span> - Method in class javax.websocket.<a href="javax/websocket/ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Sets the configurator object for the configuration this builder will build.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.Builder.html#configurator(javax.websocket.server.ServerEndpointConfig.Configurator)">configurator(ServerEndpointConfig.Configurator)</a></span> - Method in class javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Sets the custom configurator to use on the configuration
+ object built by this builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html#configurator(javax.websocket.server.ServerEndpointConfig.Configurator)">configurator(ServerEndpointConfig.Configurator)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Sets the custom configurator to use on the configuration
+ object built by this builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpointConfig.Configurator.html#%3Cinit%3E()">Configurator()</a></span> - Constructor for class javax.websocket.<a href="javax/websocket/ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.Configurator.html#%3Cinit%3E()">Configurator()</a></span> - Constructor for class javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#configure(javax.net.ssl.SSLEngine)">configure(SSLEngine)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Configure passed <code>SSLEngine</code>, using current configurator settings, excluding Hostname Verification.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#connect()">connect()</a></span> - Method in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientSocket</a></dt>
+<dd>
+<div class="block">Performs connect to server endpoint.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/Connection.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">Connection</span></a> - Interface in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">A logical websocket connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#CONNECTION">CONNECTION</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">HTTP "Connection" header name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#CONNECTION_HAS_BEEN_CLOSED()">CONNECTION_HAS_BEEN_CLOSED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">The connection has been closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#CONNECTION_ID">CONNECTION_ID</a></span> - org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">Cluster connection Id.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#CONNECTION_NULL()">CONNECTION_NULL()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Connection is null.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">Connection.CloseListener</span></a> - Interface in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Transport close listener that receives connection close
+ notifications from Tyrus.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer(Class&lt;?&gt;, URI)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></dt>
+<dd>
+<div class="block">Connect the supplied annotated endpoint to its server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer(Class&lt;? extends Endpoint&gt;, ClientEndpointConfig, URI)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></dt>
+<dd>
+<div class="block">Connect the supplied programmatic endpoint to its server with the given 
+ configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer(Class&lt;? extends Endpoint&gt;, ClientEndpointConfig, URI)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer(Class&lt;? extends Endpoint&gt;, ClientEndpointConfig, URI)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer(Class, URI)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer(Class, URI)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer(Object, URI)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></dt>
+<dd>
+<div class="block">Connect the supplied annotated endpoint instance to its server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer(Object, URI)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer(Object, URI)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer(Endpoint, ClientEndpointConfig, URI)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></dt>
+<dd>
+<div class="block">Connect the supplied programmatic client endpoint instance to its server 
+ with the given configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer(Endpoint, ClientEndpointConfig, URI)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer(Endpoint, ClientEndpointConfig, URI)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="javax/websocket/ContainerProvider.html" title="class in javax.websocket"><span class="typeNameLink">ContainerProvider</span></a> - Class in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">Provider class that allows the developer to get a reference to
+ the implementation of the WebSocketContainer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ContainerProvider.html#%3Cinit%3E()">ContainerProvider()</a></span> - Constructor for class javax.websocket.<a href="javax/websocket/ContainerProvider.html" title="class in javax.websocket">ContainerProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/StrictUtf8.html#contains(java.nio.charset.Charset)">contains(Charset)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/StrictUtf8.html" title="class in org.glassfish.tyrus.core">StrictUtf8</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#containsKey(java.lang.Object)">containsKey(Object)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#containsValue(java.lang.Object)">containsValue(Object)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#contextualEncode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">contextualEncode(String, UriComponent.Type)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Contextually encodes the characters of string that are either non-ASCII characters or are ASCII characters that
+ must be percent-encoded using the UTF-8 encoding.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#contextualEncode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">contextualEncode(String, UriComponent.Type, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Contextually encodes the characters of string that are either non-ASCII characters or are ASCII characters that
+ must be percent-encoded using the UTF-8 encoding.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#CONTROL_FRAME_FRAGMENTED()">CONTROL_FRAME_FRAGMENTED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Fragmented control frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#CONTROL_FRAME_LENGTH()">CONTROL_FRAME_LENGTH()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Control frame payloads must be no greater than 125 bytes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#copy()">copy()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#copy()">copy()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Return a copy of this thread pool config.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpointConfig.Builder.html#create()">create()</a></span> - Static method in class javax.websocket.<a href="javax/websocket/ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Creates a new builder object with no subprotocols, extensions, encoders,
+ decoders and a <code>null</code> configurator.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html#create()">create()</a></span> - Static method in class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig.Builder</code></a> instance, which contains provided Basic and Digest authenticators.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ComponentProviderService.html#create()">create()</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></dt>
+<dd>
+<div class="block">Create new instance of <a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core"><code>ComponentProviderService</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.Builder.html#create()">create()</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></dt>
+<dd>
+<div class="block">Create empty builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.Builder.html#create(java.lang.Class,java.lang.String)">create(Class&lt;?&gt;, String)</a></span> - Static method in class javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Creates the builder with the mandatory information of the endpoint class 
+ (programmatic or annotated), the relative URI or URI-template to use,
+ and with no subprotocols, extensions, encoders, decoders or custom
+ configurator.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html#create(java.lang.Class,java.lang.String)">create(Class&lt;?&gt;, String)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Creates the builder with the mandatory information of the endpoint class
+ (programmatic or annotated), the relative URI or URI-template to use,
+ and with no subprotocols, extensions, encoders, decoders or custom
+ configurator.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ComponentProvider.html#create(java.lang.Class)">create(Class&lt;T&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></dt>
+<dd>
+<div class="block">Create new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DefaultComponentProvider.html#create(java.lang.Class)">create(Class&lt;T&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core">DefaultComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html#create(java.lang.Class)">create(Class&lt;T&gt;)</a></span> - Method in class org.glassfish.tyrus.gf.cdi.<a href="org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi">CdiComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html#create(java.lang.Class)">create(Class&lt;T&gt;)</a></span> - Method in class org.glassfish.tyrus.gf.ejb.<a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb">EjbComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#create(javax.websocket.CloseReason.CloseCode,java.lang.String)">create(CloseReason.CloseCode, String)</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.Builder.html#create(org.glassfish.tyrus.core.RequestContext)">create(RequestContext)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></dt>
+<dd>
+<div class="block">Create builder instance based on provided <a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html#createApplication()">createApplication()</a></span> - Method in class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html" title="class in org.glassfish.tyrus.core.wsadl.model">ObjectFactory</a></dt>
+<dd>
+<div class="block">Create an instance of <a href="org/glassfish/tyrus/core/wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Application</code></a></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html#createClassIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">createClassIterator(Class&lt;T&gt;, String, ClassLoader, boolean)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.DefaultServiceIteratorProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html#createClassIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">createClassIterator(Class&lt;T&gt;, String, ClassLoader, boolean)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a></dt>
+<dd>
+<div class="block">Iterate over provider classes of a service.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#createClient()">createClient()</a></span> - Static method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client"><code>ClientManager</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ComponentProviderService.html#createClient()">createClient()</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></dt>
+<dd>
+<div class="block">Create new instance of <a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core"><code>ComponentProviderService</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#createClient(java.lang.String)">createClient(String)</a></span> - Static method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="block">Create new ClientManager instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#createClient(java.lang.String,javax.websocket.WebSocketContainer)">createClient(String, WebSocketContainer)</a></span> - Static method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="block">Create new ClientManager instance on top of provided <a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#createClient(javax.websocket.WebSocketContainer)">createClient(WebSocketContainer)</a></span> - Static method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="block">Create new ClientManager instance on top of provided <a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Handshake.html#createClientHandshake(org.glassfish.tyrus.core.RequestContext)">createClientHandshake(RequestContext)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></dt>
+<dd>
+<div class="block">Client-side handshake.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html#createConnection()">createConnection()</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/spi/Connection.html" title="interface in org.glassfish.tyrus.spi"><code>Connection</code></a> when <a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html#getUpgradeStatus()"><code>ClientEngine.ClientUpgradeInfo.getUpgradeStatus()</code></a> returns <a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html#SUCCESS"><code>ClientEngine.ClientUpgradeStatus.SUCCESS</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">createConnection(Writer, Connection.CloseListener)</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></dt>
+<dd>
+<div class="block">Creates a connection if the upgrade is successful.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#createConnectionId()">createConnectionId()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Create connection id.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html#createContainer(java.util.Map)">createContainer(Map&lt;String, Object&gt;)</a></span> - Method in class org.glassfish.tyrus.container.grizzly.server.<a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server">GrizzlyServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ServerContainerFactory.html#createContainer(java.util.Map)">createContainer(Map&lt;String, Object&gt;)</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">ServerContainerFactory</a></dt>
+<dd>
+<div class="block">Create container delegate method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html#createEndpoint()">createEndpoint()</a></span> - Method in class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html" title="class in org.glassfish.tyrus.core.wsadl.model">ObjectFactory</a></dt>
+<dd>
+<div class="block">Create an instance of <a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Endpoint</code></a></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Version.html#createHandler(boolean,org.glassfish.tyrus.core.MaskingKeyGenerator)">createHandler(boolean, MaskingKeyGenerator)</a></span> - Method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Version.html" title="enum in org.glassfish.tyrus.core">Version</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html#createIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">createIterator(Class&lt;T&gt;, String, ClassLoader, boolean)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.DefaultServiceIteratorProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html#createIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">createIterator(Class&lt;T&gt;, String, ClassLoader, boolean)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a></dt>
+<dd>
+<div class="block">Iterate over provider instances of a service.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ServerContainerFactory.html#createServerContainer()">createServerContainer()</a></span> - Static method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">ServerContainerFactory</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a> with default configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ServerContainerFactory.html#createServerContainer(java.util.Map)">createServerContainer(Map&lt;String, Object&gt;)</a></span> - Static method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">ServerContainerFactory</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a> with configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html#createSessionForRemoteEndpoint(org.glassfish.tyrus.core.TyrusWebSocket,java.lang.String,java.util.List,org.glassfish.tyrus.core.DebugContext)">createSessionForRemoteEndpoint(TyrusWebSocket, String, List&lt;Extension&gt;, DebugContext)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></dt>
+<dd>
+<div class="block">Creates a Session based on the <a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a>, subprotocols and extensions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#createSessionId()">createSessionId()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Create session id.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#createSSLContext()">createSSLContext()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Create <code>SSLContext</code> from current configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#createSSLEngine(java.lang.String)">createSSLEngine(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Create and configure <code>SSLEngine</code>, based on current settings.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/TyrusClientEngine.html#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)">createUpgradeRequest(ClientEngine.TimeoutHandler)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">TyrusClientEngine</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientEngine.html#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)">createUpgradeRequest(ClientEngine.TimeoutHandler)</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></dt>
+<dd>
+<div class="block">Create upgrade request and register <a href="org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.TimeoutHandler</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#createURI(java.lang.String...)">createURI(String...)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Create a URI by substituting any template variables
+ for corresponding template values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#createURI(java.lang.String%5B%5D,int,int)">createURI(String[], int, int)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Create a URI by substituting any template variables
+ for corresponding template values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#createURI(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Object%5B%5D,boolean,boolean)">createURI(String, String, String, String, String, String, String, String, Object[], boolean, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Construct a URI from the component parts each of which may contain
+ template variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#createURI(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.Map,boolean,boolean)">createURI(String, String, String, String, String, String, String, String, Map&lt;String, ?&gt;, boolean, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Construct a URI from the component parts each of which may contain
+ template variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#createURI(java.util.Map)">createURI(Map&lt;String, String&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Create a URI by substituting any template variables
+ for corresponding template values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#createURIWithStringValues(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String%5B%5D,boolean,boolean)">createURIWithStringValues(String, String, String, String, String, String, String, String, String[], boolean, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Construct a URI from the component parts each of which may contain
+ template variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#createURIWithStringValues(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.Map,boolean,boolean)">createURIWithStringValues(String, String, String, String, String, String, String, String, Map&lt;String, ?&gt;, boolean, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Construct a URI from the component parts each of which may contain
+ template variables.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/auth/Credentials.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">Credentials</span></a> - Class in <a href="org/glassfish/tyrus/client/auth/package-summary.html">org.glassfish.tyrus.client.auth</a></dt>
+<dd>
+<div class="block">Credentials can be used when configuring authentication properties used during client handshake.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/Credentials.html#%3Cinit%3E(java.lang.String,byte%5B%5D)">Credentials(String, byte[])</a></span> - Constructor for class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a></dt>
+<dd>
+<div class="block">Create new credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/Credentials.html#%3Cinit%3E(java.lang.String,java.lang.String)">Credentials(String, String)</a></span> - Constructor for class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a></dt>
+<dd>
+<div class="block">Create new credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#CREDENTIALS">CREDENTIALS</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">Authentication credentials.</div>
+</dd>
+</dl>
+<a id="I:D">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#DATA_UNEXPECTED_LENGTH(java.lang.Object,java.lang.Object)">DATA_UNEXPECTED_LENGTH(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Data read ({0}) is not the expected size ({1}).</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">DebugContext</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">A <code>Logger</code> wrapper that gives logging records a common formatting and temporarily stores log
+ records and postpones their logging until they can be provided with a session ID.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.html#%3Cinit%3E()">DebugContext()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></dt>
+<dd>
+<div class="block">Constructor that configures tracing to be OFF.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.html#%3Cinit%3E(org.glassfish.tyrus.core.DebugContext.TracingThreshold)">DebugContext(DebugContext.TracingThreshold)</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></dt>
+<dd>
+<div class="block">Constructor that configures tracing to be ON and accepts tracing threshold as a parameter.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">DebugContext.TracingThreshold</span></a> - Enum in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Tracing threshold - used for configuration granularity of information that will be sent in tracing headers.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">DebugContext.TracingType</span></a> - Enum in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Type of tracing - used for tracing configuration.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/DebugContext.Type.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">DebugContext.Type</span></a> - Enum in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Type of the record - used to graphically distinguish these message types in the log.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html#declaringClass">declaringClass</a></span> - Variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Decoder.BinaryStream.html#decode(java.io.InputStream)">decode(InputStream)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a></dt>
+<dd>
+<div class="block">Decode the given bytes read from the input stream into an object of type T.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Decoder.TextStream.html#decode(java.io.Reader)">decode(Reader)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a></dt>
+<dd>
+<div class="block">Reads the websocket message from the implementation provided
+ Reader and decodes it into an instance of the supplied object type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Decoder.Text.html#decode(java.lang.String)">decode(String)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a></dt>
+<dd>
+<div class="block">Decode the given String into an object of type T.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/NoOpTextCoder.html#decode(java.lang.String)">decode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html#decode(java.lang.String)">decode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html#decode(java.lang.String)">decode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html#decode(java.lang.String)">decode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html#decode(java.lang.String)">decode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html#decode(java.lang.String)">decode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html#decode(java.lang.String)">decode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html#decode(java.lang.String)">decode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html#decode(java.lang.String)">decode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/ReaderDecoder.html#decode(java.lang.String)">decode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">ReaderDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#decode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">decode(String, UriComponent.Type)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Decodes characters of a string that are percent-encoded octets using
+ UTF-8 decoding (if needed).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Decoder.Binary.html#decode(java.nio.ByteBuffer)">decode(ByteBuffer)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a></dt>
+<dd>
+<div class="block">Decode the given bytes into an object of type T.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/InputStreamDecoder.html#decode(java.nio.ByteBuffer)">decode(ByteBuffer)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">InputStreamDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html#decode(java.nio.ByteBuffer)">decode(ByteBuffer)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html#decode(java.nio.ByteBuffer)">decode(ByteBuffer)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="javax/websocket/DecodeException.html" title="class in javax.websocket"><span class="typeNameLink">DecodeException</span></a> - Exception in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">A general exception that occurs when trying to decode a custom object from a text or binary message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/DecodeException.html#%3Cinit%3E(java.lang.String,java.lang.String)">DecodeException(String, String)</a></span> - Constructor for exception javax.websocket.<a href="javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></dt>
+<dd>
+<div class="block">Constructs a DecodedException with the given encoded string that cannot
+ be decoded, and reason why.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/DecodeException.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.Throwable)">DecodeException(String, String, Throwable)</a></span> - Constructor for exception javax.websocket.<a href="javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></dt>
+<dd>
+<div class="block">Constructor with the text data that could not be decoded, and the reason 
+ why it failed to be, and the cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/DecodeException.html#%3Cinit%3E(java.nio.ByteBuffer,java.lang.String)">DecodeException(ByteBuffer, String)</a></span> - Constructor for exception javax.websocket.<a href="javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></dt>
+<dd>
+<div class="block">Constructs a DecodedException with the given ByteBuffer that cannot
+ be decoded, and reason why.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/DecodeException.html#%3Cinit%3E(java.nio.ByteBuffer,java.lang.String,java.lang.Throwable)">DecodeException(ByteBuffer, String, Throwable)</a></span> - Constructor for exception javax.websocket.<a href="javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></dt>
+<dd>
+<div class="block">Constructor with the binary data that could not be decoded, and the 
+ reason why it failed to be, and the cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#decodeMatrix(java.lang.String,boolean)">decodeMatrix(String, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Decode the matrix component of a URI path segment.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#decodePath(java.lang.String,boolean)">decodePath(String, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Decode the path component of a URI as path segments.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#decodePath(java.net.URI,boolean)">decodePath(URI, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Decode the path component of a URI as path segments.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#decodePathSegment(java.util.List,java.lang.String,boolean)">decodePathSegment(List&lt;PathSegment&gt;, String, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Decode the path segment and add it to the list of path segments.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#decodeQuery(java.lang.String,boolean)">decodeQuery(String, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Decode the query component of a URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#decodeQuery(java.lang.String,boolean,boolean)">decodeQuery(String, boolean, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Decode the query component of a URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#decodeQuery(java.net.URI,boolean)">decodeQuery(URI, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Decode the query component of a URI.</div>
+</dd>
+<dt><a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">The Decoder interface holds member interfaces that define how a developer can provide
+ the web socket container a way web socket messages into developer defined custom objects.</div>
+</dd>
+<dt><a href="javax/websocket/Decoder.Binary.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder.Binary</span></a>&lt;<a href="javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt; - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This interface defines how a custom object (of type T) is decoded from a web socket message in
+ the form of a byte buffer.</div>
+</dd>
+<dt><a href="javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder.BinaryStream</span></a>&lt;<a href="javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt; - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This interface defines how a custom object is decoded from a web socket message in
+ the form of a binary stream.</div>
+</dd>
+<dt><a href="javax/websocket/Decoder.Text.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder.Text</span></a>&lt;<a href="javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt; - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This interface defines how a custom object is decoded from a web socket message in
+ the form of a string.</div>
+</dd>
+<dt><a href="javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder.TextStream</span></a>&lt;<a href="javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt; - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This interface defines how a custom object of type T is decoded from a web socket message in
+ the form of a character stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpoint.html#decoders()">decoders()</a></span> - Method in annotation type javax.websocket.<a href="javax/websocket/ClientEndpoint.html" title="annotation in javax.websocket">ClientEndpoint</a></dt>
+<dd>
+<div class="block">The array of Java classes that are to act as Decoders for messages coming into
+ the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpoint.html#decoders()">decoders()</a></span> - Method in annotation type javax.websocket.server.<a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server">ServerEndpoint</a></dt>
+<dd>
+<div class="block">The ordered array of decoder classes this endpoint will use.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpointConfig.Builder.html#decoders(java.util.List)">decoders(List&lt;Class&lt;? extends Decoder&gt;&gt;)</a></span> - Method in class javax.websocket.<a href="javax/websocket/ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Assign the list of decoder implementation classes the client will use.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.Builder.html#decoders(java.util.List)">decoders(List&lt;Class&lt;? extends Decoder&gt;&gt;)</a></span> - Method in class javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Sets the decoder implementation classes to use in the configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html#decoders(java.util.List)">decoders(List&lt;Class&lt;? extends Decoder&gt;&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Sets the decoder implementation classes to use in the configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#DEFAULT_CONFIG">DEFAULT_CONFIG</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Default SSL configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/TyrusClientEngine.html#DEFAULT_INCOMING_BUFFER_SIZE">DEFAULT_INCOMING_BUFFER_SIZE</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">TyrusClientEngine</a></dt>
+<dd>
+<div class="block">Default incoming buffer size for client container.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">DefaultComponentProvider</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Provides instances using reflection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DefaultComponentProvider.html#%3Cinit%3E()">DefaultComponentProvider()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core">DefaultComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#defaultConfig()">defaultConfig()</a></span> - Static method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Create new client thread pool configuration instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html#%3Cinit%3E()">DefaultServiceIteratorProvider()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.DefaultServiceIteratorProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#DEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR(java.lang.Object,java.lang.Object,java.lang.Object)">DEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">{0}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object,java.lang.Object)">DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">A dependent class, {0}, of the class {1} implementing the provider {2} is not found.</div>
+</dd>
+<dt><a href="javax/websocket/DeploymentException.html" title="class in javax.websocket"><span class="typeNameLink">DeploymentException</span></a> - Exception in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">Checked exception indicating some kind of failure either to publish
+ an endpoint on its server, or a failure to connect a client to its server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/DeploymentException.html#%3Cinit%3E(java.lang.String)">DeploymentException(String)</a></span> - Constructor for exception javax.websocket.<a href="javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></dt>
+<dd>
+<div class="block">Creates a deployment exception with the given reason for the deployment
+ failure.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/DeploymentException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">DeploymentException(String, Throwable)</a></span> - Constructor for exception javax.websocket.<a href="javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></dt>
+<dd>
+<div class="block">Creates a deployment exception with the given reason for the deployment
+ failure and wrapped cause of the failure.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Decoder.html#destroy()">destroy()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></dt>
+<dd>
+<div class="block">This method is called when the decoder is about to be removed
+ from service in order that any resources the encoder used may 
+ be closed gracefully.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Encoder.html#destroy()">destroy()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></dt>
+<dd>
+<div class="block">This method is called when the encoder is about to be removed
+ from service in order that any resources the encoder used may 
+ be closed gracefully.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/CoderAdapter.html#destroy()">destroy()</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></dt>
+<dd>
+<div class="block">This method does nothing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html#destroy()">destroy()</a></span> - Method in class org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ComponentProvider.html#destroy(java.lang.Object)">destroy(Object)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></dt>
+<dd>
+<div class="block">Destroys the given managed instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DefaultComponentProvider.html#destroy(java.lang.Object)">destroy(Object)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core">DefaultComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html#destroy(java.lang.Object)">destroy(Object)</a></span> - Method in class org.glassfish.tyrus.gf.cdi.<a href="org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi">CdiComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html#destroy(java.lang.Object)">destroy(Object)</a></span> - Method in class org.glassfish.tyrus.gf.ejb.<a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb">EjbComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html#destroy(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">destroy(ExtendedExtension.ExtensionContext)</a></span> - Method in interface org.glassfish.tyrus.core.extension.<a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension</a></dt>
+<dd>
+<div class="block">Context lifecycle method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#destroyDistributedUserProperties(java.lang.String)">destroyDistributedUserProperties(String)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Destroy map which holds distributed user properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html#disableProvidedBasicAuth()">disableProvidedBasicAuth()</a></span> - Method in class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></dt>
+<dd>
+<div class="block">Disable provided Basic <a href="org/glassfish/tyrus/client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html#disableProvidedDigestAuth()">disableProvidedDigestAuth()</a></span> - Method in class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></dt>
+<dd>
+<div class="block">Disable provided Digest <a href="org/glassfish/tyrus/client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">DistributedSession</span></a> - Interface in <a href="org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></dt>
+<dd>
+<div class="block">Extended <a href="javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a> which adds distributed properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html#doEncode(javax.websocket.Session,java.lang.Object)">doEncode(Session, Object)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#doneDeployment()">doneDeployment()</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>
+<div class="block">Container is no longer required to accept <a href="org/glassfish/tyrus/server/TyrusServerContainer.html#addEndpoint(javax.websocket.server.ServerEndpointConfig)"><code>TyrusServerContainer.addEndpoint(javax.websocket.server.ServerEndpointConfig)</code></a> and
+ <a href="org/glassfish/tyrus/server/TyrusServerContainer.html#addEndpoint(java.lang.Class)"><code>TyrusServerContainer.addEndpoint(Class)</code></a> calls.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html#%3Cinit%3E()">DoubleDecoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Version.html#DRAFT17">DRAFT17</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Version.html" title="enum in org.glassfish.tyrus.core">Version</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a id="I:E">
+<!--   -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/collection/Values.html#eager(org.glassfish.tyrus.core.collection.Value)">eager(Value&lt;T&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.collection.<a href="org/glassfish/tyrus/core/collection/Values.html" title="class in org.glassfish.tyrus.core.collection">Values</a></dt>
+<dd>
+<div class="block">Get a new eagerly initialized <a href="org/glassfish/tyrus/core/collection/Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb"><span class="typeNameLink">EjbComponentProvider</span></a> - Class in <a href="org/glassfish/tyrus/gf/ejb/package-summary.html">org.glassfish.tyrus.gf.ejb</a></dt>
+<dd>
+<div class="block">Provides the instance for the supported EJB classes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html#%3Cinit%3E()">EjbComponentProvider()</a></span> - Constructor for class org.glassfish.tyrus.gf.ejb.<a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb">EjbComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/collection/Values.html#empty()">empty()</a></span> - Static method in class org.glassfish.tyrus.core.collection.<a href="org/glassfish/tyrus/core/collection/Values.html" title="class in org.glassfish.tyrus.core.collection">Values</a></dt>
+<dd>
+<div class="block">Get an empty <a href="org/glassfish/tyrus/core/collection/Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a> whose <a href="org/glassfish/tyrus/core/collection/Value.html#get()"><code>get()</code></a>
+ method always returns <code>null</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#EMPTY">EMPTY</a></span> - Static variable in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>
+<div class="block">The empty pattern that matches the null or empty string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#EMPTY">EMPTY</a></span> - Static variable in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">The empty URI template that matches the <code>null</code> or empty URI path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html#EMPTY_PATTERN">EMPTY_PATTERN</a></span> - Static variable in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></dt>
+<dd>
+<div class="block">Empty path pattern matching only empty string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#ENABLE_TRACING_HEADER">ENABLE_TRACING_HEADER</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">If this header is present in the handshake request and the tracing type is configured to "ON_DEMAND", tracing
+ headers will be sent in the handshake response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#enabledCipherSuites">enabledCipherSuites</a></span> - Variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">The list of cipher suites.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#enabledProtocols">enabledProtocols</a></span> - Variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">The list of protocols.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html#encode(byte%5B%5D)">encode(byte[])</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/ToStringEncoder.html#encode(java.lang.Object)">encode(Object)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder">ToStringEncoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/NoOpTextCoder.html#encode(java.lang.String)">encode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#encode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">encode(String, UriComponent.Type)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Encodes the characters of string that are either non-ASCII characters
+ or are ASCII characters that must be percent-encoded using the
+ UTF-8 encoding.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#encode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">encode(String, UriComponent.Type, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Encodes the characters of string that are either non-ASCII characters
+ or are ASCII characters that must be percent-encoded using the
+ UTF-8 encoding.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html#encode(java.nio.ByteBuffer)">encode(ByteBuffer)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Encoder.Binary.html#encode(T)">encode(T)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a></dt>
+<dd>
+<div class="block">Encode the given object into a byte array.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Encoder.Text.html#encode(T)">encode(T)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a></dt>
+<dd>
+<div class="block">Encode the given object into a String.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Encoder.BinaryStream.html#encode(T,java.io.OutputStream)">encode(T, OutputStream)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a></dt>
+<dd>
+<div class="block">Encode the given object into a binary stream written to the
+ implementation provided OutputStream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Encoder.TextStream.html#encode(T,java.io.Writer)">encode(T, Writer)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a></dt>
+<dd>
+<div class="block">Encode the given object to a character stream writing it
+ to the supplied Writer.</div>
+</dd>
+<dt><a href="javax/websocket/EncodeException.html" title="class in javax.websocket"><span class="typeNameLink">EncodeException</span></a> - Exception in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">A general exception that occurs when trying to encode a custom object to a string or binary message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/EncodeException.html#%3Cinit%3E(java.lang.Object,java.lang.String)">EncodeException(Object, String)</a></span> - Constructor for exception javax.websocket.<a href="javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></dt>
+<dd>
+<div class="block">Constructor with the object being encoded, and the reason why it failed to be.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/EncodeException.html#%3Cinit%3E(java.lang.Object,java.lang.String,java.lang.Throwable)">EncodeException(Object, String, Throwable)</a></span> - Constructor for exception javax.websocket.<a href="javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></dt>
+<dd>
+<div class="block">Constructor with the object being encoded, and the reason why it failed to be, and the cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html#encodeLiteralCharacters(java.lang.String)">encodeLiteralCharacters(String)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></dt>
+<dd>
+<div class="block">Encode literal characters of a template.</div>
+</dd>
+<dt><a href="javax/websocket/Encoder.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">The Encoder interface defines how developers can provide a way to convert
+ their custom objects into web socket messages.</div>
+</dd>
+<dt><a href="javax/websocket/Encoder.Binary.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder.Binary</span></a>&lt;<a href="javax/websocket/Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&gt; - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a binary message.</div>
+</dd>
+<dt><a href="javax/websocket/Encoder.BinaryStream.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder.BinaryStream</span></a>&lt;<a href="javax/websocket/Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&gt; - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This interface may be implemented by encoding algorithms
+ that want to write the encoded object to a binary stream.</div>
+</dd>
+<dt><a href="javax/websocket/Encoder.Text.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder.Text</span></a>&lt;<a href="javax/websocket/Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&gt; - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a text message.</div>
+</dd>
+<dt><a href="javax/websocket/Encoder.TextStream.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder.TextStream</span></a>&lt;<a href="javax/websocket/Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&gt; - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This interface may be implemented by encoding algorithms
+ that want to write the encoded object to a character stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpoint.html#encoders()">encoders()</a></span> - Method in annotation type javax.websocket.<a href="javax/websocket/ClientEndpoint.html" title="annotation in javax.websocket">ClientEndpoint</a></dt>
+<dd>
+<div class="block">The array of Java classes that are to act as Encoders for messages sent by the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpoint.html#encoders()">encoders()</a></span> - Method in annotation type javax.websocket.server.<a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server">ServerEndpoint</a></dt>
+<dd>
+<div class="block">The ordered array of encoder classes this endpoint will use.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpointConfig.Builder.html#encoders(java.util.List)">encoders(List&lt;Class&lt;? extends Encoder&gt;&gt;)</a></span> - Method in class javax.websocket.<a href="javax/websocket/ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Assign the list of encoder implementation classes the client will use.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.Builder.html#encoders(java.util.List)">encoders(List&lt;Class&lt;? extends Encoder&gt;&gt;)</a></span> - Method in class javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Sets the list of encoder implementation classes for this builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html#encoders(java.util.List)">encoders(List&lt;Class&lt;? extends Encoder&gt;&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Sets the list of encoder implementation classes for this builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#encodeTemplateNames(java.lang.String)">encodeTemplateNames(String)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Encodes a string with template parameters names present, specifically the
+ characters '{' and '}' will be percent-encoded.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ENCODING_FAILED()">ENCODING_FAILED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Encoding failed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html#END_OF_PATH_PATTERN">END_OF_PATH_PATTERN</a></span> - Static variable in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></dt>
+<dd>
+<div class="block">Path pattern matching the end of a URI path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/Application.html#endpoint">endpoint</a></span> - Variable in class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="javax/websocket/Endpoint.html" title="class in javax.websocket"><span class="typeNameLink">Endpoint</span></a> - Class in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">The Web Socket Endpoint represents an object that can handle websocket conversations.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model"><span class="typeNameLink">Endpoint</span></a> - Class in <a href="org/glassfish/tyrus/core/wsadl/model/package-summary.html">org.glassfish.tyrus.core.wsadl.model</a></dt>
+<dd>
+<div class="block">Java class for anonymous complex type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Endpoint.html#%3Cinit%3E()">Endpoint()</a></span> - Constructor for class javax.websocket.<a href="javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html#%3Cinit%3E()">Endpoint()</a></span> - Constructor for class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ENDPOINT_ANNOTATION_NOT_FOUND(java.lang.Object,java.lang.Object)">ENDPOINT_ANNOTATION_NOT_FOUND(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">{0} annotation not found on class {1}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ENDPOINT_EXCEPTION_FROM_ON_ERROR(java.lang.Object)">ENDPOINT_EXCEPTION_FROM_ON_ERROR(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Exception thrown from onError method {0}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">ENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG(Object, Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">MaxMessageSize {0} on method {1} in endpoint {2} is larger than the container incoming buffer size {3}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ENDPOINT_MULTIPLE_METHODS(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">ENDPOINT_MULTIPLE_METHODS(Object, Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Multiple methods using {0} annotation in class {1}: {2} and {3}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ENDPOINT_MULTIPLE_SESSION_PARAM(java.lang.Object)">ENDPOINT_MULTIPLE_SESSION_PARAM(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Method {0} has got two or more Session parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ENDPOINT_UNHANDLED_EXCEPTION(java.lang.Object)">ENDPOINT_UNHANDLED_EXCEPTION(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Unhandled exception in endpoint {0}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ENDPOINT_UNKNOWN_PARAMS(java.lang.Object,java.lang.Object,java.lang.Object)">ENDPOINT_UNKNOWN_PARAMS(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Unknown parameter(s) for {0}.{1} method annotated with @OnError annotation: {2}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ENDPOINT_WRONG_PARAMS(java.lang.Object,java.lang.Object)">ENDPOINT_WRONG_PARAMS(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Method: {0}.{1}: has got wrong number of params.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ENDPOINT_WRONG_PATH_PARAM(java.lang.Object,java.lang.Object)">ENDPOINT_WRONG_PATH_PARAM(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Method: {0}: {1} is not allowed type for @PathParameter.</div>
+</dd>
+<dt><a href="javax/websocket/EndpointConfig.html" title="interface in javax.websocket"><span class="typeNameLink">EndpointConfig</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">The endpoint configuration contains all the information needed during the handshake process
+ for this end point.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><span class="typeNameLink">EndpointEventListener</span></a> - Interface in <a href="org/glassfish/tyrus/core/monitoring/package-summary.html">org.glassfish.tyrus.core.monitoring</a></dt>
+<dd>
+<div class="block">Listens to endpoint-level events that are interesting for monitoring.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#endsWithSlash()">endsWithSlash()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Check if the URI template ends in a slash (<code>'/'</code>).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#entrySet()">entrySet()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusExtension.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Equality is calculated from the String of the regular expression
+ generated from the templates.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">equalsIgnoreValueOrder(MultivaluedMap&lt;K, V&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html#equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">equalsIgnoreValueOrder(MultivaluedMap&lt;K, V&gt;)</a></span> - Method in interface org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Compare the specified map with this map for equality modulo the order
+ of values for each key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#EQUIVALENT_PATHS(java.lang.Object,java.lang.Object)">EQUIVALENT_PATHS(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Found equivalent paths.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/StrictUtf8.Parser.html#error()">error()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/StrictUtf8.Parser.html" title="class in org.glassfish.tyrus.core">StrictUtf8.Parser</a></dt>
+<dd>
+<div class="block">If the previous parse operation detected an error, return the object describing that error.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">ERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Error caught while loading SPI providers.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/ErrorCollector.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ErrorCollector</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Used to collect deployment errors to present these to the user together.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ErrorCollector.html#%3Cinit%3E()">ErrorCollector()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html#evaluate()">evaluate()</a></span> - Method in interface org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">BaseContainer.ShutDownCondition</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#EXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">EXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Exception caught while loading SPI providers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html#execute()">execute()</a></span> - Method in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Task</a></dt>
+<dd>
+<div class="block">To be overridden.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ExecutorServiceProvider</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ExecutorServiceProvider.html#%3Cinit%3E()">ExecutorServiceProvider()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension"><span class="typeNameLink">ExtendedExtension</span></a> - Interface in <a href="org/glassfish/tyrus/core/extension/package-summary.html">org.glassfish.tyrus.core.extension</a></dt>
+<dd>
+<div class="block">WebSocket <a href="javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension"><span class="typeNameLink">ExtendedExtension.ExtensionContext</span></a> - Interface in <a href="org/glassfish/tyrus/core/extension/package-summary.html">org.glassfish.tyrus.core.extension</a></dt>
+<dd>
+<div class="block">Context present as a parameter in all <a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension"><code>ExtendedExtension</code></a> methods.</div>
+</dd>
+<dt><a href="javax/websocket/Extension.html" title="interface in javax.websocket"><span class="typeNameLink">Extension</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">A simple representation of a websocket extension as a name and map of extension parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#EXTENSION_EXCEPTION(java.lang.Object,java.lang.Object)">EXTENSION_EXCEPTION(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Extension ''{0}'' threw an exception during processOutgoing method invocation: "{1}".</div>
+</dd>
+<dt><a href="javax/websocket/Extension.Parameter.html" title="interface in javax.websocket"><span class="typeNameLink">Extension.Parameter</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This member interface defines a single websocket extension parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpointConfig.Builder.html#extensions(java.util.List)">extensions(List&lt;Extension&gt;)</a></span> - Method in class javax.websocket.<a href="javax/websocket/ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Set the extensions for the configuration this builder will build.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.Builder.html#extensions(java.util.List)">extensions(List&lt;Extension&gt;)</a></span> - Method in class javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Sets the extensions to use in the configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html#extensions(java.util.List)">extensions(List&lt;Extension&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Sets the extensions to use in the configuration.</div>
+</dd>
+</dl>
+<a id="I:F">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/CompletionHandler.html#failed(java.lang.Throwable)">failed(Throwable)</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a></dt>
+<dd>
+<div class="block">The operation was failed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html#fin(boolean)">fin(boolean)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></dt>
+<dd>
+<div class="block">Set FIN flag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.html#find(java.lang.Class)">find(Class&lt;T&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a></dt>
+<dd>
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the context class loader.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.html#find(java.lang.Class,boolean)">find(Class&lt;T&gt;, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a></dt>
+<dd>
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the context class loader.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.html#find(java.lang.Class,java.lang.ClassLoader)">find(Class&lt;T&gt;, ClassLoader)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a></dt>
+<dd>
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the given class loader.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.html#find(java.lang.Class,java.lang.ClassLoader,boolean)">find(Class&lt;T&gt;, ClassLoader, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a></dt>
+<dd>
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the given class loader.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.html#find(java.lang.String)">find(String)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a></dt>
+<dd>
+<div class="block">Locates and incrementally instantiates the available classes of a given
+ service file using the context class loader.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#findMethodOnClass(java.lang.Class,java.lang.reflect.Method)">findMethodOnClass(Class, Method)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Find a method on a class given an existing method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html#%3Cinit%3E()">FloatDecoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.html#flush()">flush()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></dt>
+<dd>
+<div class="block">Write pending messages to the log.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.html#flushBatch()">flushBatch()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></dt>
+<dd>
+<div class="block">This method is only used when batching is allowed for this RemoteEndpint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html#flushBatch()">flushBatch()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">TyrusRemoteEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#FRAGMENT">FRAGMENT</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">The URI fragment component type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#FRAGMENT_INVALID_OPCODE()">FRAGMENT_INVALID_OPCODE()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Fragment sent but opcode was not 0.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">Frame</span></a> - Class in <a href="org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a></dt>
+<dd>
+<div class="block">WebSocket frame representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">Frame(Frame)</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>
+<div class="block">Copy constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html#FRAME_BUFFER_SIZE">FRAME_BUFFER_SIZE</a></span> - Static variable in class org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#FRAME_WRITE_CANCELLED()">FRAME_WRITE_CANCELLED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Frame writing was canceled.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">Frame.Builder</span></a> - Class in <a href="org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a></dt>
+<dd>
+<div class="block">Frame builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html#fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener)">fromClass(Class&lt;?&gt;, ComponentProviderService, boolean, int, ErrorCollector, EndpointEventListener)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></dt>
+<dd>
+<div class="block">Create <a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html#fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.util.Set)">fromClass(Class&lt;?&gt;, ComponentProviderService, boolean, int, ErrorCollector, EndpointEventListener, Set&lt;Extension&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></dt>
+<dd>
+<div class="block">Create <a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/MessageHandlerManager.html#fromDecoderClasses(java.util.List)">fromDecoderClasses(List&lt;Class&lt;? extends Decoder&gt;&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></dt>
+<dd>
+<div class="block">Construct manager.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusExtension.html#fromHeaders(java.util.List)">fromHeaders(List&lt;String&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></dt>
+<dd>
+<div class="block">Parse <a href="javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a> from headers (represented as <code>List</code> of strings).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html#fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector)">fromInstance(Object, ComponentProviderService, boolean, int, ErrorCollector)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></dt>
+<dd>
+<div class="block">Create <a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html#fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,java.util.Set)">fromInstance(Object, ComponentProviderService, boolean, int, ErrorCollector, Set&lt;Extension&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></dt>
+<dd>
+<div class="block">Create <a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusExtension.html#fromString(java.util.List)">fromString(List&lt;String&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></dt>
+<dd>
+<div class="block">Parsing of one <a href="javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#fullRelativeUri(java.net.URI)">fullRelativeUri(URI)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Return the <code>Request-Uri</code> representation as defined by HTTP spec.</div>
+</dd>
+</dl>
+<a id="I:G">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/Authenticator.html#generateAuthorizationHeader(java.net.URI,java.lang.String,org.glassfish.tyrus.client.auth.Credentials)">generateAuthorizationHeader(URI, String, Credentials)</a></span> - Method in class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a></dt>
+<dd>
+<div class="block">Generate value used as "<a href="org/glassfish/tyrus/spi/UpgradeRequest.html#AUTHORIZATION">"Authorization"</a>" header value for next request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html#genericInterface">genericInterface</a></span> - Variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/collection/Value.html#get()">get()</a></span> - Method in interface org.glassfish.tyrus.core.collection.<a href="org/glassfish/tyrus/core/collection/Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a></dt>
+<dd>
+<div class="block">Get the stored value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusFuture.html#get()">get()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusFuture.html" title="class in org.glassfish.tyrus.core">TyrusFuture</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusFuture.html#get(long,java.util.concurrent.TimeUnit)">get(long, TimeUnit)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusFuture.html" title="class in org.glassfish.tyrus.core">TyrusFuture</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#get(java.lang.Object)">get(Object)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/Match.html#getAllMatches(java.lang.String,java.util.Set,org.glassfish.tyrus.core.DebugContext)">getAllMatches(String, Set&lt;TyrusEndpointWrapper&gt;, DebugContext)</a></span> - Static method in class org.glassfish.tyrus.core.uri.<a href="org/glassfish/tyrus/core/uri/Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a></dt>
+<dd>
+<div class="block">Return a list of all endpoints with path matching the request path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getAllSessions()">getAllSessions()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>
+<div class="block">Get set of all sessions opened to the same endpoint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerApplicationConfig.html#getAnnotatedEndpointClasses(java.util.Set)">getAnnotatedEndpointClasses(Set&lt;Class&lt;?&gt;&gt;)</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a></dt>
+<dd>
+<div class="block">Return a set of annotated endpoint classes that the server container
+ must deploy.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html#getAnnotatedEndpointClasses(java.util.Set)">getAnnotatedEndpointClasses(Set&lt;Class&lt;?&gt;&gt;)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server">TyrusServerConfiguration</a></dt>
+<dd>
+<div class="block">Gets all the classes annotated with <a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a> annotation which should be deployed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/Application.html#getAny()">getAny()</a></span> - Method in class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></dt>
+<dd>
+<div class="block">Gets the value of the any property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/PongMessage.html#getApplicationData()">getApplicationData()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/PongMessage.html" title="interface in javax.websocket">PongMessage</a></dt>
+<dd>
+<div class="block">The application data inside the pong message from the peer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#getApplicationEventListener()">getApplicationEventListener()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>
+<div class="block">Get <a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><code>ApplicationEventListener</code></a> related to current <a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/Localizable.html#getArguments()">getArguments()</a></span> - Method in interface org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></dt>
+<dd>
+<div class="block">Returns the arguments for message formatting.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizableMessage.html#getArguments()">getArguments()</a></span> - Method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getArrayClass(java.lang.Class)">getArrayClass(Class)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get Array class of component class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getAsyncRemote()">getAsyncRemote()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return a reference a RemoteEndpoint object representing the peer of this conversation
+ that is able to send messages asynchronously to the peer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getAsyncRemote()">getAsyncRemote()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get a reference a <a href="javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket"><code>RemoteEndpoint.Async</code></a> object representing the peer of this conversation
+ that is able to send messages asynchronously to the peer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getAsyncRemote()">getAsyncRemote()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/AuthConfig.html#getAuthenticators()">getAuthenticators()</a></span> - Method in class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a></dt>
+<dd>
+<div class="block">Get an unmodifiable map of authenticators, where case insensitive authentication scheme to <a href="org/glassfish/tyrus/client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getBasicRemote()">getBasicRemote()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return a reference a RemoteEndpoint object representing the peer of this conversation
+ that is able to send messages synchronously to the peer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getBasicRemote()">getBasicRemote()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get a reference a <a href="javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket"><code>RemoteEndpoint.Basic</code></a> object representing the peer of this conversation
+ that is able to send messages synchronously to the peer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getBasicRemote()">getBasicRemote()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.html#getBatchingAllowed()">getBatchingAllowed()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></dt>
+<dd>
+<div class="block">Return whether the implementation is allowed to batch outgoing messages
+ before sending.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html#getBatchingAllowed()">getBatchingAllowed()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">TyrusRemoteEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/DecodeException.html#getBytes()">getBytes()</a></span> - Method in exception javax.websocket.<a href="javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></dt>
+<dd>
+<div class="block">Return the ByteBuffer containing either the whole message, or the partial message, that
+ could not be decoded, or <code>null</code> if
+ this exception arose from a failure to decode a text message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getClass(java.lang.Class,java.lang.Class)">getClass(Class, Class)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Find the declaring class that implements or extends an interface.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getClassType(java.lang.Class,java.lang.Class)">getClassType(Class&lt;?&gt;, Class&lt;?&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Find a type of the class given it's Superclass.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#getClientManager()">getClientManager()</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>
+<div class="block">Can be overridden to provide own <a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client"><code>ClientManager</code></a> implementation or instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.html#getCloseCode()">getCloseCode()</a></span> - Method in class javax.websocket.<a href="javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a></dt>
+<dd>
+<div class="block">The Close code associated with this CloseReason.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#getCloseCode(int)">getCloseCode(int)</a></span> - Static method in enum javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">Creates a CloseCode from the given int code number.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/Connection.html#getCloseListener()">getCloseListener()</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></dt>
+<dd>
+<div class="block">Returns the same close listener that is passed for creating connection in
+ <a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>WebSocketEngine.UpgradeInfo.createConnection(Writer, CloseListener)</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#getCloseReason()">getCloseReason()</a></span> - Method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">Get close reason.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/CloseFrame.html#getCloseReason()">getCloseReason()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a></dt>
+<dd>
+<div class="block">Get close reason.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolException.html#getCloseReason()">getCloseReason()</a></span> - Method in exception org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolException.html" title="class in org.glassfish.tyrus.core">ProtocolException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utf8DecodingException.html#getCloseReason()">getCloseReason()</a></span> - Method in exception org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utf8DecodingException.html" title="class in org.glassfish.tyrus.core">Utf8DecodingException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/WebSocketException.html#getCloseReason()">getCloseReason()</a></span> - Method in exception org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a></dt>
+<dd>
+<div class="block">Get close reason.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCode.html#getCode()">getCode()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></dt>
+<dd>
+<div class="block">Returns the code number, for example the integer '1000' for normal closure.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#getCode()">getCode()</a></span> - Method in enum javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">Return the code number of this status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/CoderWrapper.html#getCoder()">getCoder()</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a></dt>
+<dd>
+<div class="block">Get coder instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/CoderWrapper.html#getCoderClass()">getCoderClass()</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a></dt>
+<dd>
+<div class="block">Get coder class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ComponentProviderService.html#getCoderInstance(java.lang.Class,javax.websocket.Session,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ErrorCollector)">getCoderInstance(Class&lt;T&gt;, Session, EndpointConfig, ErrorCollector)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></dt>
+<dd>
+<div class="block">Provide an instance of <a href="javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> or <a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> descendant which is
+ coupled to <a href="javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpointConfig.html#getConfigurator()">getConfigurator()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></dt>
+<dd>
+<div class="block">Return the custom configurator for this configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.html#getConfigurator()">getConfigurator()</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></dt>
+<dd>
+<div class="block">Return the <a href="javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Configurator</code></a> this configuration
+ is using.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ContainerProvider.html#getContainer()">getContainer()</a></span> - Method in class javax.websocket.<a href="javax/websocket/ContainerProvider.html" title="class in javax.websocket">ContainerProvider</a></dt>
+<dd>
+<div class="block">Load the container implementation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getContainer()">getContainer()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return the container that this session is part of.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html#getContainer()">getContainer()</a></span> - Method in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyContainerProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getContainer()">getContainer()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">This method is not supported on <a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getContainer()">getContainer()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getContextClassLoaderPA()">getContextClassLoaderPA()</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get privileged action to obtain context class loader.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#getCorePoolSize()">getCorePoolSize()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Get the core thread pool size - the size of the thread pool will never bee smaller than this.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getDeclaringClass(java.lang.reflect.AccessibleObject)">getDeclaringClass(AccessibleObject)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get declaring class of provided field, method or constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/EndpointConfig.html#getDecoders()">getDecoders()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></dt>
+<dd>
+<div class="block">Return the Decoder implementation classes configured.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/WebSocketContainer.html#getDefaultAsyncSendTimeout()">getDefaultAsyncSendTimeout()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></dt>
+<dd>
+<div class="block">Return the number of milliseconds the implementation will timeout
+ attempting to send a websocket message for all RemoteEndpoints associated
+ with this container.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#getDefaultAsyncSendTimeout()">getDefaultAsyncSendTimeout()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#getDefaultAsyncSendTimeout()">getDefaultAsyncSendTimeout()</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/WebSocketContainer.html#getDefaultMaxBinaryMessageBufferSize()">getDefaultMaxBinaryMessageBufferSize()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></dt>
+<dd>
+<div class="block">Returns the default maximum size of incoming binary message that this container
+ will buffer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#getDefaultMaxBinaryMessageBufferSize()">getDefaultMaxBinaryMessageBufferSize()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#getDefaultMaxBinaryMessageBufferSize()">getDefaultMaxBinaryMessageBufferSize()</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/WebSocketContainer.html#getDefaultMaxSessionIdleTimeout()">getDefaultMaxSessionIdleTimeout()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></dt>
+<dd>
+<div class="block">Return the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#getDefaultMaxSessionIdleTimeout()">getDefaultMaxSessionIdleTimeout()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#getDefaultMaxSessionIdleTimeout()">getDefaultMaxSessionIdleTimeout()</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/WebSocketContainer.html#getDefaultMaxTextMessageBufferSize()">getDefaultMaxTextMessageBufferSize()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></dt>
+<dd>
+<div class="block">Returns the default maximum size of incoming text message that this container
+ will buffer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#getDefaultMaxTextMessageBufferSize()">getDefaultMaxTextMessageBufferSize()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#getDefaultMaxTextMessageBufferSize()">getDefaultMaxTextMessageBufferSize()</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html#getDelay()">getDelay()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client">ClientManager.ReconnectHandler</a></dt>
+<dd>
+<div class="block">Get reconnect delay.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/RetryAfterException.html#getDelay()">getDelay()</a></span> - Method in exception org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/RetryAfterException.html" title="class in org.glassfish.tyrus.client">RetryAfterException</a></dt>
+<dd>
+<div class="block">Get a delay specified in <a href="org/glassfish/tyrus/spi/UpgradeResponse.html#RETRY_AFTER">"Retry-After"</a> response header in seconds.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/DistributedSession.html#getDistributedProperties()">getDistributedProperties()</a></span> - Method in interface org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></dt>
+<dd>
+<div class="block">Get distributed properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getDistributedProperties()">getDistributedProperties()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getDistributedProperties()">getDistributedProperties()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#getDistributedSessionProperties(java.lang.String)">getDistributedSessionProperties(String)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Get the map containing session properties to be shared among nodes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#getDistributedUserProperties(java.lang.String)">getDistributedUserProperties(String)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Get the map containing session user properties to be shared among nodes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#getEnabledCipherSuites()">getEnabledCipherSuites()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Get enabled cipher suites.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#getEnabledProtocols()">getEnabledProtocols()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Get enabled protocols.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/EndpointConfig.html#getEncoders()">getEncoders()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></dt>
+<dd>
+<div class="block">Return the Encoder implementation classes configured.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/Application.html#getEndpoint()">getEndpoint()</a></span> - Method in class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></dt>
+<dd>
+<div class="block">Gets the value of the endpoint property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.html#getEndpointClass()">getEndpointClass()</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></dt>
+<dd>
+<div class="block">Returns the Class of the endpoint this configuration is configuring.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html#getEndpointConfig()">getEndpointConfig()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html#getEndpointConfig()">getEndpointConfig()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></dt>
+<dd>
+<div class="block">Get Endpoint configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerApplicationConfig.html#getEndpointConfigs(java.util.Set)">getEndpointConfigs(Set&lt;Class&lt;? extends Endpoint&gt;&gt;)</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a></dt>
+<dd>
+<div class="block">Return a set of ServerEndpointConfig instances that the server container
+ will use to deploy the programmatic endpoints.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html#getEndpointConfigs(java.util.Set)">getEndpointConfigs(Set&lt;Class&lt;? extends Endpoint&gt;&gt;)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server">TyrusServerConfiguration</a></dt>
+<dd>
+<div class="block">Gets all the <a href="javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> classes which should be deployed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.Configurator.html#getEndpointInstance(java.lang.Class)">getEndpointInstance(Class&lt;T&gt;)</a></span> - Method in class javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></dt>
+<dd>
+<div class="block">This method is called by the container each time a new client
+ connects to the logical endpoint this configurator configures.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ComponentProviderService.html#getEndpointInstance(java.lang.Class)">getEndpointInstance(Class&lt;T&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></dt>
+<dd>
+<div class="block">This method is called by the container each time a new client
+ connects to the logical endpoint this configurator configures.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html#getEndpointInstance(java.lang.Class)">getEndpointInstance(Class&lt;T&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html#getEndpointPath()">getEndpointPath()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></dt>
+<dd>
+<div class="block">Server-side; Get Endpoint absolute path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/Match.html#getEndpointWrapper()">getEndpointWrapper()</a></span> - Method in class org.glassfish.tyrus.core.uri.<a href="org/glassfish/tyrus/core/uri/Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a></dt>
+<dd>
+<div class="block">Get endpoint wrapper.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/SendResult.html#getException()">getException()</a></span> - Method in class javax.websocket.<a href="javax/websocket/SendResult.html" title="class in javax.websocket">SendResult</a></dt>
+<dd>
+<div class="block">The problem sending the message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/BaseContainer.html#getExecutorService()">getExecutorService()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></dt>
+<dd>
+<div class="block">Returns a container-managed <code>ExecutorService</code> registered under
+ <code>java:comp/DefaultManagedExecutorService</code> or if the lookup has failed, it returns a
+ <code>ExecutorService</code> created and managed by this instance of
+ <a href="org/glassfish/tyrus/core/BaseContainer.html" title="class in org.glassfish.tyrus.core"><code>BaseContainer</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ExecutorServiceProvider.html#getExecutorService()">getExecutorService()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a></dt>
+<dd>
+<div class="block">Get the <code>ExecutorService</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpointConfig.html#getExtensions()">getExtensions()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></dt>
+<dd>
+<div class="block">Return the extensions, in order of preference, favorite first, that this client would
+ like to use for its sessions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.html#getExtensions()">getExtensions()</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></dt>
+<dd>
+<div class="block">Return the websocket extensions configured.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html#getFirst(java.lang.String,A)">getFirst(String, A)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html#getFirst(java.lang.String,java.lang.Class)">getFirst(String, Class&lt;A&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#getFirst(K)">getFirst(K)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html#getFirst(K)">getFirst(K)</a></span> - Method in interface org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a></dt>
+<dd>
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeResponse.html#getFirstHeaderValue(java.lang.String)">getFirstHeaderValue(String)</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></dt>
+<dd>
+<div class="block">Gets the value of the response header with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.html#getFrameType()">getFrameType()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></dt>
+<dd>
+<div class="block">Returns the type of the frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getFromStringStringMethod(java.lang.Class)">getFromStringStringMethod(Class)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get the static fromString(String ) method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getGenericClass(java.lang.reflect.Type)">getGenericClass(Type)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get the class that is the type argument of a parameterized type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html#getGroupCounts()">getGroupCounts()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></dt>
+<dd>
+<div class="block">Get the capturing group counts for each template variable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#getGroupIndexes()">getGroupIndexes()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>
+<div class="block">Get the group indexes to capturing groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html#getGroupIndexes()">getGroupIndexes()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></dt>
+<dd>
+<div class="block">Get the group indexes to capturing groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.html#getHeader(java.lang.String)">getHeader(String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></dt>
+<dd>
+<div class="block">Returns the header value corresponding to the name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#getHeader(java.lang.String)">getHeader(String)</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">Returns the value of the specified request header name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#getHeaderFromList(java.util.List)">getHeaderFromList(List&lt;T&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Creates single <code>String</code> value from provided List by calling <code>Object.toString()</code> on each item
+ and separating existing ones with <code>", "</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#getHeaderFromList(java.util.List,org.glassfish.tyrus.core.Utils.Stringifier)">getHeaderFromList(List&lt;T&gt;, Utils.Stringifier&lt;T&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Convert list of values to singe <code>String</code> usable as HTTP header value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/HandshakeResponse.html#getHeaders()">getHeaders()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></dt>
+<dd>
+<div class="block">Return the list of Http headers sent by the web socket server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/HandshakeRequest.html#getHeaders()">getHeaders()</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></dt>
+<dd>
+<div class="block">Return the read only Map of Http Headers that came with the handshake request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.html#getHeaders()">getHeaders()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></dt>
+<dd>
+<div class="block">Get headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html#getHeaders()">getHeaders()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">TyrusUpgradeResponse</a></dt>
+<dd>
+<div class="block">Get HTTP headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getHeartbeatInterval()">getHeartbeatInterval()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>
+<div class="block">Return an interval in milliseconds between scheduled periodic Pong messages.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#getHostnameVerifier()">getHostnameVerifier()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Get custom hostname verifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/HandshakeRequest.html#getHttpSession()">getHttpSession()</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></dt>
+<dd>
+<div class="block">Return a reference to the HttpSession that the web socket handshake that 
+ started this conversation was part of, if the implementation
+ is part of a Java EE web container.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.html#getHttpSession()">getHttpSession()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/HandshakeException.html#getHttpStatusCode()">getHttpStatusCode()</a></span> - Method in exception org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></dt>
+<dd>
+<div class="block">Get the error code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getId()">getId()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Returns a string containing the unique identifier assigned to this session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getId()">getId()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get a string containing the unique identifier assigned to this session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getId()">getId()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html#getId()">getId()</a></span> - Method in class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></dt>
+<dd>
+<div class="block">Gets the value of the id property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#getInitialClassLoader()">getInitialClassLoader()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Get the class loader (if any) to be initially exposed by threads from this pool.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/WebSocketContainer.html#getInstalledExtensions()">getInstalledExtensions()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></dt>
+<dd>
+<div class="block">Return the set of Extensions installed in the container.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#getInstalledExtensions()">getInstalledExtensions()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#getInstalledExtensions()">getInstalledExtensions()</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/OsgiRegistry.html#getInstance()">getInstance()</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></dt>
+<dd>
+<div class="block">Returns an <code>OsgiRegistry</code> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getInstance(java.lang.Class)">getInstance(Class&lt;T&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Creates an instance of <code>Class</code> c using <code>Class.newInstance()</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ComponentProviderService.html#getInstance(java.lang.Class,javax.websocket.Session,org.glassfish.tyrus.core.ErrorCollector)">getInstance(Class&lt;T&gt;, Session, ErrorCollector)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></dt>
+<dd>
+<div class="block">Provide an instance of class which is coupled to <a href="javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getInstance(java.lang.Class,org.glassfish.tyrus.core.ErrorCollector)">getInstance(Class&lt;T&gt;, ErrorCollector)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Creates an instance of <code>Class</code> c using <code>Class.newInstance()</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ComponentProvider.html#getInvocableMethod(java.lang.reflect.Method)">getInvocableMethod(Method)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></dt>
+<dd>
+<div class="block">Get the method which should be invoked instead provided one.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ComponentProviderService.html#getInvocableMethod(java.lang.reflect.Method)">getInvocableMethod(Method)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DefaultComponentProvider.html#getInvocableMethod(java.lang.reflect.Method)">getInvocableMethod(Method)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core">DefaultComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html#getInvocableMethod(java.lang.reflect.Method)">getInvocableMethod(Method)</a></span> - Method in class org.glassfish.tyrus.gf.ejb.<a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb">EjbComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#getKeepAliveTime(java.util.concurrent.TimeUnit)">getKeepAliveTime(TimeUnit)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Get the max period of time a thread will wait for a new task to process.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/Localizable.html#getKey()">getKey()</a></span> - Method in interface org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></dt>
+<dd>
+<div class="block">Gets the key in the resource bundle.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizableMessage.html#getKey()">getKey()</a></span> - Method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/Localizer.html#getLocale()">getLocale()</a></span> - Method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/Localizer.html" title="class in org.glassfish.tyrus.core.l10n">Localizer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#getMaskingKey()">getMaskingKey()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>
+<div class="block">Get masking key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathSegment.html#getMatrixParameters()">getMatrixParameters()</a></span> - Method in interface org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a></dt>
+<dd>
+<div class="block">Get a map of the matrix parameters associated with the path segment.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getMaxBinaryMessageBufferSize()">getMaxBinaryMessageBufferSize()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">The maximum length of incoming binary messages that this Session can buffer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getMaxBinaryMessageBufferSize()">getMaxBinaryMessageBufferSize()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get the maximum length of incoming binary messages that this Session can buffer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getMaxBinaryMessageBufferSize()">getMaxBinaryMessageBufferSize()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getMaxIdleTimeout()">getMaxIdleTimeout()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return the number of milliseconds before this conversation may be closed by the
+ container if it is inactive, i.e.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getMaxIdleTimeout()">getMaxIdleTimeout()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get the number of milliseconds before this conversation may be closed by the
+ container if it is inactive, i.e.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getMaxIdleTimeout()">getMaxIdleTimeout()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#getMaxPoolSize()">getMaxPoolSize()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Get max thread pool size.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.html#getMaxSessions()">getMaxSessions()</a></span> - Method in interface org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a></dt>
+<dd>
+<div class="block">Returns configured maximal number of open sessions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getMaxTextMessageBufferSize()">getMaxTextMessageBufferSize()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">The maximum length of incoming text messages that this Session can buffer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getMaxTextMessageBufferSize()">getMaxTextMessageBufferSize()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get the maximum length of incoming text messages that this Session can buffer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getMaxTextMessageBufferSize()">getMaxTextMessageBufferSize()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html#getMessage(java.lang.String,java.lang.Object...)">getMessage(String, Object...)</a></span> - Method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessageFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getMessageHandlers()">getMessageHandlers()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return an unmodifiable copy of the set of MessageHandlers for this Session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getMessageHandlers()">getMessageHandlers()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">This method is not supported on <a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/MessageHandlerManager.html#getMessageHandlers()">getMessageHandlers()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></dt>
+<dd>
+<div class="block">Get all successfully registered <a href="javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a>s.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getMessageHandlers()">getMessageHandlers()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.html#getMessageType()">getMessageType()</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Extension.html#getName()">getName()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a></dt>
+<dd>
+<div class="block">The name of the extension.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Extension.Parameter.html#getName()">getName()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></dt>
+<dd>
+<div class="block">Return the name of the extension parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusExtension.html#getName()">getName()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html#getName()">getName()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core">TyrusExtension.TyrusParameter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html#getNames()">getNames()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></dt>
+<dd>
+<div class="block">Get the list of template names.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html#getNameToPattern()">getNameToPattern()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></dt>
+<dd>
+<div class="block">Get the map of template names to patterns.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getNegotiatedExtensions()">getNegotiatedExtensions()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return the list of extensions currently in use for this conversation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getNegotiatedExtensions()">getNegotiatedExtensions()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get the list of extensions currently in use for this conversation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getNegotiatedExtensions()">getNegotiatedExtensions()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.Configurator.html#getNegotiatedExtensions(java.util.List,java.util.List)">getNegotiatedExtensions(List&lt;Extension&gt;, List&lt;Extension&gt;)</a></span> - Method in class javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></dt>
+<dd>
+<div class="block">Return the ordered list of extensions that t server endpoint will support 
+ given the requested extension list passed in, the empty list if none.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html#getNegotiatedExtensions(java.util.List,java.util.List)">getNegotiatedExtensions(List&lt;Extension&gt;, List&lt;Extension&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getNegotiatedSubprotocol()">getNegotiatedSubprotocol()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return the sub protocol agreed during the websocket handshake for this conversation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getNegotiatedSubprotocol()">getNegotiatedSubprotocol()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get the sub protocol agreed during the websocket handshake for this conversation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getNegotiatedSubprotocol()">getNegotiatedSubprotocol()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.Configurator.html#getNegotiatedSubprotocol(java.util.List,java.util.List)">getNegotiatedSubprotocol(List&lt;String&gt;, List&lt;String&gt;)</a></span> - Method in class javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></dt>
+<dd>
+<div class="block">Return the subprotocol the server endpoint has chosen from the requested
+ list supplied by a client who wishes to connect, or none if there wasn't one
+ this server endpoint liked.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html#getNegotiatedSubprotocol(java.util.List,java.util.List)">getNegotiatedSubprotocol(List&lt;String&gt;, List&lt;String&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html#getNormalizedTemplate()">getNormalizedTemplate()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></dt>
+<dd>
+<div class="block">Get the normalized template.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#getNumberOfExplicitCharacters()">getNumberOfExplicitCharacters()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Get the number of characters in the regular expression not resulting
+ from conversion of template variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#getNumberOfExplicitRegexes()">getNumberOfExplicitRegexes()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Get the number of explicit regular expressions declared in the template variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html#getNumberOfExplicitRegexes()">getNumberOfExplicitRegexes()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></dt>
+<dd>
+<div class="block">Get the number of explicit regular expressions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html#getNumberOfLiteralCharacters()">getNumberOfLiteralCharacters()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></dt>
+<dd>
+<div class="block">Get the number of literal characters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#getNumberOfRegexGroups()">getNumberOfRegexGroups()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Get the number of regular expression groups</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html#getNumberOfRegexGroups()">getNumberOfRegexGroups()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></dt>
+<dd>
+<div class="block">Get the number of regular expression groups</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#getNumberOfTemplateVariables()">getNumberOfTemplateVariables()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Get the number of template variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/EncodeException.html#getObject()">getObject()</a></span> - Method in exception javax.websocket.<a href="javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></dt>
+<dd>
+<div class="block">Return the Object that could not be encoded.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#getOpcode()">getOpcode()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>
+<div class="block">Get opcode.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getOpenSessions()">getOpenSessions()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return a copy of the Set of all the open web socket sessions that represent
+ connections to the same endpoint to which this session represents a connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getOpenSessions()">getOpenSessions()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">This method is not supported on <a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getOpenSessions()">getOpenSessions()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/MessageHandlerManager.html#getOrderedWholeMessageHandlers()">getOrderedWholeMessageHandlers()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getOsgiRegistryInstance()">getOsgiRegistryInstance()</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Returns an <a href="org/glassfish/tyrus/core/OsgiRegistry.html" title="class in org.glassfish.tyrus.core"><code>OsgiRegistry</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html#getOtherAttributes()">getOtherAttributes()</a></span> - Method in class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></dt>
+<dd>
+<div class="block">Gets a map that contains attributes that aren't bound to any typed property on this class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/OsgiRegistry.html#getPackageResources(java.lang.String,java.lang.ClassLoader)">getPackageResources(String, ClassLoader)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getParameterizedClassArguments(org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair)">getParameterizedClassArguments(ReflectionHelper.DeclaringClassInterfacePair)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get the parameterized class arguments for a declaring class that declares a generic interface type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getParameterizedTypeArguments(org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair)">getParameterizedTypeArguments(ReflectionHelper.DeclaringClassInterfacePair)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get the parameterized type arguments for a declaring class that declares a generic interface type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/HandshakeRequest.html#getParameterMap()">getParameterMap()</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></dt>
+<dd>
+<div class="block">Return the request parameters associated with the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.html#getParameterMap()">getParameterMap()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Extension.html#getParameters()">getParameters()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a></dt>
+<dd>
+<div class="block">The extension parameters for this extension in the order
+ they appear in the http headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusExtension.html#getParameters()">getParameters()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/Match.html#getParameters()">getParameters()</a></span> - Method in class org.glassfish.tyrus.core.uri.<a href="org/glassfish/tyrus/core/uri/Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a></dt>
+<dd>
+<div class="block">Get map of parameter names-value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/Credentials.html#getPassword()">getPassword()</a></span> - Method in class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a></dt>
+<dd>
+<div class="block">Get the password as byte array.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.html#getPath()">getPath()</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></dt>
+<dd>
+<div class="block">Return the path for this endpoint configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathSegment.html#getPath()">getPath()</a></span> - Method in interface org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a></dt>
+<dd>
+<div class="block">Get the path segment.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html#getPath()">getPath()</a></span> - Method in class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></dt>
+<dd>
+<div class="block">Gets the value of the path property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getPathParameters()">getPathParameters()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return a map of the path parameter names and values used associated with the
+ request this session was opened under.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getPathParameters()">getPathParameters()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get a map of the path parameter names and values used associated with the
+ request this session was opened under.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getPathParameters()">getPathParameters()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#getPattern()">getPattern()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Get the URI pattern.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html#getPattern()">getPattern()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></dt>
+<dd>
+<div class="block">Get the pattern.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#getPayloadData()">getPayloadData()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>
+<div class="block">Get payload data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#getPayloadLength()">getPayloadLength()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>
+<div class="block">Get payload length.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#getPoolName()">getPoolName()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Return thread pool name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/Server.html#getPort()">getPort()</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server">Server</a></dt>
+<dd>
+<div class="block">Get the port which was used to start the container.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#getPort()">getPort()</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>
+<div class="block">Get port of the started container.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpointConfig.html#getPreferredSubprotocols()">getPreferredSubprotocols()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></dt>
+<dd>
+<div class="block">Return the ordered list of sub protocols a client endpoint would like to use,
+ in order of preference, favorite first that this client would
+ like to use for its sessions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#getPriority()">getPriority()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Get priority of the threads in thread pool.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#getProperties()">getProperties()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="block">Container properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html#getProperties()">getProperties()</a></span> - Method in interface org.glassfish.tyrus.core.extension.<a href="org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a></dt>
+<dd>
+<div class="block">Mutable, not synchronised property map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#getProperty(java.util.Map,java.lang.String,java.lang.Class)">getProperty(Map&lt;String, Object&gt;, String, Class&lt;T&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Get typed property from generic property map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#getProperty(java.util.Map,java.lang.String,java.lang.Class,T)">getProperty(Map&lt;String, Object&gt;, String, Class&lt;T&gt;, T)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Get typed property from generic property map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getProtocolVersion()">getProtocolVersion()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Returns the version of the websocket protocol currently being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getProtocolVersion()">getProtocolVersion()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get the version of the websocket protocol currently being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getProtocolVersion()">getProtocolVersion()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/HandshakeRequest.html#getQueryString()">getQueryString()</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></dt>
+<dd>
+<div class="block">Return the query string associated with the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getQueryString()">getQueryString()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return the query string associated with the request this session
+ was opened under.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getQueryString()">getQueryString()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get the query string associated with the request this session
+ was opened under.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.html#getQueryString()">getQueryString()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getQueryString()">getQueryString()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#getQueue()">getQueue()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Return a queue that will be used to temporarily store tasks when all threads in the thread pool are busy.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#getQueueLimit()">getQueueLimit()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Get the limit of the queue, where tasks are temporarily stored when all threads are busy.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/Connection.html#getReadHandler()">getReadHandler()</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></dt>
+<dd>
+<div class="block">Returns a read handler.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.html#getReasonPhrase()">getReasonPhrase()</a></span> - Method in class javax.websocket.<a href="javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a></dt>
+<dd>
+<div class="block">The reason phrase associated with this CloseReason.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html#getReasonPhrase()">getReasonPhrase()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">TyrusUpgradeResponse</a></dt>
+<dd>
+<div class="block">Get HTTP reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#getRegex()">getRegex()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>
+<div class="block">Get the regular expression.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TextFrame.html#getRemainder()">getRemainder()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></dt>
+<dd>
+<div class="block">Remainder after UTF-8 decoding.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#getRemainingArray(java.nio.ByteBuffer)">getRemainingArray(ByteBuffer)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Creates the array of bytes containing the bytes from the position to the limit of the <code>ByteBuffer</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.html#getRemoteAddr()">getRemoteAddr()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></dt>
+<dd>
+<div class="block">Get the Internet Protocol (IP) address of the client or last proxy that sent the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getRemoteAddr()">getRemoteAddr()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>
+<div class="block">Get the Internet Protocol (IP) address of the client or last proxy that sent the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.html#getRemoteEndpointType()">getRemoteEndpointType()</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#getRemoteSessionIds(java.lang.String)">getRemoteSessionIds(String)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Get set containing session ids of all remote sessions registered to given endpoint path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getRemoteSessions()">getRemoteSessions()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>
+<div class="block">Get set of remote sessions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Handshake.html#getRequest()">getRequest()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></dt>
+<dd>
+<div class="block">Client side only - get the <a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeRequest</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getRequestParameterMap()">getRequestParameterMap()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return the request parameters associated with the request this session
+ was opened under.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getRequestParameterMap()">getRequestParameterMap()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get the request parameters associated with the request this session
+ was opened under.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getRequestParameterMap()">getRequestParameterMap()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.html#getRequestUri()">getRequestUri()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#getRequestUri()">getRequestUri()</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">Get the undecoded request uri (up to the query string) of underlying
+ HTTP handshake request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/HandshakeRequest.html#getRequestURI()">getRequestURI()</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></dt>
+<dd>
+<div class="block">Return the request URI of the handshake request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getRequestURI()">getRequestURI()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return the URI under which this session was opened, including
+ the query string if there is one.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getRequestURI()">getRequestURI()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get the <code>URI</code> under which this session was opened, including
+ the query string if there is one.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.html#getRequestURI()">getRequestURI()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getRequestURI()">getRequestURI()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/OsgiRegistry.html#getResourceBundle(java.lang.String)">getResourceBundle(String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></dt>
+<dd>
+<div class="block">Tries to load resource bundle via OSGi means.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/Localizable.html#getResourceBundleName()">getResourceBundleName()</a></span> - Method in interface org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></dt>
+<dd>
+<div class="block">Get the name of the localization messages resource bundle.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizableMessage.html#getResourceBundleName()">getResourceBundleName()</a></span> - Method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/BaseContainer.html#getScheduledExecutorService()">getScheduledExecutorService()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></dt>
+<dd>
+<div class="block">Returns a container-managed <code>ScheduledExecutorService</code> registered under
+ <code>java:comp/DefaultManagedScheduledExecutorService</code> or if the lookup has failed it returns a
+ <code>ScheduledExecutorService</code> created and managed by this instance of
+ <a href="org/glassfish/tyrus/core/BaseContainer.html" title="class in org.glassfish.tyrus.core"><code>BaseContainer</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ExecutorServiceProvider.html#getScheduledExecutorService()">getScheduledExecutorService()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a></dt>
+<dd>
+<div class="block">Get the <code>ScheduledExecutorService</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Basic.html#getSendStream()">getSendStream()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></dt>
+<dd>
+<div class="block">Opens an output stream on which a binary message may be sent.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Async.html#getSendTimeout()">getSendTimeout()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></dt>
+<dd>
+<div class="block">Return the number of milliseconds the implementation will timeout
+ attempting to send a websocket message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Basic.html#getSendWriter()">getSendWriter()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></dt>
+<dd>
+<div class="block">Opens an character stream on which a text message may be sent.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/SessionException.html#getSession()">getSession()</a></span> - Method in exception javax.websocket.<a href="javax/websocket/SessionException.html" title="class in javax.websocket">SessionException</a></dt>
+<dd>
+<div class="block">Return the Session on which the problem occurred.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#getSslContext()">getSslContext()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Create <code>SSLContext</code> and store it for further invocation of this method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html#getStatus()">getStatus()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">TyrusUpgradeResponse</a></dt>
+<dd>
+<div class="block">Get HTTP status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeResponse.html#getStatus()">getStatus()</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></dt>
+<dd>
+<div class="block">Get the current HTTP status code of this response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html#getStatus()">getStatus()</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></dt>
+<dd>
+<div class="block">Returns the status of HTTP request upgrade.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getStringConstructor(java.lang.Class)">getStringConstructor(Class)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get the constructor that has a single parameter of String.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#getStringList(java.util.List,org.glassfish.tyrus.core.Utils.Stringifier)">getStringList(List&lt;T&gt;, Utils.Stringifier&lt;T&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Get list of strings from List&lt;T&gt;.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.html#getSubprotocols()">getSubprotocols()</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></dt>
+<dd>
+<div class="block">Return the websocket subprotocols configured.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Version.html#getSupportedWireProtocolVersions()">getSupportedWireProtocolVersions()</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Version.html" title="enum in org.glassfish.tyrus.core">Version</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html#getTemplate()">getTemplate()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#getTemplate()">getTemplate()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Get the URI template as a String.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html#getTemplate()">getTemplate()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></dt>
+<dd>
+<div class="block">Get the template.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#getTemplateVariables()">getTemplateVariables()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Get the list of template variables for the template.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/DecodeException.html#getText()">getText()</a></span> - Method in exception javax.websocket.<a href="javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></dt>
+<dd>
+<div class="block">Return the encoded string that is either the whole message, or the partial 
+ message that could not be decoded, or <code>null</code> if
+ this exception arose from a failure to decode a binary message..</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TextFrame.html#getTextPayload()">getTextPayload()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></dt>
+<dd>
+<div class="block">Get text payload.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#getThreadFactory()">getThreadFactory()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Return <code>ThreadFactory</code> that will be used to create thread pool threads.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/TyrusClientEngine.html#getTimeoutHandler()">getTimeoutHandler()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">TyrusClientEngine</a></dt>
+<dd>
+<div class="block">Get <a href="org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.TimeoutHandler</code></a> associated with current <a href="org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.html#getTracingHeaders()">getTracingHeaders()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></dt>
+<dd>
+<div class="block">Get headers containing tracing messages.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/CoderWrapper.html#getType()">getType()</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a></dt>
+<dd>
+<div class="block">Get the return type of the encode / decode method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getTypeArgumentAndClass(java.lang.reflect.Type)">getTypeArgumentAndClass(Type)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html#getUpgradeStatus()">getUpgradeStatus()</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></dt>
+<dd>
+<div class="block">Get <a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/Credentials.html#getUsername()">getUsername()</a></span> - Method in class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a></dt>
+<dd>
+<div class="block">Get the username.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/HandshakeRequest.html#getUserPrincipal()">getUserPrincipal()</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></dt>
+<dd>
+<div class="block">Return the authenticated user or <code>null</code> if no user is authenticated 
+ for this handshake.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getUserPrincipal()">getUserPrincipal()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return the authenticated user for this Session or <code>null</code> if no user is authenticated for this session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getUserPrincipal()">getUserPrincipal()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get the authenticated user for this session or <code>null</code> if no user is authenticated for this session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.html#getUserPrincipal()">getUserPrincipal()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getUserPrincipal()">getUserPrincipal()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/EndpointConfig.html#getUserProperties()">getUserProperties()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></dt>
+<dd>
+<div class="block">This method returns a modifiable Map that the developer may use to store application
+ specific information relating to the endpoint that uses this
+ configuration instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#getUserProperties()">getUserProperties()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">While the session is open, this method returns a Map that the developer may
+ use to store application specific information relating to this session
+ instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#getUserProperties()">getUserProperties()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">This method is not supported on <a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#getUserProperties()">getUserProperties()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Extension.Parameter.html#getValue()">getValue()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></dt>
+<dd>
+<div class="block">Return the value of the extension parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html#getValue()">getValue()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core">TyrusExtension.TyrusParameter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#getValueOfStringMethod(java.lang.Class)">getValueOfStringMethod(Class)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Get the static valueOf(String ) method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#getValues(K)">getValues(K)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Return a non-null list of values for a given key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ContainerProvider.html#getWebSocketContainer()">getWebSocketContainer()</a></span> - Static method in class javax.websocket.<a href="javax/websocket/ContainerProvider.html" title="class in javax.websocket">ContainerProvider</a></dt>
+<dd>
+<div class="block">Obtain a new instance of a WebSocketContainer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ServerContainer.html#getWebSocketEngine()">getWebSocketEngine()</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></dt>
+<dd>
+<div class="block">Return WebSocketEngine to upgrade requests and setting up the connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/Connection.html#getWriter()">getWriter()</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></dt>
+<dd>
+<div class="block">Returns the same writer that is passed for creating connection in
+ <a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>WebSocketEngine.UpgradeInfo.createConnection(Writer, CloseListener)</code></a>
+ The transport writer that actually writes websocket data
+ to underlying connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#getWsadlApplication()">getWsadlApplication()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>
+<div class="block">Get <a href="org/glassfish/tyrus/core/wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Application</code></a> representing current set of deployed endpoints.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#getWsPort(java.net.URI)">getWsPort(URI)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Get port from provided <code>URI</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#getWsPort(java.net.URI,java.lang.String)">getWsPort(URI, String)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Get port from provided <code>URI</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#GOING_AWAY">GOING_AWAY</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1001 indicates that an endpoint is "going away", such as a server
+ going down or a browser having navigated away from a page.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#GOING_AWAY">GOING_AWAY</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1001 indicates that an endpoint is "going away", such as a server
+ going down or a browser having navigated away from a page.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyClientContainer</span></a> - Class in <a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html#%3Cinit%3E()">GrizzlyClientContainer()</a></span> - Constructor for class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyClientProperties</span></a> - Class in <a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></dt>
+<dd>
+<div class="block">Grizzly client properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html#%3Cinit%3E()">GrizzlyClientProperties()</a></span> - Constructor for class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientProperties</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyClientSocket</span></a> - Class in <a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></dt>
+<dd>
+<div class="block">Implementation of the WebSocket interface.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyContainerProvider</span></a> - Class in <a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html#%3Cinit%3E()">GrizzlyContainerProvider()</a></span> - Constructor for class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyContainerProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server"><span class="typeNameLink">GrizzlyServerContainer</span></a> - Class in <a href="org/glassfish/tyrus/container/grizzly/server/package-summary.html">org.glassfish.tyrus.container.grizzly.server</a></dt>
+<dd>
+<div class="block">Grizzly implementation of <a href="org/glassfish/tyrus/spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi"><code>ServerContainerFactory</code></a> and <a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html#%3Cinit%3E()">GrizzlyServerContainer()</a></span> - Constructor for class org.glassfish.tyrus.container.grizzly.server.<a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server">GrizzlyServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyWriter</span></a> - Class in <a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html#%3Cinit%3E(org.glassfish.grizzly.Connection)">GrizzlyWriter(Connection)</a></span> - Constructor for class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyWriter</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a id="I:H">
+<!--   -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ReadHandler.html#handle(java.nio.ByteBuffer)">handle(ByteBuffer)</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ReadHandler.html" title="interface in org.glassfish.tyrus.spi">ReadHandler</a></dt>
+<dd>
+<div class="block">A transport reads websocket data and invokes this method to handover
+ websocket data for a connection to tyrus runtime.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html#handleTimeout()">handleTimeout()</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a></dt>
+<dd>
+<div class="block">Invoked when timeout is reached.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#handshake(org.glassfish.tyrus.core.TyrusEndpointWrapper,org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">handshake(TyrusEndpointWrapper, UpgradeRequest, UpgradeResponse, ExtendedExtension.ExtensionContext)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="block">Server side handshake processing.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/Handshake.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">Handshake</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Class responsible for performing and validating handshake.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html#HANDSHAKE_FAILED">HANDSHAKE_FAILED</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></dt>
+<dd>
+<div class="block">Upgrade failed due to version, extensions, origin check etc.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#HANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP()">HANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Infinite HTTP Redirection loop detected.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#HANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION(java.lang.Object)">HANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Redirect attempts exceeded maximum allowed limit of ({0}) redirects.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR(java.lang.Object)">HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Invalid URI in Location header: "{0}".</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING()">HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Missing or empty Location header in 3xx HTTP Redirect response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#HANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(java.lang.Object)">HANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Received HTTP response status code: {0} and redirect processing is not enabled.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#HANDSHAKE_HTTP_RETRY_AFTER_MESSAGE()">HANDSHAKE_HTTP_RETRY_AFTER_MESSAGE()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">HTTP Status code 503 - Service Unavailable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#HANDSHAKE_TIMEOUT">HANDSHAKE_TIMEOUT</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#HANDSHAKE_TIMEOUT"><code>ClientProperties.HANDSHAKE_TIMEOUT</code></a>.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#HANDSHAKE_TIMEOUT">HANDSHAKE_TIMEOUT</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">Property usable in <a href="org/glassfish/tyrus/client/ClientManager.html#getProperties()"><code>ClientManager.getProperties()</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/HandshakeException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">HandshakeException</span></a> - Exception in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block"><code>Exception</code>, which describes the error, occurred during the handshake phase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/HandshakeException.html#%3Cinit%3E(int,java.lang.String)">HandshakeException(int, String)</a></span> - Constructor for exception org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/HandshakeException.html#%3Cinit%3E(java.lang.String)">HandshakeException(String)</a></span> - Constructor for exception org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></dt>
+<dd>
+<div class="block">Construct a HandshakeException.</div>
+</dd>
+<dt><a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server"><span class="typeNameLink">HandshakeRequest</span></a> - Interface in <a href="javax/websocket/server/package-summary.html">javax.websocket.server</a></dt>
+<dd>
+<div class="block">The handshake request represents the web socket defined Http GET request 
+ for the opening handshake of a web socket session.</div>
+</dd>
+<dt><a href="javax/websocket/HandshakeResponse.html" title="interface in javax.websocket"><span class="typeNameLink">HandshakeResponse</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">The handshake response represents the web socket-defined Http response
+ that is the response to the opening handshake request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#hasExtensions()">hasExtensions()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="block">Returns true when current connection has some negotiated extension.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#hashCode()">hashCode()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html#hashCode()">hashCode()</a></span> - Method in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusExtension.html#hashCode()">hashCode()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#hashCode()">hashCode()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#hashCode()">hashCode()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#hashCode()">hashCode()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Hash code is calculated from String of the regular expression
+ generated from the template.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#HEADERS_MISSING()">HEADERS_MISSING()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Missing headers required for WebSocket negotiation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/OsgiRegistry.html#hookUp()">hookUp()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></dt>
+<dd>
+<div class="block">Will hook up this instance with the OSGi runtime.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#HOST">HOST</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">The URI host component type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#HOST">HOST</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">HTTP "Host" header name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.Builder.html#httpSession(java.lang.Object)">httpSession(Object)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></dt>
+<dd>
+<div class="block">Set http session.</div>
+</dd>
+</dl>
+<a id="I:I">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html#id">id</a></span> - Variable in class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ILLEGAL_CONFIG_SYNTAX()">ILLEGAL_CONFIG_SYNTAX()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Illegal configuration-file syntax.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ILLEGAL_PROVIDER_CLASS_NAME(java.lang.Object)">ILLEGAL_PROVIDER_CLASS_NAME(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Illegal provider-class name: {0}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ILLEGAL_UTF_8_SEQUENCE()">ILLEGAL_UTF_8_SEQUENCE()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Illegal UTF-8 Sequence.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#INCOMING_BUFFER_SIZE">INCOMING_BUFFER_SIZE</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">Property name for maximal incoming buffer size.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#INCOMING_BUFFER_SIZE">INCOMING_BUFFER_SIZE</a></span> - Static variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>
+<div class="block">Maximum size of incoming buffer in bytes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientContainer.html#INCOMING_BUFFER_SIZE">INCOMING_BUFFER_SIZE</a></span> - Static variable in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <code>org.glassfish.tyrus.client.ClientProperties#INCOMING_BUFFER_SIZE</code>.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#incomingBufferSize(java.lang.Integer)">incomingBufferSize(Integer)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></dt>
+<dd>
+<div class="block">Set incoming buffer size.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html#init(javax.servlet.http.WebConnection)">init(WebConnection)</a></span> - Method in class org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init(EndpointConfig)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></dt>
+<dd>
+<div class="block">This method is called with the endpoint configuration object of the
+ endpoint this decoder is intended for when
+ it is about to be brought into service.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Encoder.html#init(javax.websocket.EndpointConfig)">init(EndpointConfig)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></dt>
+<dd>
+<div class="block">This method is called with the endpoint configuration object of the
+ endpoint this encoder is intended for when
+ it is about to be brought into service.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/CoderAdapter.html#init(javax.websocket.EndpointConfig)">init(EndpointConfig)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></dt>
+<dd>
+<div class="block">This method does nothing.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">InputStreamDecoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>
+<div class="block">Built in <a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>InputStream</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/InputStreamDecoder.html#%3Cinit%3E()">InputStreamDecoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">InputStreamDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html#%3Cinit%3E()">IntegerDecoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#INVALID_HEADER(java.lang.Object,java.lang.Object)">INVALID_HEADER(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Invalid {0} header value: "{1}".</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#INVALID_RESPONSE_CODE(java.lang.Object,java.lang.Object)">INVALID_RESPONSE_CODE(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Response code was not {0}: {1}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#IOEXCEPTION_CLOSE()">IOEXCEPTION_CLOSE()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">IOException thrown when closing connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ComponentProvider.html#isApplicable(java.lang.Class)">isApplicable(Class&lt;?&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></dt>
+<dd>
+<div class="block">Checks whether this component provider is able to provide an instance of given <code>Class</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DefaultComponentProvider.html#isApplicable(java.lang.Class)">isApplicable(Class&lt;?&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core">DefaultComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html#isApplicable(java.lang.Class)">isApplicable(Class&lt;?&gt;)</a></span> - Method in class org.glassfish.tyrus.gf.cdi.<a href="org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi">CdiComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html#isApplicable(java.lang.Class)">isApplicable(Class&lt;?&gt;)</a></span> - Method in class org.glassfish.tyrus.gf.ejb.<a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb">EjbComponentProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusFuture.html#isCancelled()">isCancelled()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusFuture.html" title="class in org.glassfish.tyrus.core">TyrusFuture</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#isCipherConfigured()">isCipherConfigured()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#isClientMode()">isClientMode()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Will <code>SSLEngine</code> be configured to work in client mode.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#isConnected()">isConnected()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Convenience method to determine if this <a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a> instance is connected.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#isControlFrame()">isControlFrame()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>
+<div class="block">Get information about frame type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#isDaemon()">isDaemon()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Return <code>true</code> if thread pool threads are daemons.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusFuture.html#isDone()">isDone()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusFuture.html" title="class in org.glassfish.tyrus.core">TyrusFuture</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ErrorCollector.html#isEmpty()">isEmpty()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a></dt>
+<dd>
+<div class="block">Checks whether any exception has been logged.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#isEmpty()">isEmpty()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/Match.html#isEquivalent(java.lang.String,java.lang.String)">isEquivalent(String, String)</a></span> - Static method in class org.glassfish.tyrus.core.uri.<a href="org/glassfish/tyrus/core/uri/Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a></dt>
+<dd>
+<div class="block">Check for equivalent paths.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#isFin()">isFin()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>
+<div class="block">Get FIN value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#isHexCharacter(char)">isHexCharacter(char)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Checks whether the character <code>c</code> is hexadecimal character.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#isHostVerificationEnabled()">isHostVerificationEnabled()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Get the hostname verification state.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/collection/LazyValue.html#isInitialized()">isInitialized()</a></span> - Method in interface org.glassfish.tyrus.core.collection.<a href="org/glassfish/tyrus/core/collection/LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">LazyValue</a></dt>
+<dd>
+<div class="block">Check if the lazy value has been initialized already (i.e.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/MessageHandlerManager.html#isInputStreamHandlerPresent()">isInputStreamHandlerPresent()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#isMask()">isMask()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>
+<div class="block">Currently not used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#isNeedClientAuth()">isNeedClientAuth()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Get "need client auth" property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/SendResult.html#isOK()">isOK()</a></span> - Method in class javax.websocket.<a href="javax/websocket/SendResult.html" title="class in javax.websocket">SendResult</a></dt>
+<dd>
+<div class="block">Determines if this result is ok or not.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#isOpen()">isOpen()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return true if and only if the underlying socket is open.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#isOpen()">isOpen()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get the information about session state.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#isOpen()">isOpen()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#isProtocolConfigured()">isProtocolConfigured()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/MessageHandlerManager.html#isReaderHandlerPresent()">isReaderHandlerPresent()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#isRsv1()">isRsv1()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>
+<div class="block">GET RSV1 value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#isRsv2()">isRsv2()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>
+<div class="block">GET RSV2 value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#isRsv3()">isRsv3()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>
+<div class="block">GET RSV3 value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#isSecure()">isSecure()</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Return true if and only if the underlying socket is using a secure transport.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#isSecure()">isSecure()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Get the information about secure transport.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.html#isSecure()">isSecure()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#isSecure()">isSecure()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#isSecure()">isSecure()</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">Indicates whether this request was made using a secure channel
+ (such as HTTPS).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#isSessionOpen(java.lang.String,java.lang.String)">isSessionOpen(String, String)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Get information about session state.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#isTemplateVariablePresent(java.lang.String)">isTemplateVariablePresent(String)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Ascertain if a template variable is a member of this
+ template.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/HandshakeRequest.html#isUserInRole(java.lang.String)">isUserInRole(String)</a></span> - Method in interface javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></dt>
+<dd>
+<div class="block">Checks whether the current user is in the given role.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html#isUserInRole(java.lang.String)">isUserInRole(String)</a></span> - Method in interface org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core">RequestContext.Builder.IsUserInRoleDelegate</a></dt>
+<dd>
+<div class="block">Returns a boolean indicating whether the authenticated user is included in the specified logical "role".</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.html#isUserInRole(java.lang.String)">isUserInRole(String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.Builder.html#isUserInRoleDelegate(org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate)">isUserInRoleDelegate(RequestContext.Builder.IsUserInRoleDelegate)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></dt>
+<dd>
+<div class="block">Set delegate for <a href="org/glassfish/tyrus/core/RequestContext.html#isUserInRole(java.lang.String)"><code>RequestContext.isUserInRole(String)</code></a> method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html#isValid()">isValid()</a></span> - Method in interface org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Condition</a></dt>
+<dd>
+<div class="block">Check the condition.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#isWantClientAuth()">isWantClientAuth()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Get "want client auth" property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.html#iterator()">iterator()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a></dt>
+<dd>
+<div class="block">Returns discovered objects incrementally.</div>
+</dd>
+</dl>
+<a id="I:J">
+<!--   -->
+</a>
+<h2 class="title">J</h2>
+<dl>
+<dt><a href="javax/websocket/package-summary.html">javax.websocket</a> - package javax.websocket</dt>
+<dd>
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</dd>
+<dt><a href="javax/websocket/server/package-summary.html">javax.websocket.server</a> - package javax.websocket.server</dt>
+<dd>
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</dd>
+</dl>
+<a id="I:K">
+<!--   -->
+</a>
+<h2 class="title">K</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#KEY_FACTORY_MANAGER_ALGORITHM">KEY_FACTORY_MANAGER_ALGORITHM</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block"><em>Key</em> manager factory algorithm name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#KEY_STORE_FILE">KEY_STORE_FILE</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block"><em>Key</em> store file name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#KEY_STORE_PASSWORD">KEY_STORE_PASSWORD</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block"><em>Key</em> store file password - the password used to unlock the <em>trust</em> store file.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#KEY_STORE_PROVIDER">KEY_STORE_PROVIDER</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block"><em>Key</em> store provider name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#KEY_STORE_TYPE">KEY_STORE_TYPE</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block"><em>Key</em> store type (see <code>KeyStore.getType()</code> for more info).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#keySet()">keySet()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a id="I:L">
+<!--   -->
+</a>
+<h2 class="title">L</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/collection/Values.html#lazy(org.glassfish.tyrus.core.collection.Value)">lazy(Value&lt;T&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.collection.<a href="org/glassfish/tyrus/core/collection/Values.html" title="class in org.glassfish.tyrus.core.collection">Values</a></dt>
+<dd>
+<div class="block">Get a new lazily initialized <a href="org/glassfish/tyrus/core/collection/Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/collection/LazyValue.html" title="interface in org.glassfish.tyrus.core.collection"><span class="typeNameLink">LazyValue</span></a>&lt;<a href="org/glassfish/tyrus/core/collection/LazyValue.html" title="type parameter in LazyValue">T</a>&gt; - Interface in <a href="org/glassfish/tyrus/core/collection/package-summary.html">org.glassfish.tyrus.core.collection</a></dt>
+<dd>
+<div class="block">Lazily initialized <a href="org/glassfish/tyrus/core/collection/Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/l10n/Localizable.html" title="interface in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">Localizable</span></a> - Interface in <a href="org/glassfish/tyrus/core/l10n/package-summary.html">org.glassfish.tyrus.core.l10n</a></dt>
+<dd>
+<div class="block">Localizable message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableAPPLICATION_DATA_TOO_LONG(java.lang.Object)">localizableAPPLICATION_DATA_TOO_LONG(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableARGUMENT_NOT_NULL(java.lang.Object)">localizableARGUMENT_NOT_NULL(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableAUTHENTICATION_CREATE_AUTH_HEADER_FAILED()">localizableAUTHENTICATION_CREATE_AUTH_HEADER_FAILED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableAUTHENTICATION_CREDENTIALS_MISSING()">localizableAUTHENTICATION_CREDENTIALS_MISSING()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableAUTHENTICATION_DIGEST_NO_SUCH_ALG()">localizableAUTHENTICATION_DIGEST_NO_SUCH_ALG()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableAUTHENTICATION_DIGEST_QOP_UNSUPPORTED(java.lang.Object)">localizableAUTHENTICATION_DIGEST_QOP_UNSUPPORTED(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableAUTHENTICATION_FAILED()">localizableAUTHENTICATION_FAILED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableBINARY_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">localizableBINARY_MESSAGE_HANDLER_NOT_FOUND(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableBINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">localizableBINARY_MESSAGE_OUT_OF_ORDER(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableBUFFER_OVERFLOW()">localizableBUFFER_OVERFLOW()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCLASS_CHECKER_FORBIDDEN_RETURN_TYPE(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_FORBIDDEN_RETURN_TYPE(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCLASS_CHECKER_MANDATORY_PARAM_MISSING(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_MANDATORY_PARAM_MISSING(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCLASS_NOT_INSTANTIATED(java.lang.Object)">localizableCLASS_NOT_INSTANTIATED(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCLIENT_CANNOT_CONNECT(java.lang.Object)">localizableCLIENT_CANNOT_CONNECT(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCOMPONENT_PROVIDER_NOT_FOUND(java.lang.Object)">localizableCOMPONENT_PROVIDER_NOT_FOUND(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCOMPONENT_PROVIDER_THREW_EXCEPTION(java.lang.Object)">localizableCOMPONENT_PROVIDER_THREW_EXCEPTION(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCONNECTION_HAS_BEEN_CLOSED()">localizableCONNECTION_HAS_BEEN_CLOSED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCONNECTION_NULL()">localizableCONNECTION_NULL()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCONTROL_FRAME_FRAGMENTED()">localizableCONTROL_FRAME_FRAGMENTED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableCONTROL_FRAME_LENGTH()">localizableCONTROL_FRAME_LENGTH()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableDATA_UNEXPECTED_LENGTH(java.lang.Object,java.lang.Object)">localizableDATA_UNEXPECTED_LENGTH(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableDEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR(java.lang.Object,java.lang.Object,java.lang.Object)">localizableDEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableDEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object,java.lang.Object)">localizableDEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableENCODING_FAILED()">localizableENCODING_FAILED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableENDPOINT_ANNOTATION_NOT_FOUND(java.lang.Object,java.lang.Object)">localizableENDPOINT_ANNOTATION_NOT_FOUND(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableENDPOINT_EXCEPTION_FROM_ON_ERROR(java.lang.Object)">localizableENDPOINT_EXCEPTION_FROM_ON_ERROR(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">localizableENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG(Object, Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableENDPOINT_MULTIPLE_METHODS(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">localizableENDPOINT_MULTIPLE_METHODS(Object, Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableENDPOINT_MULTIPLE_SESSION_PARAM(java.lang.Object)">localizableENDPOINT_MULTIPLE_SESSION_PARAM(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableENDPOINT_UNHANDLED_EXCEPTION(java.lang.Object)">localizableENDPOINT_UNHANDLED_EXCEPTION(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableENDPOINT_UNKNOWN_PARAMS(java.lang.Object,java.lang.Object,java.lang.Object)">localizableENDPOINT_UNKNOWN_PARAMS(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableENDPOINT_WRONG_PARAMS(java.lang.Object,java.lang.Object)">localizableENDPOINT_WRONG_PARAMS(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableENDPOINT_WRONG_PATH_PARAM(java.lang.Object,java.lang.Object)">localizableENDPOINT_WRONG_PATH_PARAM(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableEQUIVALENT_PATHS(java.lang.Object,java.lang.Object)">localizableEQUIVALENT_PATHS(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">localizableERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableEXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">localizableEXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableEXTENSION_EXCEPTION(java.lang.Object,java.lang.Object)">localizableEXTENSION_EXCEPTION(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableFRAGMENT_INVALID_OPCODE()">localizableFRAGMENT_INVALID_OPCODE()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableFRAME_WRITE_CANCELLED()">localizableFRAME_WRITE_CANCELLED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableHANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP()">localizableHANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableHANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION(java.lang.Object)">localizableHANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR(java.lang.Object)">localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING()">localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableHANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(java.lang.Object)">localizableHANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableHANDSHAKE_HTTP_RETRY_AFTER_MESSAGE()">localizableHANDSHAKE_HTTP_RETRY_AFTER_MESSAGE()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableHEADERS_MISSING()">localizableHEADERS_MISSING()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableILLEGAL_CONFIG_SYNTAX()">localizableILLEGAL_CONFIG_SYNTAX()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableILLEGAL_PROVIDER_CLASS_NAME(java.lang.Object)">localizableILLEGAL_PROVIDER_CLASS_NAME(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableILLEGAL_UTF_8_SEQUENCE()">localizableILLEGAL_UTF_8_SEQUENCE()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableINVALID_HEADER(java.lang.Object,java.lang.Object)">localizableINVALID_HEADER(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableINVALID_RESPONSE_CODE(java.lang.Object,java.lang.Object)">localizableINVALID_RESPONSE_CODE(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableIOEXCEPTION_CLOSE()">localizableIOEXCEPTION_CLOSE()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableMAX_SESSIONS_PER_APP_EXCEEDED()">localizableMAX_SESSIONS_PER_APP_EXCEEDED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableMAX_SESSIONS_PER_ENDPOINT_EXCEEDED()">localizableMAX_SESSIONS_PER_ENDPOINT_EXCEEDED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableMAX_SESSIONS_PER_REMOTEADDR_EXCEEDED()">localizableMAX_SESSIONS_PER_REMOTEADDR_EXCEEDED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/l10n/LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">LocalizableMessage</span></a> - Class in <a href="org/glassfish/tyrus/core/l10n/package-summary.html">org.glassfish.tyrus.core.l10n</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizableMessage.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.Object...)">LocalizableMessage(String, String, Object...)</a></span> - Constructor for class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableMESSAGE_HANDLER_ALREADY_REGISTERED_BINARY()">localizableMESSAGE_HANDLER_ALREADY_REGISTERED_BINARY()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableMESSAGE_HANDLER_ALREADY_REGISTERED_PONG()">localizableMESSAGE_HANDLER_ALREADY_REGISTERED_PONG()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TEXT()">localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TEXT()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(java.lang.Object)">localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableMESSAGE_HANDLER_DECODER_NOT_REGISTERED(java.lang.Object)">localizableMESSAGE_HANDLER_DECODER_NOT_REGISTERED(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableMESSAGE_HANDLER_ILLEGAL_ARGUMENT(java.lang.Object)">localizableMESSAGE_HANDLER_ILLEGAL_ARGUMENT(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableMESSAGE_HANDLER_PARTIAL_INVALID_TYPE(java.lang.Object)">localizableMESSAGE_HANDLER_PARTIAL_INVALID_TYPE(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableMESSAGE_HANDLER_WHOLE_OR_PARTIAL()">localizableMESSAGE_HANDLER_WHOLE_OR_PARTIAL()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableMESSAGE_TOO_LONG(java.lang.Object,java.lang.Object)">localizableMESSAGE_TOO_LONG(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html" title="class in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">LocalizableMessageFactory</span></a> - Class in <a href="org/glassfish/tyrus/core/l10n/package-summary.html">org.glassfish.tyrus.core.l10n</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html#%3Cinit%3E(java.lang.String)">LocalizableMessageFactory(String)</a></span> - Constructor for class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessageFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableNO_DECODER_FOUND()">localizableNO_DECODER_FOUND()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableORIGIN_NOT_VERIFIED()">localizableORIGIN_NOT_VERIFIED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizablePARTIAL_BINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">localizablePARTIAL_BINARY_MESSAGE_OUT_OF_ORDER(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizablePARTIAL_MESSAGE_BUFFER_OVERFLOW()">localizablePARTIAL_MESSAGE_BUFFER_OVERFLOW()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizablePARTIAL_TEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">localizablePARTIAL_TEXT_MESSAGE_OUT_OF_ORDER(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizablePROVIDER_CLASS_COULD_NOT_BE_LOADED(java.lang.Object,java.lang.Object,java.lang.Object)">localizablePROVIDER_CLASS_COULD_NOT_BE_LOADED(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizablePROVIDER_COULD_NOT_BE_CREATED(java.lang.Object,java.lang.Object,java.lang.Object)">localizablePROVIDER_COULD_NOT_BE_CREATED(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizablePROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object)">localizablePROVIDER_NOT_FOUND(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableRSV_INCORRECTLY_SET()">localizableRSV_INCORRECTLY_SET()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableSEC_KEY_INVALID_LENGTH(java.lang.Object)">localizableSEC_KEY_INVALID_LENGTH(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableSEC_KEY_INVALID_SERVER()">localizableSEC_KEY_INVALID_SERVER()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableSEC_KEY_NULL_NOT_ALLOWED()">localizableSEC_KEY_NULL_NOT_ALLOWED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableSEND_MESSAGE_INFRAGMENT()">localizableSEND_MESSAGE_INFRAGMENT()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableSESSION_CLOSED_IDLE_TIMEOUT()">localizableSESSION_CLOSED_IDLE_TIMEOUT()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableSOCKET_NOT_CONNECTED()">localizableSOCKET_NOT_CONNECTED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableTEXT_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">localizableTEXT_MESSAGE_HANDLER_NOT_FOUND(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableTEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">localizableTEXT_MESSAGE_OUT_OF_ORDER(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableUNEXPECTED_END_FRAGMENT()">localizableUNEXPECTED_END_FRAGMENT()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableUNEXPECTED_ERROR_CONNECTION_CLOSE()">localizableUNEXPECTED_ERROR_CONNECTION_CLOSE()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableUNEXPECTED_STATE(java.lang.Object)">localizableUNEXPECTED_STATE(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableUNHANDLED_TEXT_MESSAGE(java.lang.Object)">localizableUNHANDLED_TEXT_MESSAGE(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableURI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(java.lang.Object,java.lang.Object)">localizableURI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableURI_COMPONENT_ENCODED_OCTET_MALFORMED(java.lang.Object)">localizableURI_COMPONENT_ENCODED_OCTET_MALFORMED(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#localizableURI_COMPONENT_INVALID_CHARACTER(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">localizableURI_COMPONENT_INVALID_CHARACTER(Object, Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">LocalizationMessages</span></a> - Class in <a href="org/glassfish/tyrus/core/l10n/package-summary.html">org.glassfish.tyrus.core.l10n</a></dt>
+<dd>
+<div class="block">Defines string formatting method for each constant in the resource file</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#%3Cinit%3E()">LocalizationMessages()</a></span> - Constructor for class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/Localizer.html#localize(org.glassfish.tyrus.core.l10n.Localizable)">localize(Localizable)</a></span> - Method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/Localizer.html" title="class in org.glassfish.tyrus.core.l10n">Localizer</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/l10n/Localizer.html" title="class in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">Localizer</span></a> - Class in <a href="org/glassfish/tyrus/core/l10n/package-summary.html">org.glassfish.tyrus.core.l10n</a></dt>
+<dd>
+<div class="block">Localizes the <a href="org/glassfish/tyrus/core/l10n/Localizable.html" title="interface in org.glassfish.tyrus.core.l10n"><code>Localizable</code></a> into a message by using a configured <code>Locale</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/Localizer.html#%3Cinit%3E()">Localizer()</a></span> - Constructor for class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/Localizer.html" title="class in org.glassfish.tyrus.core.l10n">Localizer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/Localizer.html#%3Cinit%3E(java.util.Locale)">Localizer(Locale)</a></span> - Constructor for class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/Localizer.html" title="class in org.glassfish.tyrus.core.l10n">Localizer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeResponse.html#LOCATION">LOCATION</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></dt>
+<dd>
+<div class="block">Header containing a new URI when <a href="org/glassfish/tyrus/spi/UpgradeResponse.html#getStatus()"><code>UpgradeResponse.getStatus()</code></a> .</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.html#lock()">lock()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></dt>
+<dd>
+<div class="block">Make headers and parameter map read-only.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#LOG_HTTP_UPGRADE">LOG_HTTP_UPGRADE</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">User property to configure logging of HTTP upgrade messages.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html#%3Cinit%3E()">LongDecoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a id="I:M">
+<!--   -->
+</a>
+<h2 class="title">M</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/Server.html#main(java.lang.String%5B%5D)">main(String[])</a></span> - Static method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server">Server</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html#mask(boolean)">mask(boolean)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></dt>
+<dd>
+<div class="block">Currently not used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#MASK_SIZE">MASK_SIZE</a></span> - Static variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="block">RFC 6455</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#MASKING_KEY_GENERATOR">MASKING_KEY_GENERATOR</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">Property name for registering a custom masking key generator.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html#maskingKey(java.lang.Integer)">maskingKey(Integer)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></dt>
+<dd>
+<div class="block">Set masking key.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core"><span class="typeNameLink">MaskingKeyGenerator</span></a> - Interface in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Can be implemented to generate masking keys.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#match(java.lang.CharSequence)">match(CharSequence)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>
+<div class="block">Match against the pattern.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#match(java.lang.CharSequence,java.util.List)">match(CharSequence, List&lt;String&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>
+<div class="block">Match against the pattern.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#match(java.lang.CharSequence,java.util.List)">match(CharSequence, List&lt;String&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Match a URI against the template.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#match(java.lang.CharSequence,java.util.List,java.util.Map)">match(CharSequence, List&lt;String&gt;, Map&lt;String, String&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>
+<div class="block">Match against the pattern.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#match(java.lang.CharSequence,java.util.Map)">match(CharSequence, Map&lt;String, String&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Match a URI against the template.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/Match.html" title="class in org.glassfish.tyrus.core.uri"><span class="typeNameLink">Match</span></a> - Class in <a href="org/glassfish/tyrus/core/uri/package-summary.html">org.glassfish.tyrus.core.uri</a></dt>
+<dd>
+<div class="block">Defines a match on an endpoint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#MATRIX_PARAM">MATRIX_PARAM</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">The URI path component type that is a matrix parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#MAX_BINARY_MESSAGE_BUFFER_SIZE">MAX_BINARY_MESSAGE_BUFFER_SIZE</a></span> - org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">Max binary buffer size.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#MAX_IDLE_TIMEOUT">MAX_IDLE_TIMEOUT</a></span> - org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">Max idle timeout.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#MAX_SESSIONS_PER_APP">MAX_SESSIONS_PER_APP</a></span> - Static variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>
+<div class="block">Maximum number of open sessions per server application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html#MAX_SESSIONS_PER_APP_EXCEEDED">MAX_SESSIONS_PER_APP_EXCEEDED</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></dt>
+<dd>
+<div class="block">Session cannot be opened - the maximal number of open session per application exceeded.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#MAX_SESSIONS_PER_APP_EXCEEDED()">MAX_SESSIONS_PER_APP_EXCEEDED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Maximal number of open sessions per application exceeded.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#MAX_SESSIONS_PER_ENDPOINT_EXCEEDED()">MAX_SESSIONS_PER_ENDPOINT_EXCEEDED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Maximal number of open sessions per endpoint exceeded.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#MAX_SESSIONS_PER_REMOTE_ADDR">MAX_SESSIONS_PER_REMOTE_ADDR</a></span> - Static variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>
+<div class="block">Maximum number of open sessions per unique remote address.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html#MAX_SESSIONS_PER_REMOTE_ADDR_EXCEEDED">MAX_SESSIONS_PER_REMOTE_ADDR_EXCEEDED</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></dt>
+<dd>
+<div class="block">Session cannot be opened - the maximal number of open session per remote address exceeded.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#MAX_SESSIONS_PER_REMOTEADDR_EXCEEDED()">MAX_SESSIONS_PER_REMOTEADDR_EXCEEDED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Maximal number of open sessions per remote address exceeded.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#MAX_TEXT_MESSAGE_BUFFER_SIZE">MAX_TEXT_MESSAGE_BUFFER_SIZE</a></span> - org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">Max text buffer size.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/OnMessage.html#maxMessageSize()">maxMessageSize()</a></span> - Method in annotation type javax.websocket.<a href="javax/websocket/OnMessage.html" title="annotation in javax.websocket">OnMessage</a></dt>
+<dd>
+<div class="block">Specifies the maximum size of message in bytes that the method
+ this annotates will be able to process, or -1 to indicate
+ that there is no maximum.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html#maxSessions(int)">maxSessions(int)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Sets maximal number of open sessions.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/MaxSessions.html" title="annotation in org.glassfish.tyrus.core"><span class="typeNameLink">MaxSessions</span></a> - Annotation Type in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">This annotation may be used to annotate server endpoints as a optional annotation
+ to <a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#maxSessionsPerApp(java.lang.Integer)">maxSessionsPerApp(Integer)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></dt>
+<dd>
+<div class="block">Set maximal number of open sessions per server application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#maxSessionsPerRemoteAddr(java.lang.Integer)">maxSessionsPerRemoteAddr(Integer)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></dt>
+<dd>
+<div class="block">Set maximal number of open sessions from remote address.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#MESSAGE_HANDLER_ALREADY_REGISTERED_BINARY()">MESSAGE_HANDLER_ALREADY_REGISTERED_BINARY()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Binary MessageHandler already registered.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#MESSAGE_HANDLER_ALREADY_REGISTERED_PONG()">MESSAGE_HANDLER_ALREADY_REGISTERED_PONG()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Pong MessageHandler already registered.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#MESSAGE_HANDLER_ALREADY_REGISTERED_TEXT()">MESSAGE_HANDLER_ALREADY_REGISTERED_TEXT()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Text MessageHandler already registered.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#MESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(java.lang.Object)">MESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">MessageHandler for type: {0} already registered.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#MESSAGE_HANDLER_DECODER_NOT_REGISTERED(java.lang.Object)">MESSAGE_HANDLER_DECODER_NOT_REGISTERED(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Decoder for type: {0} has not been registered.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#MESSAGE_HANDLER_ILLEGAL_ARGUMENT(java.lang.Object)">MESSAGE_HANDLER_ILLEGAL_ARGUMENT(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Illegal MessageHandler argument value: {0}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#MESSAGE_HANDLER_PARTIAL_INVALID_TYPE(java.lang.Object)">MESSAGE_HANDLER_PARTIAL_INVALID_TYPE(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Partial MessageHandler can''t be of type: {0}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#MESSAGE_HANDLER_WHOLE_OR_PARTIAL()">MESSAGE_HANDLER_WHOLE_OR_PARTIAL()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">MessageHandler must implement MessageHandler.Whole or MessageHandler.Partial.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.Type.html#MESSAGE_IN">MESSAGE_IN</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.Type.html#MESSAGE_OUT">MESSAGE_OUT</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#MESSAGE_TOO_LONG(java.lang.Object,java.lang.Object)">MESSAGE_TOO_LONG(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Message too long; allowed message size is {0} bytes.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/monitoring/MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><span class="typeNameLink">MessageEventListener</span></a> - Interface in <a href="org/glassfish/tyrus/core/monitoring/package-summary.html">org.glassfish.tyrus.core.monitoring</a></dt>
+<dd>
+<div class="block">Listens for message-level events that are interesting for monitoring.</div>
+</dd>
+<dt><a href="javax/websocket/MessageHandler.html" title="interface in javax.websocket"><span class="typeNameLink">MessageHandler</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">Developers implement MessageHandlers in order to receive incoming messages
+ during a web socket conversation.</div>
+</dd>
+<dt><a href="javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket"><span class="typeNameLink">MessageHandler.Partial</span></a>&lt;<a href="javax/websocket/MessageHandler.Partial.html" title="type parameter in MessageHandler.Partial">T</a>&gt; - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This kind of handler is notified by the implementation as it becomes ready
+ to deliver parts of a whole message.</div>
+</dd>
+<dt><a href="javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket"><span class="typeNameLink">MessageHandler.Whole</span></a>&lt;<a href="javax/websocket/MessageHandler.Whole.html" title="type parameter in MessageHandler.Whole">T</a>&gt; - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This kind of handler is notified by the container on arrival of a complete message.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">MessageHandlerManager</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Manages registered <a href="javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a>s and checks whether the new ones may be registered.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/MessageHandlerManager.html#%3Cinit%3E()">MessageHandlerManager()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></dt>
+<dd>
+<div class="block">Construct manager with no decoders.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#methodInstanceToString(java.lang.Object,java.lang.reflect.Method)">methodInstanceToString(Object, Method)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Create a string representation of a method and an instance whose
+ class implements the method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.Configurator.html#modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">modifyHandshake(ServerEndpointConfig, HandshakeRequest, HandshakeResponse)</a></span> - Method in class javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></dt>
+<dd>
+<div class="block">Called by the container after it has formulated a handshake response resulting from
+ a well-formed handshake request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html#modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">modifyHandshake(ServerEndpointConfig, HandshakeRequest, HandshakeResponse)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">MultivaluedHashMap</span></a>&lt;<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt; - Class in <a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></dt>
+<dd>
+<div class="block">A hash table based implementation of <a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> interface.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html#%3Cinit%3E()">MultivaluedHashMap()</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs an empty multivalued hash map with the default initial capacity
+ (<code>16</code>) and the default load factor (<code>0.75</code>).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html#%3Cinit%3E(int)">MultivaluedHashMap(int)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs an empty multivalued hash map with the specified initial
+ capacity and the default load factor (<code>0.75</code>).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html#%3Cinit%3E(int,float)">MultivaluedHashMap(int, float)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs an empty multivalued hash map with the specified initial
+ capacity and load factor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html#%3Cinit%3E(java.util.Map)">MultivaluedHashMap(Map&lt;? extends K, ? extends V&gt;)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified single-valued <code>Map</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">MultivaluedHashMap(MultivaluedMap&lt;? extends K, ? extends V&gt;)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified <a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">MultivaluedMap</span></a>&lt;<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt; - Interface in <a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></dt>
+<dd>
+<div class="block">A map of key-values pairs.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">MultivaluedStringMap</span></a> - Class in <a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></dt>
+<dd>
+<div class="block">An implementation of <a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> where keys and values are
+ instances of String.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html#%3Cinit%3E()">MultivaluedStringMap()</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html#%3Cinit%3E(int)">MultivaluedStringMap(int)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html#%3Cinit%3E(int,float)">MultivaluedStringMap(int, float)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">MultivaluedStringMap(MultivaluedMap&lt;? extends String, ? extends String&gt;)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a id="I:N">
+<!--   -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#needClientAuth">needClientAuth</a></span> - Variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Require client Authentication.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#NEGOTIATED_EXTENSIONS">NEGOTIATED_EXTENSIONS</a></span> - org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">Negotiated extensions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#NEGOTIATED_SUBPROTOCOL">NEGOTIATED_SUBPROTOCOL</a></span> - org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">Negotiated subprotocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/StrictUtf8.html#newDecoder()">newDecoder()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/StrictUtf8.html" title="class in org.glassfish.tyrus.core">StrictUtf8</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/StrictUtf8.html#newEncoder()">newEncoder()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/StrictUtf8.html" title="class in org.glassfish.tyrus.core">StrictUtf8</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/MaskingKeyGenerator.html#nextInt()">nextInt()</a></span> - Method in interface org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core">MaskingKeyGenerator</a></dt>
+<dd>
+<div class="block">Return next random int similarly to <code>Random.nextInt()</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#NO_DECODER_FOUND()">NO_DECODER_FOUND()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">No decoder found.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#NO_EXTENSION">NO_EXTENSION</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1010 indicates that an endpoint (client) is terminating the
+ connection because it has expected the server to negotiate one or
+ more extension, but the server didn't return them in the response
+ message of the WebSocket handshake.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#NO_EXTENSION">NO_EXTENSION</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1010 indicates that an endpoint (client) is terminating the
+ connection because it has expected the server to negotiate one or
+ more extension, but the server didn't return them in the response
+ message of the WebSocket handshake.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html#NO_OP">NO_OP</a></span> - Static variable in interface org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></dt>
+<dd>
+<div class="block">An instance of @ApplicationEventListener that does not do anything.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/monitoring/EndpointEventListener.html#NO_OP">NO_OP</a></span> - Static variable in interface org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></dt>
+<dd>
+<div class="block">An instance of @EndpointEventListener that does not do anything.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/monitoring/MessageEventListener.html#NO_OP">NO_OP</a></span> - Static variable in interface org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></dt>
+<dd>
+<div class="block">An instance of @MessageEventListener that does not do anything.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#NO_STATUS_CODE">NO_STATUS_CODE</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1005 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#NO_STATUS_CODE">NO_STATUS_CODE</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1005 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">NoOpByteArrayCoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>
+<div class="block"><a href="javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for byte array.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html#%3Cinit%3E()">NoOpByteArrayCoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">NoOpByteBufferCoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>
+<div class="block"><a href="javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for <code>ByteBuffer</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html#%3Cinit%3E()">NoOpByteBufferCoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">NoOpTextCoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/NoOpTextCoder.html#%3Cinit%3E()">NoOpTextCoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#NORMAL_CLOSURE">NORMAL_CLOSURE</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1000 indicates a normal closure, meaning that the purpose for
+ which the connection was established has been fulfilled.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#NORMAL_CLOSURE">NORMAL_CLOSURE</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1000 indicates a normal closure, meaning that the purpose for
+ which the connection was established has been fulfilled.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#normalize(java.lang.String)">normalize(String)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Normalize the URI by resolve the dot &amp; dot-dot path segments as described in
+ <a href="http://tools.ietf.org/html/rfc3986#section-5.2.4">RFC 3986</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#normalize(java.net.URI)">normalize(URI)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Normalize the URI by resolve the dot &amp; dot-dot path segments as described in
+ <a href="http://tools.ietf.org/html/rfc3986#section-5.2.4">RFC 3986</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html#NOT_APPLICABLE">NOT_APPLICABLE</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></dt>
+<dd>
+<div class="block">Not a WebSocketRequest or no mapping in the application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#NOT_CONSISTENT">NOT_CONSISTENT</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1007 indicates that an endpoint is terminating the connection
+ because it has received data within a message that was not
+ consistent with the type of the message (e.g., non-UTF-8
+ data within a text message).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#NOT_CONSISTENT">NOT_CONSISTENT</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1007 indicates that an endpoint is terminating the connection
+ because it has received data within a message that was not
+ consistent with the type of the message (e.g., non-UTF-8
+ data within a text message).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/Localizable.html#NOT_LOCALIZABLE">NOT_LOCALIZABLE</a></span> - Static variable in interface org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></dt>
+<dd>
+<div class="block">Special constant that represents a message that is not localizable.</div>
+</dd>
+</dl>
+<a id="I:O">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html#OBJECT">OBJECT</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></dt>
+<dd>
+<div class="block">Object type.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html" title="class in org.glassfish.tyrus.core.wsadl.model"><span class="typeNameLink">ObjectFactory</span></a> - Class in <a href="org/glassfish/tyrus/core/wsadl/model/package-summary.html">org.glassfish.tyrus.core.wsadl.model</a></dt>
+<dd>
+<div class="block">This object contains factory methods for each 
+ Java content interface and Java element interface 
+ generated in the org.glassfish.tyrus.core.wsadl.model package.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html#%3Cinit%3E()">ObjectFactory()</a></span> - Constructor for class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html" title="class in org.glassfish.tyrus.core.wsadl.model">ObjectFactory</a></dt>
+<dd>
+<div class="block">Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.glassfish.tyrus.core.wsadl.model</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#objectToString(java.lang.Object)">objectToString(Object)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Create a string representation of an object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/collection/Values.html#of(T)">of(T)</a></span> - Static method in class org.glassfish.tyrus.core.collection.<a href="org/glassfish/tyrus/core/collection/Values.html" title="class in org.glassfish.tyrus.core.collection">Values</a></dt>
+<dd>
+<div class="block">
+ Get a new constant <a href="org/glassfish/tyrus/core/collection/Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a> whose <a href="org/glassfish/tyrus/core/collection/Value.html#get()"><code>get()</code></a>
+ method always returns the instance supplied to the <code>value</code> parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.TracingType.html#OFF">OFF</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></dt>
+<dd>
+<div class="block">No tracing headers will be ever sent in handshake response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.TracingType.html#ON_DEMAND">ON_DEMAND</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></dt>
+<dd>
+<div class="block">Tracing headers will be sent in handshake response only if X-Tyrus-Tracing-Accept header is present
+ in handshake request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html#onAllDataRead()">onAllDataRead()</a></span> - Method in class org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html#onApplicationDestroyed()">onApplicationDestroyed()</a></span> - Method in interface org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></dt>
+<dd>
+<div class="block">Called when the application has been destroyed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html#onApplicationInitialized(java.lang.String)">onApplicationInitialized(String)</a></span> - Method in interface org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></dt>
+<dd>
+<div class="block">Called when the application has been initialized.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/BroadcastListener.html#onBroadcast(byte%5B%5D)">onBroadcast(byte[])</a></span> - Method in interface org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster">BroadcastListener</a></dt>
+<dd>
+<div class="block">Invoked when received request to broadcast binary data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/BroadcastListener.html#onBroadcast(java.lang.String)">onBroadcast(String)</a></span> - Method in interface org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster">BroadcastListener</a></dt>
+<dd>
+<div class="block">Invoked when received request to broadcast text message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html#onClose()">onClose()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></dt>
+<dd>
+<div class="block">Invoked on session close event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html#onClose(javax.websocket.CloseReason)">onClose(CloseReason)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></dt>
+<dd>
+<div class="block">Invoked on session close event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)">onClose(Session, CloseReason)</a></span> - Method in class javax.websocket.<a href="javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a></dt>
+<dd>
+<div class="block">This method is called immediately prior to the session with the remote 
+ peer being closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)">onClose(Session, CloseReason)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#onClose(org.glassfish.tyrus.core.frame.CloseFrame)">onClose(CloseFrame)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">This callback will be invoked when the remote endpoint sent a closing frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html#onClose(org.glassfish.tyrus.core.TyrusSession,javax.websocket.CloseReason)">onClose(TyrusSession, CloseReason)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a></dt>
+<dd>
+<div class="block">Invoked after <a href="javax/websocket/OnClose.html" title="annotation in javax.websocket"><code>OnClose</code></a> annotated method
+ or <a href="javax/websocket/Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)"><code>Endpoint.onClose(javax.websocket.Session, javax.websocket.CloseReason)</code></a> execution.</div>
+</dd>
+<dt><a href="javax/websocket/OnClose.html" title="annotation in javax.websocket"><span class="typeNameLink">OnClose</span></a> - Annotation Type in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This method level annotation can be used to decorate a Java method that wishes 
+ to be called when a web socket session is closing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#onConnect(org.glassfish.tyrus.spi.UpgradeRequest,java.lang.String,java.util.List,java.lang.String,org.glassfish.tyrus.core.DebugContext)">onConnect(UpgradeRequest, String, List&lt;Extension&gt;, String, DebugContext)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">This callback will be invoked when the opening handshake between both
+ endpoints has been completed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html#onConnectFailure(java.lang.Exception)">onConnectFailure(Exception)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client">ClientManager.ReconnectHandler</a></dt>
+<dd>
+<div class="block">Called when there is a connection failure.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html#onDataAvailable()">onDataAvailable()</a></span> - Method in class org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html#onDisconnect(javax.websocket.CloseReason)">onDisconnect(CloseReason)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client">ClientManager.ReconnectHandler</a></dt>
+<dd>
+<div class="block">Called after <a href="javax/websocket/OnClose.html" title="annotation in javax.websocket"><code>OnClose</code></a> annotated method (or <a href="javax/websocket/Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)"><code>Endpoint.onClose(javax.websocket.Session, javax.websocket.CloseReason)</code></a> is invoked.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html#onEndpointRegistered(java.lang.String,java.lang.Class)">onEndpointRegistered(String, Class&lt;?&gt;)</a></span> - Method in interface org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></dt>
+<dd>
+<div class="block">Called when an endpoint has been registered.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html#onEndpointUnregistered(java.lang.String)">onEndpointUnregistered(String)</a></span> - Method in interface org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></dt>
+<dd>
+<div class="block">Called when an endpoint has been unregistered.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/monitoring/EndpointEventListener.html#onError(java.lang.String,java.lang.Throwable)">onError(String, Throwable)</a></span> - Method in interface org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></dt>
+<dd>
+<div class="block">Called when an error has occurred.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html#onError(java.lang.Throwable)">onError(Throwable)</a></span> - Method in interface org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html" title="interface in org.glassfish.tyrus.client">TyrusClientEngine.ClientHandshakeListener</a></dt>
+<dd>
+<div class="block">Called when an error is found in handshake response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html#onError(java.lang.Throwable)">onError(Throwable)</a></span> - Method in class org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Endpoint.html#onError(javax.websocket.Session,java.lang.Throwable)">onError(Session, Throwable)</a></span> - Method in class javax.websocket.<a href="javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a></dt>
+<dd>
+<div class="block">Developers may implement this method when the web socket session
+ creates some kind of error that is not modeled in the web socket protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html#onError(javax.websocket.Session,java.lang.Throwable)">onError(Session, Throwable)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="javax/websocket/OnError.html" title="annotation in javax.websocket"><span class="typeNameLink">OnError</span></a> - Annotation Type in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This method level annotation can be used to decorate a Java method that wishes to be called in order
+ to handle errors.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html#onExtensionNegotiation(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)">onExtensionNegotiation(ExtendedExtension.ExtensionContext, List&lt;Extension.Parameter&gt;)</a></span> - Method in interface org.glassfish.tyrus.core.extension.<a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension</a></dt>
+<dd>
+<div class="block">Parameter negotiation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#onFragment(org.glassfish.tyrus.core.frame.BinaryFrame,boolean)">onFragment(BinaryFrame, boolean)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">This callback will be invoked when a fragmented binary message has
+ been received.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#onFragment(org.glassfish.tyrus.core.frame.TextFrame,boolean)">onFragment(TextFrame, boolean)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">This callback will be invoked when a fragmented textual message has
+ been received.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/monitoring/MessageEventListener.html#onFrameReceived(org.glassfish.tyrus.core.frame.TyrusFrame.FrameType,long)">onFrameReceived(TyrusFrame.FrameType, long)</a></span> - Method in interface org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></dt>
+<dd>
+<div class="block">Called when a frame has been received.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/monitoring/MessageEventListener.html#onFrameSent(org.glassfish.tyrus.core.frame.TyrusFrame.FrameType,long)">onFrameSent(TyrusFrame.FrameType, long)</a></span> - Method in interface org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></dt>
+<dd>
+<div class="block">Called when a frame has been sent.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html#onHandshakeResponse(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)">onHandshakeResponse(ExtendedExtension.ExtensionContext, List&lt;Extension.Parameter&gt;)</a></span> - Method in interface org.glassfish.tyrus.core.extension.<a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension</a></dt>
+<dd>
+<div class="block">Called only on the client side when handshake response arrives.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#onMessage(org.glassfish.tyrus.core.frame.BinaryFrame)">onMessage(BinaryFrame)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">This callback will be invoked when a binary message has been received.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#onMessage(org.glassfish.tyrus.core.frame.TextFrame)">onMessage(TextFrame)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">This callback will be invoked when a text message has been received.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/MessageHandler.Whole.html#onMessage(T)">onMessage(T)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a></dt>
+<dd>
+<div class="block">Called when the message has been fully received.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/MessageHandler.Partial.html#onMessage(T,boolean)">onMessage(T, boolean)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a></dt>
+<dd>
+<div class="block">Called when the next part of a message has been fully received.</div>
+</dd>
+<dt><a href="javax/websocket/OnMessage.html" title="annotation in javax.websocket"><span class="typeNameLink">OnMessage</span></a> - Annotation Type in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This method level annotation can be used to make a Java method receive incoming web socket messages.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Endpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)">onOpen(Session, EndpointConfig)</a></span> - Method in class javax.websocket.<a href="javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a></dt>
+<dd>
+<div class="block">Developers must implement this method to be notified when a new conversation has
+ just begun.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)">onOpen(Session, EndpointConfig)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html#onOpen(org.glassfish.tyrus.core.TyrusSession)">onOpen(TyrusSession)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a></dt>
+<dd>
+<div class="block">Invoked before <a href="javax/websocket/OnOpen.html" title="annotation in javax.websocket"><code>OnOpen</code></a> annotated method
+ or <a href="javax/websocket/Endpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)"><code>Endpoint.onOpen(javax.websocket.Session, javax.websocket.EndpointConfig)</code></a> is invoked.</div>
+</dd>
+<dt><a href="javax/websocket/OnOpen.html" title="annotation in javax.websocket"><span class="typeNameLink">OnOpen</span></a> - Annotation Type in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This method level annotation can be used to decorate a Java method that wishes to be called when a new
+ web socket session is open.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#onPing(org.glassfish.tyrus.core.frame.PingFrame)">onPing(PingFrame)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">This callback will be invoked when the remote endpoint has sent a ping frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#onPong(org.glassfish.tyrus.core.frame.PongFrame)">onPong(PongFrame)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">This callback will be invoked when the remote endpoint has sent a pong
+ frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/SendHandler.html#onResult(javax.websocket.SendResult)">onResult(SendResult)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a></dt>
+<dd>
+<div class="block">Called once the message has been transmitted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html#onSendBinary(byte%5B%5D)">onSendBinary(byte[])</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></dt>
+<dd>
+<div class="block">Invoked on send binary message event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html#onSendBinary(byte%5B%5D,boolean)">onSendBinary(byte[], boolean)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></dt>
+<dd>
+<div class="block">Invoked on send partial binary message event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html#onSendPing(byte%5B%5D)">onSendPing(byte[])</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></dt>
+<dd>
+<div class="block">Invoked on send ping frame event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html#onSendPong(byte%5B%5D)">onSendPong(byte[])</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></dt>
+<dd>
+<div class="block">Invoked on send pong frame event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html#onSendText(java.lang.String)">onSendText(String)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></dt>
+<dd>
+<div class="block">Invoked on send text message event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html#onSendText(java.lang.String,boolean)">onSendText(String, boolean)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></dt>
+<dd>
+<div class="block">Invoked on send partial text message event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/SessionListener.html#onSessionClosed(java.lang.String)">onSessionClosed(String)</a></span> - Method in interface org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster">SessionListener</a></dt>
+<dd>
+<div class="block">Invoked when session is closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/monitoring/EndpointEventListener.html#onSessionClosed(java.lang.String)">onSessionClosed(String)</a></span> - Method in interface org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></dt>
+<dd>
+<div class="block">Called when a session has been closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html#onSessionCreated(javax.websocket.Session)">onSessionCreated(Session)</a></span> - Method in interface org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html" title="interface in org.glassfish.tyrus.client">TyrusClientEngine.ClientHandshakeListener</a></dt>
+<dd>
+<div class="block">Invoked when handshake is completed and provided <a href="javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a> is open and ready to be returned from
+ <a href="javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, javax.websocket.ClientEndpointConfig, java.net.URI)</code></a> (and
+ alternatives) call.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/SessionListener.html#onSessionOpened(java.lang.String)">onSessionOpened(String)</a></span> - Method in interface org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster">SessionListener</a></dt>
+<dd>
+<div class="block">Invoked when session is opened.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/monitoring/EndpointEventListener.html#onSessionOpened(java.lang.String)">onSessionOpened(String)</a></span> - Method in interface org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></dt>
+<dd>
+<div class="block">Called when a session has been opened.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html#onStartup(java.util.Set,javax.servlet.ServletContext)">onStartup(Set&lt;Class&lt;?&gt;&gt;, ServletContext)</a></span> - Method in class org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html" title="class in org.glassfish.tyrus.servlet">TyrusServletContainerInitializer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html#opcode(byte)">opcode(byte)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></dt>
+<dd>
+<div class="block">Set opcode.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html#OPEN_ROOT_PATH_PATTERN">OPEN_ROOT_PATH_PATTERN</a></span> - Static variable in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></dt>
+<dd>
+<div class="block">Path pattern matching the any URI path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">openClientSocket(ClientEndpointConfig, Map&lt;String, Object&gt;, ClientEngine)</a></span> - Method in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientContainer.html#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">openClientSocket(ClientEndpointConfig, Map&lt;String, Object&gt;, ClientEngine)</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a></dt>
+<dd>
+<div class="block">Open client socket - connect to endpoint specified with <code>url</code> parameter.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a> - package org.glassfish.tyrus.client</dt>
+<dd>
+<div class="block">Common Client.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/auth/package-summary.html">org.glassfish.tyrus.client.auth</a> - package org.glassfish.tyrus.client.auth</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a> - package org.glassfish.tyrus.container.grizzly.client</dt>
+<dd>
+<div class="block">Grizzly Client container.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/container/grizzly/server/package-summary.html">org.glassfish.tyrus.container.grizzly.server</a> - package org.glassfish.tyrus.container.grizzly.server</dt>
+<dd>
+<div class="block">Grizzly Server container.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> - package org.glassfish.tyrus.core</dt>
+<dd>
+<div class="block">Core classes.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> - package org.glassfish.tyrus.core.cluster</dt>
+<dd>
+<div class="block">Cluster relates classes and interfaces.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a> - package org.glassfish.tyrus.core.coder</dt>
+<dd>
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/collection/package-summary.html">org.glassfish.tyrus.core.collection</a> - package org.glassfish.tyrus.core.collection</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/extension/package-summary.html">org.glassfish.tyrus.core.extension</a> - package org.glassfish.tyrus.core.extension</dt>
+<dd>
+<div class="block">WebSocket Extension support.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a> - package org.glassfish.tyrus.core.frame</dt>
+<dd>
+<div class="block">WebSocket frame representations.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/l10n/package-summary.html">org.glassfish.tyrus.core.l10n</a> - package org.glassfish.tyrus.core.l10n</dt>
+<dd>
+<div class="block">Common internal localization utility classes.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/monitoring/package-summary.html">org.glassfish.tyrus.core.monitoring</a> - package org.glassfish.tyrus.core.monitoring</dt>
+<dd>
+<div class="block">Monitoring interfaces.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/package-summary.html">org.glassfish.tyrus.core.uri</a> - package org.glassfish.tyrus.core.uri</dt>
+<dd>
+<div class="block">URI matching.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a> - package org.glassfish.tyrus.core.uri.internal</dt>
+<dd>
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/wsadl/model/package-summary.html">org.glassfish.tyrus.core.wsadl.model</a> - package org.glassfish.tyrus.core.wsadl.model</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/gf/cdi/package-summary.html">org.glassfish.tyrus.gf.cdi</a> - package org.glassfish.tyrus.gf.cdi</dt>
+<dd>
+<div class="block">Tyrus CDI integration with Glassfish (and possibly other compatible containers).</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/gf/ejb/package-summary.html">org.glassfish.tyrus.gf.ejb</a> - package org.glassfish.tyrus.gf.ejb</dt>
+<dd>
+<div class="block">Tyrus EJB integration with Glassfish (and possibly other compatible containers).</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> - package org.glassfish.tyrus.server</dt>
+<dd>
+<div class="block">Server implementation.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/servlet/package-summary.html">org.glassfish.tyrus.servlet</a> - package org.glassfish.tyrus.servlet</dt>
+<dd>
+<div class="block">Servlet 3.1 integration.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a> - package org.glassfish.tyrus.spi</dt>
+<dd>
+<div class="block">Tyrus SPI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#ORIGIN_HEADER">ORIGIN_HEADER</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">HTTP "Origin" header name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#ORIGIN_NOT_VERIFIED()">ORIGIN_NOT_VERIFIED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Origin not verified.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/OsgiRegistry.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">OsgiRegistry</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Taken from Jersey 2.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.Type.html#OTHER">OTHER</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a id="I:P">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#PARALLEL_BROADCAST_ENABLED">PARALLEL_BROADCAST_ENABLED</a></span> - Static variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>
+<div class="block">Parallel broadcast support.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#parallelBroadcastEnabled(java.lang.Boolean)">parallelBroadcastEnabled(Boolean)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.Builder.html#parameterMap(java.util.Map)">parameterMap(Map&lt;String, String[]&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></dt>
+<dd>
+<div class="block">Set parameter map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/StrictUtf8.Parser.html#parse(char,char%5B%5D,int,int)">parse(char, char[], int, int)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/StrictUtf8.Parser.html" title="class in org.glassfish.tyrus.core">StrictUtf8.Parser</a></dt>
+<dd>
+<div class="block">Parses a UCS-4 character from the given source buffer, handling surrogates.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/StrictUtf8.Parser.html#parse(char,java.nio.CharBuffer)">parse(char, CharBuffer)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/StrictUtf8.Parser.html" title="class in org.glassfish.tyrus.core">StrictUtf8.Parser</a></dt>
+<dd>
+<div class="block">Parses a UCS-4 character from the given source buffer, handling surrogates.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#parseHeaderValue(java.lang.String)">parseHeaderValue(String)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Parse header value - splits multiple values (quoted, unquoted) separated by
+ comma.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#parseHttpDate(java.lang.String)">parseHttpDate(String)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Parse HTTP date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/StrictUtf8.Parser.html#%3Cinit%3E()">Parser()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/StrictUtf8.Parser.html" title="class in org.glassfish.tyrus.core">StrictUtf8.Parser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#PARTIAL_BINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">PARTIAL_BINARY_MESSAGE_OUT_OF_ORDER(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Partial binary message received out of order.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#PARTIAL_MESSAGE_BUFFER_OVERFLOW()">PARTIAL_MESSAGE_BUFFER_OVERFLOW()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Partial message could not be delivered due to buffer overflow.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#PARTIAL_TEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">PARTIAL_TEXT_MESSAGE_OUT_OF_ORDER(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Partial text message received out of order.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html#path">path</a></span> - Variable in class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#PATH">PATH</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">The URI path component type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#PATH_PARAMETERS">PATH_PARAMETERS</a></span> - org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">Path parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#PATH_SEGMENT">PATH_SEGMENT</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">The URI path component type that is a path segment.</div>
+</dd>
+<dt><a href="javax/websocket/server/PathParam.html" title="annotation in javax.websocket.server"><span class="typeNameLink">PathParam</span></a> - Annotation Type in <a href="javax/websocket/server/package-summary.html">javax.websocket.server</a></dt>
+<dd>
+<div class="block">This annotation may be used to annotate method parameters on server endpoints
+ where a URI-template has been used in the path-mapping of the <a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>
+ annotation.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PathPattern</span></a> - Class in <a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></dt>
+<dd>
+<div class="block">A path pattern that is a regular expression generated from a URI path template.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html#%3Cinit%3E(java.lang.String)">PathPattern(String)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></dt>
+<dd>
+<div class="block">Create a path pattern and post fix with <a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html#capturingZeroOrMoreSegments"><code>PathPattern.RightHandPath.capturingZeroOrMoreSegments</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html#%3Cinit%3E(java.lang.String,org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath)">PathPattern(String, PathPattern.RightHandPath)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></dt>
+<dd>
+<div class="block">Create a path pattern and post fix with a right hand path pattern.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.PathTemplate)">PathPattern(PathTemplate)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></dt>
+<dd>
+<div class="block">Create a path pattern and post fix with <a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html#capturingZeroOrMoreSegments"><code>PathPattern.RightHandPath.capturingZeroOrMoreSegments</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.PathTemplate,org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath)">PathPattern(PathTemplate, PathPattern.RightHandPath)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></dt>
+<dd>
+<div class="block">Create a path pattern and post fix with a right hand path pattern.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PathPattern.RightHandPath</span></a> - Enum in <a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></dt>
+<dd>
+<div class="block">The set of right hand path patterns that may be appended to a path pattern.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PathSegment</span></a> - Interface in <a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></dt>
+<dd>
+<div class="block">Represents a URI path segment and any associated matrix parameters.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PathTemplate</span></a> - Class in <a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></dt>
+<dd>
+<div class="block">A URI template for a URI path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathTemplate.html#%3Cinit%3E(java.lang.String)">PathTemplate(String)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a></dt>
+<dd>
+<div class="block">Create a URI path template and encode (percent escape) any characters of
+ the template that are not valid URI characters.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PatternWithGroups</span></a> - Class in <a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></dt>
+<dd>
+<div class="block">A pattern for matching a string against a regular expression and returning capturing group values for any capturing
+ groups present in the expression.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#%3Cinit%3E()">PatternWithGroups()</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>
+<div class="block">Construct an empty pattern.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#%3Cinit%3E(java.lang.String)">PatternWithGroups(String)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>
+<div class="block">Construct a new pattern.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#%3Cinit%3E(java.lang.String,int%5B%5D)">PatternWithGroups(String, int[])</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>
+<div class="block">Construct a new pattern.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#%3Cinit%3E(java.util.regex.Pattern)">PatternWithGroups(Pattern)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>
+<div class="block">Construct a new pattern.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#%3Cinit%3E(java.util.regex.Pattern,int%5B%5D)">PatternWithGroups(Pattern, int[])</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>
+<div class="block">Construct a new pattern.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html#payloadData(byte%5B%5D)">payloadData(byte[])</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></dt>
+<dd>
+<div class="block">Set payload data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html#payloadLength(long)">payloadLength(long)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></dt>
+<dd>
+<div class="block">Set payload length.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html#PING">PING</a></span> - org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></dt>
+<dd>
+<div class="block">Ping frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html#PING">PING</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></dt>
+<dd>
+<div class="block">Ping type.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/frame/PingFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">PingFrame</span></a> - Class in <a href="org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a></dt>
+<dd>
+<div class="block">Ping frame representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/PingFrame.html#%3Cinit%3E(byte%5B%5D)">PingFrame(byte[])</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/PingFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">PingFrame(Frame)</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html#PONG">PONG</a></span> - org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></dt>
+<dd>
+<div class="block">Pong frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html#PONG">PONG</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></dt>
+<dd>
+<div class="block">Pong type.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/frame/PongFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">PongFrame</span></a> - Class in <a href="org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a></dt>
+<dd>
+<div class="block">Pong frame representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/PongFrame.html#%3Cinit%3E(byte%5B%5D)">PongFrame(byte[])</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/PongFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">PongFrame(Frame)</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><a href="javax/websocket/PongMessage.html" title="interface in javax.websocket"><span class="typeNameLink">PongMessage</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">The PongMessage interface represents a web socket pong.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#PORT">PORT</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">The URI port component type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpointConfig.Builder.html#preferredSubprotocols(java.util.List)">preferredSubprotocols(List&lt;String&gt;)</a></span> - Method in class javax.websocket.<a href="javax/websocket/ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Set the preferred sub protocols for the configuration this builder will build.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html#preInit(org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo,org.glassfish.tyrus.spi.Writer,boolean)">preInit(WebSocketEngine.UpgradeInfo, Writer, boolean)</a></span> - Method in class org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Handshake.html#prepareRequest()">prepareRequest()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></dt>
+<dd>
+<div class="block">Client side only - compose the <a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeRequest</code></a> and store it for further use.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders</span></a>&lt;<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="type parameter in PrimitiveDecoders">T</a>&gt; - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>
+<div class="block">Collection of decoders for all primitive types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html#%3Cinit%3E()">PrimitiveDecoders()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.BooleanDecoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.ByteDecoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.CharacterDecoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.DoubleDecoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.FloatDecoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.IntegerDecoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.LongDecoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.ShortDecoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#process(org.glassfish.tyrus.core.frame.Frame,org.glassfish.tyrus.core.TyrusWebSocket)">process(Frame, TyrusWebSocket)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="block">TODO.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/TyrusClientEngine.html#processError(java.lang.Throwable)">processError(Throwable)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">TyrusClientEngine</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientEngine.html#processError(java.lang.Throwable)">processError(Throwable)</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></dt>
+<dd>
+<div class="block">Process error.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html#processIncoming(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)">processIncoming(ExtendedExtension.ExtensionContext, Frame)</a></span> - Method in interface org.glassfish.tyrus.core.extension.<a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension</a></dt>
+<dd>
+<div class="block">Process incoming frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html#processOutgoing(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)">processOutgoing(ExtendedExtension.ExtensionContext, Frame)</a></span> - Method in interface org.glassfish.tyrus.core.extension.<a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension</a></dt>
+<dd>
+<div class="block">Process outgoing frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/TyrusClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">processResponse(UpgradeResponse, Writer, Connection.CloseListener)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">TyrusClientEngine</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">processResponse(UpgradeResponse, Writer, Connection.CloseListener)</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></dt>
+<dd>
+<div class="block">Process handshake and return <a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeInfo</code></a> with handshake status (<a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html#processTask()">processTask()</a></span> - Method in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor</a></dt>
+<dd>
+<div class="block">Process as much tasks from task queue as possible.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html#processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)">processTask(TaskProcessor.Task)</a></span> - Method in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor</a></dt>
+<dd>
+<div class="block">Add a task to the task queue and process as much tasks from the task queue as possible.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#PROTOCOL_ERROR">PROTOCOL_ERROR</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1002 indicates that an endpoint is terminating the connection due
+ to a protocol error.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#PROTOCOL_ERROR">PROTOCOL_ERROR</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1002 indicates that an endpoint is terminating the connection due
+ to a protocol error.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/ProtocolException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ProtocolException</span></a> - Exception in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Represents issue with parsing or producing websocket frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolException.html#%3Cinit%3E(java.lang.String)">ProtocolException(String)</a></span> - Constructor for exception org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolException.html" title="class in org.glassfish.tyrus.core">ProtocolException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ProtocolHandler</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Tyrus protocol handler.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#PROVIDER_CLASS_COULD_NOT_BE_LOADED(java.lang.Object,java.lang.Object,java.lang.Object)">PROVIDER_CLASS_COULD_NOT_BE_LOADED(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">The class {0} implementing provider {1} could not be loaded: {2}</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#PROVIDER_COULD_NOT_BE_CREATED(java.lang.Object,java.lang.Object,java.lang.Object)">PROVIDER_COULD_NOT_BE_CREATED(Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">The class {0} implementing provider {1} could not be instantiated: {2}</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#PROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object)">PROVIDER_NOT_FOUND(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">The class {0} implementing the provider {1} is not found.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#PROXY_HEADERS">PROXY_HEADERS</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#PROXY_HEADERS"><code>ClientProperties.PROXY_HEADERS</code></a>.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#PROXY_HEADERS">PROXY_HEADERS</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">User property to set additional proxy headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#PROXY_HEADERS">PROXY_HEADERS</a></span> - Static variable in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientSocket</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#PROXY_HEADERS"><code>ClientProperties.PROXY_HEADERS</code></a></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#PROXY_URI">PROXY_URI</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#PROXY_URI"><code>ClientProperties.PROXY_URI</code></a>.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#PROXY_URI">PROXY_URI</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">User property to set proxy URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#PROXY_URI">PROXY_URI</a></span> - Static variable in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientSocket</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#PROXY_URI"><code>ClientProperties.PROXY_URI</code></a>.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#put(K,java.util.List)">put(K, List&lt;V&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#putAll(java.util.Map)">putAll(Map&lt;? extends K, ? extends List&lt;V&gt;&gt;)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#putSingle(K,V)">putSingle(K, V)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Set the value for the key to be a one item list consisting of the supplied
+ value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html#putSingle(K,V)">putSingle(K, V)</a></span> - Method in interface org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Set the key's value to be a one item list consisting of the supplied value.</div>
+</dd>
+</dl>
+<a id="I:Q">
+<!--   -->
+</a>
+<h2 class="title">Q</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#QUERY">QUERY</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">The URI query component type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#QUERY_PARAM">QUERY_PARAM</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">The URI query component type that is a query parameter, space character is encoded as <code>+</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#QUERY_PARAM_SPACE_ENCODED">QUERY_PARAM_SPACE_ENCODED</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">The URI query component type that is a query parameter, space character is encoded as <code>%20</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#QUERY_STRING">QUERY_STRING</a></span> - org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">Query string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.Builder.html#queryString(java.lang.String)">queryString(String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></dt>
+<dd>
+<div class="block">Set query string.</div>
+</dd>
+</dl>
+<a id="I:R">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><a href="org/glassfish/tyrus/core/coder/ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">ReaderDecoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>
+<div class="block">Built in <a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>Reader</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/ReaderDecoder.html#%3Cinit%3E()">ReaderDecoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">ReaderDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/spi/ReadHandler.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ReadHandler</span></a> - Interface in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Read handler provides a way for a transport to pass websocket
+ connection data to tyrus runtime.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#RECONNECT_HANDLER">RECONNECT_HANDLER</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#RECONNECT_HANDLER"><code>ClientProperties.RECONNECT_HANDLER</code></a>.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#RECONNECT_HANDLER">RECONNECT_HANDLER</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">Property usable in <a href="org/glassfish/tyrus/client/ClientManager.html#getProperties()"><code>ClientManager.getProperties()</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html#%3Cinit%3E()">ReconnectHandler()</a></span> - Constructor for class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client">ClientManager.ReconnectHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#REDIRECT_ENABLED">REDIRECT_ENABLED</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">HTTP Redirect support.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#REDIRECT_THRESHOLD">REDIRECT_THRESHOLD</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">The maximal number of redirects during single handshake.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/RedirectException.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">RedirectException</span></a> - Exception in <a href="org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></dt>
+<dd>
+<div class="block">This exception is set as a cause of <a href="javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown from <a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...)
+ when any of the Redirect HTTP response status codes (300, 301, 302, 303, 307, 308) is received as a handshake
+ response and:
+ 
+ 
+ <a href="org/glassfish/tyrus/client/ClientProperties.html#REDIRECT_ENABLED"><code>ClientProperties.REDIRECT_ENABLED</code></a> is not enabled
+ 
+ 
+ or the chained redirection count exceeds the value of <a href="org/glassfish/tyrus/client/ClientProperties.html#REDIRECT_THRESHOLD"><code>ClientProperties.REDIRECT_THRESHOLD</code></a>
+ 
+ 
+ or Infinite redirection loop is detected
+ 
+ 
+ or <a href="org/glassfish/tyrus/spi/UpgradeResponse.html#LOCATION">"Location"</a> response header is missing, empty or does not contain a valid <code>URI</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/RedirectException.html#%3Cinit%3E(int,java.lang.String)">RedirectException(int, String)</a></span> - Constructor for exception org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/RedirectException.html" title="class in org.glassfish.tyrus.client">RedirectException</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ReflectionHelper</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Utility methods for Java reflection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#%3Cinit%3E()">ReflectionHelper()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ReflectionHelper.ClassTypePair</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">A tuple consisting of a class and type of the class.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ReflectionHelper.DeclaringClassInterfacePair</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">A tuple consisting of a concrete class, declaring class that declares a generic interface type.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ReflectionHelper.TypeClassPair</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#register(java.lang.Class)">register(Class&lt;?&gt;)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#register(java.lang.Class,java.lang.String)">register(Class&lt;?&gt;, String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WebSocketEngine.html#register(java.lang.Class,java.lang.String)">register(Class&lt;?&gt;, String)</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></dt>
+<dd>
+<div class="block">Register endpoint class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#register(javax.websocket.server.ServerEndpointConfig)">register(ServerEndpointConfig)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#register(javax.websocket.server.ServerEndpointConfig,java.lang.String)">register(ServerEndpointConfig, String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WebSocketEngine.html#register(javax.websocket.server.ServerEndpointConfig,java.lang.String)">register(ServerEndpointConfig, String)</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></dt>
+<dd>
+<div class="block">Register <a href="javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html#registerAuthProvider(java.lang.String,org.glassfish.tyrus.client.auth.Authenticator)">registerAuthProvider(String, Authenticator)</a></span> - Method in class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></dt>
+<dd>
+<div class="block">Register <a href="org/glassfish/tyrus/client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> for provided authentication scheme.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#registerBroadcastListener(java.lang.String,org.glassfish.tyrus.core.cluster.BroadcastListener)">registerBroadcastListener(String, BroadcastListener)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Register broadcast listener.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#registerSession(java.lang.String,java.lang.String,org.glassfish.tyrus.core.cluster.SessionEventListener)">registerSession(String, String, SessionEventListener)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Register local session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#registerSessionListener(java.lang.String,org.glassfish.tyrus.core.cluster.SessionListener)">registerSessionListener(String, SessionListener)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Register session listener.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#relativize(java.net.URI,java.net.URI)">relativize(URI, URI)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Relativize URI with respect to a base URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.Builder.html#remoteAddr(java.lang.String)">remoteAddr(String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></dt>
+<dd>
+<div class="block">Set remote address.</div>
+</dd>
+<dt><a href="javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket"><span class="typeNameLink">RemoteEndpoint</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">The RemoteEndpoint object is supplied by the container and represents the 
+ 'other end' or peer of the Web Socket conversation.</div>
+</dd>
+<dt><a href="javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket"><span class="typeNameLink">RemoteEndpoint.Async</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages asynchronously.</div>
+</dd>
+<dt><a href="javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket"><span class="typeNameLink">RemoteEndpoint.Basic</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages synchronously.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">RemoteSession</span></a> - Class in <a href="org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></dt>
+<dd>
+<div class="block">Remote session represents session originating from another node.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#%3Cinit%3E(java.lang.String,org.glassfish.tyrus.core.cluster.ClusterContext,java.util.Map,org.glassfish.tyrus.core.TyrusEndpointWrapper,javax.websocket.Session)">RemoteSession(String, ClusterContext, Map&lt;RemoteSession.DistributedMapKey, Object&gt;, TyrusEndpointWrapper, Session)</a></span> - Constructor for class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">RemoteSession.DistributedMapKey</span></a> - Enum in <a href="org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#remove(java.lang.Object)">remove(Object)</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler(MessageHandler)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Remove the given MessageHandler from the set belonging to this session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler(MessageHandler)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">This method is not supported on <a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/MessageHandlerManager.html#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler(MessageHandler)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></dt>
+<dd>
+<div class="block">Remove <a href="javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a> from the manager.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler(MessageHandler)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#removeSession(java.lang.String,java.lang.String)">removeSession(String, String)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Remove session from this Cluster context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ComponentProviderService.html#removeSession(javax.websocket.Session)">removeSession(Session)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></dt>
+<dd>
+<div class="block">Remove <a href="javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a> from cache.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#REQUEST_PARAMETER_MAP">REQUEST_PARAMETER_MAP</a></span> - org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">Request Parameter map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#REQUEST_URI">REQUEST_URI</a></span> - org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">Request URI.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">RequestContext</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Implementation of all possible request interfaces.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">RequestContext.Builder</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block"><a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a> builder.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core"><span class="typeNameLink">RequestContext.Builder.IsUserInRoleDelegate</span></a> - Interface in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Is user in role delegate.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.Builder.html#requestURI(java.net.URI)">requestURI(URI)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></dt>
+<dd>
+<div class="block">Set request URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#RESERVED">RESERVED</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">Reserved.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#RESERVED">RESERVED</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">Reserved.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#resolve(java.net.URI,java.lang.String)">resolve(URI, String)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Resolve a relative URI reference against a base URI as defined in
+ <a href="http://tools.ietf.org/html/rfc3986#section-5.4">RFC 3986</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#resolve(java.net.URI,java.net.URI)">resolve(URI, URI)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Resolve a relative URI reference against a base URI as defined in
+ <a href="http://tools.ietf.org/html/rfc3986#section-5.4">RFC 3986</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#resolveTemplateValues(org.glassfish.tyrus.core.uri.internal.UriComponent.Type,java.lang.String,boolean,java.util.Map)">resolveTemplateValues(UriComponent.Type, String, boolean, Map&lt;String, ?&gt;)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Resolves template variables in the given <code>template</code> from <code>_mapValues</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#resolveTypeVariable(java.lang.Class,java.lang.Class,java.lang.reflect.TypeVariable)">resolveTypeVariable(Class, Class, TypeVariable)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Given a type variable resolve the Java class of that variable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/BinaryFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond(TyrusWebSocket)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/CloseFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond(TyrusWebSocket)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/PingFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond(TyrusWebSocket)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/PongFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond(TyrusWebSocket)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TextFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond(TyrusWebSocket)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond(TyrusWebSocket)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></dt>
+<dd>
+<div class="block">Execution part of frame processing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#RESPONSE_CODE_MESSAGE">RESPONSE_CODE_MESSAGE</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">HTTP reason phrase for successful handshake response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#retrieve(java.util.Properties)">retrieve(Properties)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Retrieve settings from (system) properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeResponse.html#RETRY_AFTER">RETRY_AFTER</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></dt>
+<dd>
+<div class="block">Header containing delay or date in which client can try to reconnect to the server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#RETRY_AFTER_SERVICE_UNAVAILABLE">RETRY_AFTER_SERVICE_UNAVAILABLE</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">HTTP Service Unavailable - <a href="org/glassfish/tyrus/spi/UpgradeResponse.html#RETRY_AFTER">"Retry-After"</a> reconnect support.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/RetryAfterException.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">RetryAfterException</span></a> - Exception in <a href="org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></dt>
+<dd>
+<div class="block">This exception is set as a cause of <a href="javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown from <a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...) when HTTP response status code <code>503 - Service Unavailable</code> is
+ received.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/RetryAfterException.html#%3Cinit%3E(java.lang.String,java.lang.Long)">RetryAfterException(String, Long)</a></span> - Constructor for exception org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/RetryAfterException.html" title="class in org.glassfish.tyrus.client">RetryAfterException</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#RSV_INCORRECTLY_SET()">RSV_INCORRECTLY_SET()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">RSV bit(s) incorrectly set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html#rsv1(boolean)">rsv1(boolean)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></dt>
+<dd>
+<div class="block">Set RSV1 flag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html#rsv2(boolean)">rsv2(boolean)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></dt>
+<dd>
+<div class="block">Set RSV2 flag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.Builder.html#rsv3(boolean)">rsv3(boolean)</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></dt>
+<dd>
+<div class="block">Set RSV3 flag.</div>
+</dd>
+</dl>
+<a id="I:S">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#SCHEME">SCHEME</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">The URI scheme component type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#SEC_KEY_INVALID_LENGTH(java.lang.Object)">SEC_KEY_INVALID_LENGTH(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Invalid Sec-WebSocket-Key length.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#SEC_KEY_INVALID_SERVER()">SEC_KEY_INVALID_SERVER()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Sec-WebSocket-Key returned from server does not match expected response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#SEC_KEY_NULL_NOT_ALLOWED()">SEC_KEY_NULL_NOT_ALLOWED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Null Sec-WebSocket-Key is not allowed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/HandshakeResponse.html#SEC_WEBSOCKET_ACCEPT">SEC_WEBSOCKET_ACCEPT</a></span> - Static variable in interface javax.websocket.<a href="javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></dt>
+<dd>
+<div class="block">The Sec-WebSocket-Accept header name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_EXTENSIONS">SEC_WEBSOCKET_EXTENSIONS</a></span> - Static variable in interface javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></dt>
+<dd>
+<div class="block">The Sec-WebSocket-Extensions header name</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_KEY">SEC_WEBSOCKET_KEY</a></span> - Static variable in interface javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></dt>
+<dd>
+<div class="block">The Sec-WebSocket-Key header name</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_PROTOCOL">SEC_WEBSOCKET_PROTOCOL</a></span> - Static variable in interface javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></dt>
+<dd>
+<div class="block">The Sec-WebSocket-Protocol header name</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_VERSION">SEC_WEBSOCKET_VERSION</a></span> - Static variable in interface javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></dt>
+<dd>
+<div class="block">The Sec-WebSocket-Version header name</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#SEC_WS_ORIGIN_HEADER">SEC_WS_ORIGIN_HEADER</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">WebSocket origin header name from previous versions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.Builder.html#secure(boolean)">secure(boolean)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></dt>
+<dd>
+<div class="block">Set secure state.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#SECURE">SECURE</a></span> - org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">Secure flag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html#SELECTOR_THREAD_POOL_CONFIG">SELECTOR_THREAD_POOL_CONFIG</a></span> - Static variable in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientProperties</a></dt>
+<dd>
+<div class="block">Client-side property to set custom selector <code>ThreadPoolConfig</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#SELECTOR_THREAD_POOL_CONFIG">SELECTOR_THREAD_POOL_CONFIG</a></span> - Static variable in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientSocket</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html"><code>.GrizzlyClientProperties#SELECTOR_THREAD_POOL_CONFIG</code></a>.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html#SELECTOR_THREAD_POOL_CONFIG">SELECTOR_THREAD_POOL_CONFIG</a></span> - Static variable in class org.glassfish.tyrus.container.grizzly.server.<a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server">GrizzlyServerContainer</a></dt>
+<dd>
+<div class="block">Server-side property to set custom selector <code>ThreadPoolConfig</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#send(byte%5B%5D)">send(byte[])</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#send(byte%5B%5D,javax.websocket.SendHandler)">send(byte[], SendHandler)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#send(byte%5B%5D,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">send(byte[], SendHandler, WriterInfo)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#send(byte%5B%5D,org.glassfish.tyrus.spi.WriterInfo)">send(byte[], WriterInfo)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#send(java.lang.String)">send(String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#send(java.lang.String,javax.websocket.SendHandler)">send(String, SendHandler)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#send(java.lang.String,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">send(String, SendHandler, WriterInfo)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#send(java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">send(String, WriterInfo)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#SEND_MESSAGE_INFRAGMENT()">SEND_MESSAGE_INFRAGMENT()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Attempting to send a message while sending fragments of another.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendBinary(byte%5B%5D)">sendBinary(byte[])</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendBinary(byte%5B%5D,boolean)">sendBinary(byte[], boolean)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendBinary(byte%5B%5D,boolean,org.glassfish.tyrus.spi.WriterInfo)">sendBinary(byte[], boolean, WriterInfo)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Sends a fragment of a complete message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendBinary(byte%5B%5D,int,int,boolean)">sendBinary(byte[], int, int, boolean)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendBinary(byte%5B%5D,int,int,boolean,org.glassfish.tyrus.spi.WriterInfo)">sendBinary(byte[], int, int, boolean, WriterInfo)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Sends a fragment of a complete message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendBinary(byte%5B%5D,javax.websocket.SendHandler)">sendBinary(byte[], SendHandler)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendBinary(byte%5B%5D,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">sendBinary(byte[], SendHandler, WriterInfo)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Send a binary frame to the remote endpoint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendBinary(byte%5B%5D,org.glassfish.tyrus.spi.WriterInfo)">sendBinary(byte[], WriterInfo)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Send a binary frame to the remote endpoint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#sendBinary(java.lang.String,byte%5B%5D)">sendBinary(String, byte[])</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Send binary message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#sendBinary(java.lang.String,byte%5B%5D,boolean)">sendBinary(String, byte[], boolean)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Send partial binary message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#sendBinary(java.lang.String,byte%5B%5D,javax.websocket.SendHandler)">sendBinary(String, byte[], SendHandler)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Send binary message with <a href="javax/websocket/SendHandler.html" title="interface in javax.websocket"><code>SendHandler</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Async.html#sendBinary(java.nio.ByteBuffer)">sendBinary(ByteBuffer)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></dt>
+<dd>
+<div class="block">Initiates the asynchronous transmission of a binary message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Basic.html#sendBinary(java.nio.ByteBuffer)">sendBinary(ByteBuffer)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></dt>
+<dd>
+<div class="block">Send a binary message, returning when all of the message has been transmitted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Basic.html#sendBinary(java.nio.ByteBuffer,boolean)">sendBinary(ByteBuffer, boolean)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></dt>
+<dd>
+<div class="block">Send a binary message in parts, blocking until all of the message has been transmitted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Async.html#sendBinary(java.nio.ByteBuffer,javax.websocket.SendHandler)">sendBinary(ByteBuffer, SendHandler)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></dt>
+<dd>
+<div class="block">Initiates the asynchronous transmission of a binary message.</div>
+</dd>
+<dt><a href="javax/websocket/SendHandler.html" title="interface in javax.websocket"><span class="typeNameLink">SendHandler</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">A simple callback object for asynchronous sending of web socket messages.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Async.html#sendObject(java.lang.Object)">sendObject(Object)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></dt>
+<dd>
+<div class="block">Initiates the asynchronous transmission of a custom developer object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Basic.html#sendObject(java.lang.Object)">sendObject(Object)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></dt>
+<dd>
+<div class="block">Sends a custom developer object, blocking until it has been transmitted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Async.html#sendObject(java.lang.Object,javax.websocket.SendHandler)">sendObject(Object, SendHandler)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></dt>
+<dd>
+<div class="block">Initiates the asynchronous transmission of a custom developer object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendPing(byte%5B%5D)">sendPing(byte[])</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Sends a <code>ping</code> frame with the specified payload (if any).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#sendPing(java.lang.String,byte%5B%5D)">sendPing(String, byte[])</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Send ping message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.html#sendPing(java.nio.ByteBuffer)">sendPing(ByteBuffer)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></dt>
+<dd>
+<div class="block">Send a Ping message containing the given application data to the remote endpoint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html#sendPing(java.nio.ByteBuffer)">sendPing(ByteBuffer)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">TyrusRemoteEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendPong(byte%5B%5D)">sendPong(byte[])</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Sends a <code>ping</code> frame with the specified payload (if any).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#sendPong(java.lang.String,byte%5B%5D)">sendPong(String, byte[])</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Send pong message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.html#sendPong(java.nio.ByteBuffer)">sendPong(ByteBuffer)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></dt>
+<dd>
+<div class="block">Allows the developer to send an unsolicited Pong message containing the given application
+ data in order to serve as a unidirectional
+ heartbeat for the session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html#sendPong(java.nio.ByteBuffer)">sendPong(ByteBuffer)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">TyrusRemoteEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#sendRawFrame(java.nio.ByteBuffer)">sendRawFrame(ByteBuffer)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="block">Raw frame is always whole (not partial).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendRawFrame(java.nio.ByteBuffer)">sendRawFrame(ByteBuffer)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Send a frame to the remote endpoint.</div>
+</dd>
+<dt><a href="javax/websocket/SendResult.html" title="class in javax.websocket"><span class="typeNameLink">SendResult</span></a> - Class in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">The result of asynchronously sending a web socket message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/SendResult.html#%3Cinit%3E()">SendResult()</a></span> - Constructor for class javax.websocket.<a href="javax/websocket/SendResult.html" title="class in javax.websocket">SendResult</a></dt>
+<dd>
+<div class="block">Construct a SendResult signifying a successful send carrying no exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/SendResult.html#%3Cinit%3E(java.lang.Throwable)">SendResult(Throwable)</a></span> - Constructor for class javax.websocket.<a href="javax/websocket/SendResult.html" title="class in javax.websocket">SendResult</a></dt>
+<dd>
+<div class="block">Construct a SendResult carrying an exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Async.html#sendText(java.lang.String)">sendText(String)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></dt>
+<dd>
+<div class="block">Initiates the asynchronous transmission of a text message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Basic.html#sendText(java.lang.String)">sendText(String)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></dt>
+<dd>
+<div class="block">Send a text message, blocking until all of the message has been transmitted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendText(java.lang.String)">sendText(String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Basic.html#sendText(java.lang.String,boolean)">sendText(String, boolean)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></dt>
+<dd>
+<div class="block">Send a text message in parts, blocking until all of the message has been transmitted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendText(java.lang.String,boolean)">sendText(String, boolean)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendText(java.lang.String,boolean,org.glassfish.tyrus.spi.WriterInfo)">sendText(String, boolean, WriterInfo)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Sends a fragment of a complete message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#sendText(java.lang.String,java.lang.String)">sendText(String, String)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Send text message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#sendText(java.lang.String,java.lang.String,boolean)">sendText(String, String, boolean)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Send partial text message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#sendText(java.lang.String,java.lang.String,javax.websocket.SendHandler)">sendText(String, String, SendHandler)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Send text message with <a href="javax/websocket/SendHandler.html" title="interface in javax.websocket"><code>SendHandler</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Async.html#sendText(java.lang.String,javax.websocket.SendHandler)">sendText(String, SendHandler)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></dt>
+<dd>
+<div class="block">Initiates the asynchronous transmission of a text message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendText(java.lang.String,javax.websocket.SendHandler)">sendText(String, SendHandler)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendText(java.lang.String,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">sendText(String, SendHandler, WriterInfo)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Send a text frame to the remote endpoint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#sendText(java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">sendText(String, WriterInfo)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Send a text frame to the remote endpoint.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server"><span class="typeNameLink">Server</span></a> - Class in <a href="org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></dt>
+<dd>
+<div class="block">Implementation of the WebSocket Server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/Server.html#%3Cinit%3E(java.lang.Class...)">Server(Class&lt;?&gt;...)</a></span> - Constructor for class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server">Server</a></dt>
+<dd>
+<div class="block">Create new server instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/Server.html#%3Cinit%3E(java.lang.String,int,java.lang.String,java.util.Map,java.lang.Class...)">Server(String, int, String, Map&lt;String, Object&gt;, Class&lt;?&gt;...)</a></span> - Constructor for class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server">Server</a></dt>
+<dd>
+<div class="block">Construct new server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/Server.html#%3Cinit%3E(java.lang.String,int,java.lang.String,java.util.Map,java.util.Set)">Server(String, int, String, Map&lt;String, Object&gt;, Set&lt;Class&lt;?&gt;&gt;)</a></span> - Constructor for class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server">Server</a></dt>
+<dd>
+<div class="block">Construct new server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/Server.html#%3Cinit%3E(java.util.Map,java.lang.Class...)">Server(Map&lt;String, Object&gt;, Class&lt;?&gt;...)</a></span> - Constructor for class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server">Server</a></dt>
+<dd>
+<div class="block">Create new server instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#SERVER_KEY_HASH">SERVER_KEY_HASH</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">Server key hash used to compute "Sec-WebSocket-Accept" header value.</div>
+</dd>
+<dt><a href="javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><span class="typeNameLink">ServerApplicationConfig</span></a> - Interface in <a href="javax/websocket/server/package-summary.html">javax.websocket.server</a></dt>
+<dd>
+<div class="block">Developers include implementations of ServerApplicationConfig in an archive containing
+ websocket endpoints (WAR file, or JAR file within the WAR file) in order to specify the websocket 
+ endpoints within the archive the implementation must deploy.</div>
+</dd>
+<dt><a href="javax/websocket/server/ServerContainer.html" title="interface in javax.websocket.server"><span class="typeNameLink">ServerContainer</span></a> - Interface in <a href="javax/websocket/server/package-summary.html">javax.websocket.server</a></dt>
+<dd>
+<div class="block">The ServerContainer is the specialized view of the WebSocketContainer available
+ in server-side deployments.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ServerContainer</span></a> - Interface in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">HTTP server abstraction.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">ServerContainerFactory</span></a> - Class in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Factory used to get instances of <a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ServerContainerFactory.html#%3Cinit%3E()">ServerContainerFactory()</a></span> - Constructor for class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">ServerContainerFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><span class="typeNameLink">ServerEndpoint</span></a> - Annotation Type in <a href="javax/websocket/server/package-summary.html">javax.websocket.server</a></dt>
+<dd>
+<div class="block">This class level annotation declares that the class it decorates
+ is a web socket endpoint that will be deployed and made available in the URI-space
+ of a web socket server.</div>
+</dd>
+<dt><a href="javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><span class="typeNameLink">ServerEndpointConfig</span></a> - Interface in <a href="javax/websocket/server/package-summary.html">javax.websocket.server</a></dt>
+<dd>
+<div class="block">The ServerEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to server endpoints.</div>
+</dd>
+<dt><a href="javax/websocket/server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server"><span class="typeNameLink">ServerEndpointConfig.Builder</span></a> - Class in <a href="javax/websocket/server/package-summary.html">javax.websocket.server</a></dt>
+<dd>
+<div class="block">The ServerEndpointConfig.Builder is a class used for creating
+ <a href="javax/websocket/server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Builder</code></a> objects for the purposes of
+ deploying a server endpoint.</div>
+</dd>
+<dt><a href="javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><span class="typeNameLink">ServerEndpointConfig.Configurator</span></a> - Class in <a href="javax/websocket/server/package-summary.html">javax.websocket.server</a></dt>
+<dd>
+<div class="block">The ServerEndpointConfig.Configurator class may be extended by developers who want to
+ provide custom configuration algorithms, such as intercepting the opening handshake, or
+ providing arbitrary methods and algorithms that can be accessed from each endpoint
+ instance configured with this configurator.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#SERVICE_RESTART">SERVICE_RESTART</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1012 indicates that the service will be restarted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#SERVICE_RESTART">SERVICE_RESTART</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1012 indicates that the service will be restarted.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ServiceConfigurationError</span></a> - Error in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Taken from Jersey 2.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceConfigurationError.html#%3Cinit%3E(java.lang.String)">ServiceConfigurationError(String)</a></span> - Constructor for error org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></dt>
+<dd>
+<div class="block">Constructs a new instance with the specified detail string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceConfigurationError.html#%3Cinit%3E(java.lang.Throwable)">ServiceConfigurationError(Throwable)</a></span> - Constructor for error org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></dt>
+<dd>
+<div class="block">Constructs a new instance that wraps the specified throwable.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/ServiceFinder.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ServiceFinder</span></a>&lt;<a href="org/glassfish/tyrus/core/ServiceFinder.html" title="type parameter in ServiceFinder">T</a>&gt; - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">A simple service-provider lookup mechanism.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ServiceFinder.DefaultServiceIteratorProvider</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">The default service iterator provider that looks up provider classes in
+ META-INF/services files.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ServiceFinder.ServiceIteratorProvider</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Supports iteration of provider instances or classes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html#%3Cinit%3E()">ServiceIteratorProvider()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="javax/websocket/Session.html" title="interface in javax.websocket"><span class="typeNameLink">Session</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">A Web Socket session represents a conversation between two web socket endpoints.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html#SESSION_ALLOWED">SESSION_ALLOWED</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></dt>
+<dd>
+<div class="block">Session can be opened.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#SESSION_CLOSED_IDLE_TIMEOUT()">SESSION_CLOSED_IDLE_TIMEOUT()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">"Session closed by the container because of the idle timeout."</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html#sessionDestroyed()">sessionDestroyed()</a></span> - Method in class org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></dt>
+<dd>
+<div class="block">Called when related <code>HttpSession</code> is destroyed or invalidated.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">SessionEventListener</span></a> - Class in <a href="org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></dt>
+<dd>
+<div class="block">Session event listener.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html#%3Cinit%3E(javax.websocket.Session)">SessionEventListener(Session)</a></span> - Constructor for class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><a href="javax/websocket/SessionException.html" title="class in javax.websocket"><span class="typeNameLink">SessionException</span></a> - Exception in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">A SessionException represents a general exception type reporting problems
+ occurring on a websocket session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/SessionException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,javax.websocket.Session)">SessionException(String, Throwable, Session)</a></span> - Constructor for exception javax.websocket.<a href="javax/websocket/SessionException.html" title="class in javax.websocket">SessionException</a></dt>
+<dd>
+<div class="block">Creates a new instance of this exception with the given message,
+ the wrapped cause of the exception and the session with which
+ the problem is associated.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/cluster/SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">SessionListener</span></a> - Interface in <a href="org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></dt>
+<dd>
+<div class="block">Session listener.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html#%3Cinit%3E()">SessionListener()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.html#setAccessibleMethod(java.lang.reflect.Method)">setAccessibleMethod(Method)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dt>
+<dd>
+<div class="block">Set a method to be accessible.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/WebSocketContainer.html#setAsyncSendTimeout(long)">setAsyncSendTimeout(long)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></dt>
+<dd>
+<div class="block">Sets the number of milliseconds the implementation will timeout
+ attempting to send a websocket message  for all RemoteEndpoints associated
+ with this container.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#setAsyncSendTimeout(long)">setAsyncSendTimeout(long)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#setAsyncSendTimeout(long)">setAsyncSendTimeout(long)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.html#setBatchingAllowed(boolean)">setBatchingAllowed(boolean)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></dt>
+<dd>
+<div class="block">Indicate to the implementation that it is allowed to batch outgoing messages
+ before sending.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html#setBatchingAllowed(boolean)">setBatchingAllowed(boolean)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">TyrusRemoteEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#setCipherConfigured(boolean)">setCipherConfigured(boolean)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#setClientMode(boolean)">setClientMode(boolean)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Set <code>SSLEngine</code> to be configured to work in client mode.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#setCorePoolSize(int)">setCorePoolSize(int)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Set the core thread pool size - the size of the thread pool will never bee smaller than this.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#setDaemon(boolean)">setDaemon(boolean)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Set <code>true</code> if thread pool threads are daemons.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/WebSocketContainer.html#setDefaultMaxBinaryMessageBufferSize(int)">setDefaultMaxBinaryMessageBufferSize(int)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></dt>
+<dd>
+<div class="block">Sets the default maximum size of incoming binary message that this container
+ will buffer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#setDefaultMaxBinaryMessageBufferSize(int)">setDefaultMaxBinaryMessageBufferSize(int)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#setDefaultMaxBinaryMessageBufferSize(int)">setDefaultMaxBinaryMessageBufferSize(int)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/WebSocketContainer.html#setDefaultMaxSessionIdleTimeout(long)">setDefaultMaxSessionIdleTimeout(long)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></dt>
+<dd>
+<div class="block">Sets the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#setDefaultMaxSessionIdleTimeout(long)">setDefaultMaxSessionIdleTimeout(long)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#setDefaultMaxSessionIdleTimeout(long)">setDefaultMaxSessionIdleTimeout(long)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/WebSocketContainer.html#setDefaultMaxTextMessageBufferSize(int)">setDefaultMaxTextMessageBufferSize(int)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></dt>
+<dd>
+<div class="block">Sets the maximum size of incoming text message that this container
+ will buffer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#setDefaultMaxTextMessageBufferSize(int)">setDefaultMaxTextMessageBufferSize(int)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#setDefaultMaxTextMessageBufferSize(int)">setDefaultMaxTextMessageBufferSize(int)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#setEnabledCipherSuites(java.lang.String%5B%5D)">setEnabledCipherSuites(String[])</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Set enabled cipher suites.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#setEnabledProtocols(java.lang.String%5B%5D)">setEnabledProtocols(String[])</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Set enabled protocols.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#setExtensionContext(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">setExtensionContext(ExtendedExtension.ExtensionContext)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="block">Client side.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Handshake.html#setExtensions(java.util.List)">setExtensions(List&lt;Extension&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></dt>
+<dd>
+<div class="block">Client side only - set the list of supported extensions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#setExtensions(java.util.List)">setExtensions(List&lt;Extension&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="block">Client side.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusFuture.html#setFailure(java.lang.Throwable)">setFailure(Throwable)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusFuture.html" title="class in org.glassfish.tyrus.core">TyrusFuture</a></dt>
+<dd>
+<div class="block">Sets the failure result of message writing process.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#setHeartbeatInterval(long)">setHeartbeatInterval(long)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>
+<div class="block">Set an interval in milliseconds between scheduled periodic Pong messages.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#setHostnameVerifier(javax.net.ssl.HostnameVerifier)">setHostnameVerifier(HostnameVerifier)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Set custom hostname verifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#setHostVerificationEnabled(boolean)">setHostVerificationEnabled(boolean)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Set hostname verification.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html#setId(java.lang.String)">setId(String)</a></span> - Method in class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></dt>
+<dd>
+<div class="block">Sets the value of the id property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#setIncomingBufferSize(int)">setIncomingBufferSize(int)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Please use <a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>.TyrusWebSocketEngineBuilder#incomingBufferSize(Integer)</code></a>
+ instead.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html#setIncomingBufferSize(int)">setIncomingBufferSize(int)</a></span> - Method in class org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#setInitialClassLoader(java.lang.ClassLoader)">setInitialClassLoader(ClassLoader)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Specifies the context class loader that will be used by threads in this pool.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.html#setIteratorProvider(org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider)">setIteratorProvider(ServiceFinder.ServiceIteratorProvider)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a></dt>
+<dd>
+<div class="block">Register the service iterator provider to iterate on provider instances
+ or classes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#setKeepAliveTime(long,java.util.concurrent.TimeUnit)">setKeepAliveTime(long, TimeUnit)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">The max period of time a thread will wait for a new task to process.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setKeyManagerFactoryAlgorithm(java.lang.String)">setKeyManagerFactoryAlgorithm(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Sets the key manager factory algorithm.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setKeyPassword(char%5B%5D)">setKeyPassword(char[])</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Password of the key in the <em>key</em> store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setKeyPassword(java.lang.String)">setKeyPassword(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Password of the key in the <em>key</em> store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setKeyStoreBytes(byte%5B%5D)">setKeyStoreBytes(byte[])</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Sets key store payload as byte array.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setKeyStoreFile(java.lang.String)">setKeyStoreFile(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Sets key store file name, also makes sure that if other key store
+ configuration parameters are not set to set them to default values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setKeyStorePassword(char%5B%5D)">setKeyStorePassword(char[])</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Password of <em>key</em> store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setKeyStorePassword(java.lang.String)">setKeyStorePassword(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Password of <em>key</em> store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setKeyStoreProvider(java.lang.String)">setKeyStoreProvider(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Sets the <em>key</em> store provider name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setKeyStoreType(java.lang.String)">setKeyStoreType(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Type of <em>key</em> store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#setMaxBinaryMessageBufferSize(int)">setMaxBinaryMessageBufferSize(int)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Sets the maximum length of incoming binary messages that this Session can buffer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#setMaxBinaryMessageBufferSize(int)">setMaxBinaryMessageBufferSize(int)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">This method is not supported on <a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#setMaxBinaryMessageBufferSize(int)">setMaxBinaryMessageBufferSize(int)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#setMaxIdleTimeout(long)">setMaxIdleTimeout(long)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Set the non-zero number of milliseconds before this session will be closed by the
+ container if it is inactive, ie no messages are either sent or received.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#setMaxIdleTimeout(long)">setMaxIdleTimeout(long)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">This method is not supported on <a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#setMaxIdleTimeout(long)">setMaxIdleTimeout(long)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#setMaxPoolSize(int)">setMaxPoolSize(int)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Set max thread pool size.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Session.html#setMaxTextMessageBufferSize(int)">setMaxTextMessageBufferSize(int)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a></dt>
+<dd>
+<div class="block">Sets the maximum length of incoming text messages that this Session can buffer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#setMaxTextMessageBufferSize(int)">setMaxTextMessageBufferSize(int)</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>
+<div class="block">This method is not supported on <a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#setMaxTextMessageBufferSize(int)">setMaxTextMessageBufferSize(int)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#setMessageEventListener(org.glassfish.tyrus.core.monitoring.MessageEventListener)">setMessageEventListener(MessageEventListener)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="block">Set message event listener.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#setNeedClientAuth(boolean)">setNeedClientAuth(boolean)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Set "need client auth" property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html#setPath(java.lang.String)">setPath(String)</a></span> - Method in class org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></dt>
+<dd>
+<div class="block">Sets the value of the path property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#setPoolName(java.lang.String)">setPoolName(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Set thread pool name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#setPriority(int)">setPriority(int)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Set priority of the threads in thread pool.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#setProtocolConfigured(boolean)">setProtocolConfigured(boolean)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#setQueue(java.util.Queue)">setQueue(Queue&lt;Runnable&gt;)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Set a queue implementation that will be used to temporarily store tasks when all threads in the thread pool are
+ busy.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#setQueueLimit(int)">setQueueLimit(int)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Set the limit of the queue, where tasks are temporarily stored when all threads are busy.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html#setReasonPhrase(java.lang.String)">setReasonPhrase(String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">TyrusUpgradeResponse</a></dt>
+<dd>
+<div class="block">Set HTTP reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeResponse.html#setReasonPhrase(java.lang.String)">setReasonPhrase(String)</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></dt>
+<dd>
+<div class="block">Get HTTP reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusFuture.html#setResult(T)">setResult(T)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusFuture.html" title="class in org.glassfish.tyrus.core">TyrusFuture</a></dt>
+<dd>
+<div class="block">Sets the result of the message writing process.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setSecurityProtocol(java.lang.String)">setSecurityProtocol(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Sets the SSLContext protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/RemoteEndpoint.Async.html#setSendTimeout(long)">setSendTimeout(long)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></dt>
+<dd>
+<div class="block">Sets the number of milliseconds the implementation will timeout
+ attempting to send a websocket message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.html#setSessionId(java.lang.String)">setSessionId(String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></dt>
+<dd>
+<div class="block">Set a session ID that will be used as a common identifier for logged messages related to the same upgrade
+ request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html#setStatus(int)">setStatus(int)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">TyrusUpgradeResponse</a></dt>
+<dd>
+<div class="block">Set HTTP status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeResponse.html#setStatus(int)">setStatus(int)</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></dt>
+<dd>
+<div class="block">Set HTTP status code for this response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Handshake.html#setSubProtocols(java.util.List)">setSubProtocols(List&lt;String&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></dt>
+<dd>
+<div class="block">Client side only - set the list of supported subprotocols.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#setThreadFactory(java.util.concurrent.ThreadFactory)">setThreadFactory(ThreadFactory)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>
+<div class="block">Set <code>ThreadFactory</code> that will be used to create thread pool threads.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setTrustManagerFactoryAlgorithm(java.lang.String)">setTrustManagerFactoryAlgorithm(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Sets the trust manager factory algorithm.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setTrustStoreBytes(byte%5B%5D)">setTrustStoreBytes(byte[])</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Sets trust store payload as byte array.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setTrustStoreFile(java.lang.String)">setTrustStoreFile(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Sets trust store file name, also makes sure that if other trust store
+ configuration parameters are not set to set them to default values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setTrustStorePassword(java.lang.String)">setTrustStorePassword(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Password of <em>trust</em> store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setTrustStoreProvider(java.lang.String)">setTrustStoreProvider(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Sets the <em>trust</em> store provider name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#setTrustStoreType(java.lang.String)">setTrustStoreType(String)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Type of <em>trust</em> store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html#setup(org.glassfish.grizzly.http.server.NetworkListener,org.glassfish.grizzly.filterchain.FilterChainBuilder)">setup(NetworkListener, FilterChainBuilder)</a></span> - Method in class org.glassfish.tyrus.container.grizzly.server.<a href="org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html" title="class in org.glassfish.tyrus.container.grizzly.server">WebSocketAddOn</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#setWantClientAuth(boolean)">setWantClientAuth(boolean)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Set "want client auth" property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#setWebSocket(org.glassfish.tyrus.core.TyrusWebSocket)">setWebSocket(TyrusWebSocket)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="block">Client side.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#setWriter(org.glassfish.tyrus.spi.Writer)">setWriter(Writer)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="block">Set <a href="org/glassfish/tyrus/spi/Writer.html" title="class in org.glassfish.tyrus.spi"><code>Writer</code></a> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#setWriteTimeout(long)">setWriteTimeout(long)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Sets the timeout for the writing operation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#SHARED_CONTAINER">SHARED_CONTAINER</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">When set to <code>true</code> (boolean value), client runtime preserves used container and reuses it for outgoing
+ connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html#SHARED_CONTAINER">SHARED_CONTAINER</a></span> - Static variable in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientContainer</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#SHARED_CONTAINER"><code>ClientProperties.SHARED_CONTAINER</code></a>.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#SHARED_CONTAINER_IDLE_TIMEOUT">SHARED_CONTAINER_IDLE_TIMEOUT</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">Container idle timeout in seconds (<code>Integer</code> value).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html#SHARED_CONTAINER_IDLE_TIMEOUT">SHARED_CONTAINER_IDLE_TIMEOUT</a></span> - Static variable in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientContainer</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#SHARED_CONTAINER_IDLE_TIMEOUT"><code>ClientProperties.SHARED_CONTAINER_IDLE_TIMEOUT</code></a>.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html#%3Cinit%3E()">ShortDecoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/BaseContainer.html#shutdown()">shutdown()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></dt>
+<dd>
+<div class="block">Release executor services managed by this instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/ClusterContext.html#shutdown()">shutdown()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></dt>
+<dd>
+<div class="block">Shutdown this ClusterContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/BaseContainer.html#shutdown(org.glassfish.tyrus.core.BaseContainer.ShutDownCondition)">shutdown(BaseContainer.ShutDownCondition)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></dt>
+<dd>
+<div class="block">Release executor services managed by this instance if the condition passed in the parameter is fulfilled.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#size()">size()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#SOCKET_BINDING">SOCKET_BINDING</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">Property name for defining local binding address for all socket created by the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#SOCKET_NOT_CONNECTED()">SOCKET_NOT_CONNECTED()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Socket is not connected.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#SSL_ENGINE_CONFIGURATOR">SSL_ENGINE_CONFIGURATOR</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#SSL_ENGINE_CONFIGURATOR"><code>ClientProperties.SSL_ENGINE_CONFIGURATOR</code></a>.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#SSL_ENGINE_CONFIGURATOR">SSL_ENGINE_CONFIGURATOR</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">Property usable in <a href="org/glassfish/tyrus/client/ClientManager.html#getProperties()"><code>ClientManager.getProperties()</code></a> as a key for SSL configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html#SSL_ENGINE_CONFIGURATOR">SSL_ENGINE_CONFIGURATOR</a></span> - Static variable in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientContainer</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/client/ClientProperties.html#SSL_ENGINE_CONFIGURATOR"><code>ClientProperties.SSL_ENGINE_CONFIGURATOR</code></a>.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#sslContext">sslContext</a></span> - Variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#sslContextConfiguration">sslContextConfiguration</a></span> - Variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">SslContextConfigurator</span></a> - Class in <a href="org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></dt>
+<dd>
+<div class="block">Utility class, which helps to configure ssl context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#%3Cinit%3E()">SslContextConfigurator()</a></span> - Constructor for class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Default constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#%3Cinit%3E(boolean)">SslContextConfigurator(boolean)</a></span> - Constructor for class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Constructor that allows you creating empty configuration.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">SslEngineConfigurator</span></a> - Class in <a href="org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></dt>
+<dd>
+<div class="block">SSLEngineConfigurator class from Grizzly project.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#%3Cinit%3E()">SslEngineConfigurator()</a></span> - Constructor for class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Default constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#%3Cinit%3E(javax.net.ssl.SSLContext)">SslEngineConfigurator(SSLContext)</a></span> - Constructor for class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Create SSL Engine configuration basing on passed <code>SSLContext</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#%3Cinit%3E(javax.net.ssl.SSLContext,boolean,boolean,boolean)">SslEngineConfigurator(SSLContext, boolean, boolean, boolean)</a></span> - Constructor for class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Create SSL Engine configuration based on passed <code>SSLContext</code>,
+ using passed client mode, need/want client auth parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#%3Cinit%3E(org.glassfish.tyrus.client.SslContextConfigurator)">SslEngineConfigurator(SslContextConfigurator)</a></span> - Constructor for class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Create SSL Engine configuration based on passed <a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#%3Cinit%3E(org.glassfish.tyrus.client.SslContextConfigurator,boolean,boolean,boolean)">SslEngineConfigurator(SslContextConfigurator, boolean, boolean, boolean)</a></span> - Constructor for class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Create SSL Engine configuration basing on passed <a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#%3Cinit%3E(org.glassfish.tyrus.client.SslEngineConfigurator)">SslEngineConfigurator(SslEngineConfigurator)</a></span> - Constructor for class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">Copy constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/Server.html#start()">start()</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server">Server</a></dt>
+<dd>
+<div class="block">Start the server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#start(java.lang.String,int)">start(String, int)</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>
+<div class="block">Start the container.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ServerContainer.html#start(java.lang.String,int)">start(String, int)</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></dt>
+<dd>
+<div class="block">Start the server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/Server.html#STATIC_CONTENT_ROOT">STATIC_CONTENT_ROOT</a></span> - Static variable in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server">Server</a></dt>
+<dd>
+<div class="block">Path to static content to be served by created Server instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/Server.html#stop()">stop()</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server">Server</a></dt>
+<dd>
+<div class="block">Stop the server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#stop()">stop()</a></span> - Method in class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>
+<div class="block">Undeploy all endpoints and stop underlying <a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ServerContainer.html#stop()">stop()</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></dt>
+<dd>
+<div class="block">Stop the server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#store">store</a></span> - Variable in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Backing store for the [key, multi-value] pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#stream(boolean,byte%5B%5D,int,int)">stream(boolean, byte[], int, int)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#stream(boolean,byte%5B%5D,int,int,org.glassfish.tyrus.spi.WriterInfo)">stream(boolean, byte[], int, int, WriterInfo)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#stream(boolean,java.lang.String)">stream(boolean, String)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#stream(boolean,java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">stream(boolean, String, WriterInfo)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/StrictUtf8.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">StrictUtf8</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/StrictUtf8.html#%3Cinit%3E()">StrictUtf8()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/StrictUtf8.html" title="class in org.glassfish.tyrus.core">StrictUtf8</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/StrictUtf8.Parser.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">StrictUtf8.Parser</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Surrogate parsing support.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.Stringifier.html#%3Cinit%3E()">Stringifier()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#stringifyUpgradeRequest(org.glassfish.tyrus.spi.UpgradeRequest)">stringifyUpgradeRequest(UpgradeRequest)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Converts upgrade request to a HTTP-formatted string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#stringifyUpgradeResponse(org.glassfish.tyrus.spi.UpgradeResponse)">stringifyUpgradeResponse(UpgradeResponse)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Converts upgrade response to a HTTP-formatted string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/ClientEndpoint.html#subprotocols()">subprotocols()</a></span> - Method in annotation type javax.websocket.<a href="javax/websocket/ClientEndpoint.html" title="annotation in javax.websocket">ClientEndpoint</a></dt>
+<dd>
+<div class="block">The names of the subprotocols this client supports.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpoint.html#subprotocols()">subprotocols()</a></span> - Method in annotation type javax.websocket.server.<a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server">ServerEndpoint</a></dt>
+<dd>
+<div class="block">The ordered array of web socket protocols this endpoint supports.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpointConfig.Builder.html#subprotocols(java.util.List)">subprotocols(List&lt;String&gt;)</a></span> - Method in class javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Sets the subprotocols to use in the configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html#subprotocols(java.util.List)">subprotocols(List&lt;String&gt;)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></dt>
+<dd>
+<div class="block">Sets the subprotocols to use in the configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html#SUCCESS">SUCCESS</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></dt>
+<dd>
+<div class="block">Upgrade process was successful.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html#SUCCESS">SUCCESS</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></dt>
+<dd>
+<div class="block">Upgrade is successful.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.TracingThreshold.html#SUMMARY">SUMMARY</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></dt>
+<dd>
+<div class="block">A less verbose tracing, an equivalent to <code>Level.FINER</code> logging level.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html#SUPER">SUPER</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></dt>
+<dd>
+<div class="block">RemoteEndpoint</div>
+</dd>
+</dl>
+<a id="I:T">
+<!--   -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html#t">t</a></span> - Variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a></dt>
+<dd>
+<div class="block">The type of the class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html#t">t</a></span> - Variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html#%3Cinit%3E()">Task()</a></span> - Constructor for class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Task</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">TaskProcessor</span></a> - Class in <a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></dt>
+<dd>
+<div class="block">A class responsible for processing <a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client"><code>TaskProcessor.Task</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html#%3Cinit%3E()">TaskProcessor()</a></span> - Constructor for class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html#%3Cinit%3E(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Condition)">TaskProcessor(TaskProcessor.Condition)</a></span> - Constructor for class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">TaskProcessor.Condition</span></a> - Interface in <a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></dt>
+<dd>
+<div class="block">Condition used in <a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html#processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)"><code>TaskProcessor.processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">TaskProcessor.Task</span></a> - Class in <a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></dt>
+<dd>
+<div class="block">Generic task representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html#TEXT">TEXT</a></span> - org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></dt>
+<dd>
+<div class="block">Text frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html#TEXT">TEXT</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></dt>
+<dd>
+<div class="block">Text type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html#TEXT_CONTINUATION">TEXT_CONTINUATION</a></span> - org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></dt>
+<dd>
+<div class="block">Continuation text frame.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html#TEXT_CONTINUATION">TEXT_CONTINUATION</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></dt>
+<dd>
+<div class="block">Continuation text type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#TEXT_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">TEXT_MESSAGE_HANDLER_NOT_FOUND(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Text message handler not found.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#TEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">TEXT_MESSAGE_OUT_OF_ORDER(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Text message received out of order.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">TextFrame</span></a> - Class in <a href="org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a></dt>
+<dd>
+<div class="block">Text frame representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TextFrame.html#%3Cinit%3E(java.lang.String,boolean,boolean)">TextFrame(String, boolean, boolean)</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TextFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,java.nio.ByteBuffer)">TextFrame(Frame, ByteBuffer)</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TextFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,java.nio.ByteBuffer,boolean)">TextFrame(Frame, ByteBuffer, boolean)</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">ThreadPoolConfig</span></a> - Class in <a href="org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></dt>
+<dd>
+<div class="block">Client thread pool configuration, which might be used to customize client thread pool.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#TLS_HANDSHAKE_FAILURE">TLS_HANDSHAKE_FAILURE</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1015 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#TLS_HANDSHAKE_FAILURE">TLS_HANDSHAKE_FAILURE</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1015 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.html#toArray()">toArray()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a></dt>
+<dd>
+<div class="block">Returns discovered objects all at once.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#toArray(long)">toArray(long)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Convert <code>long</code> to <code>byte[]</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ServiceFinder.html#toClassArray()">toClassArray()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a></dt>
+<dd>
+<div class="block">Returns discovered classes all at once.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#toLong(byte%5B%5D,int,int)">toLong(byte[], int, int)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>
+<div class="block">Convert <code>byte[]</code> to <code>long</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#TOO_BIG">TOO_BIG</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1009 indicates that an endpoint is terminating the connection
+ because it has received a message that is too big for it to
+ process.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#TOO_BIG">TOO_BIG</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1009 indicates that an endpoint is terminating the connection
+ because it has received a message that is too big for it to
+ process.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.html#toString()">toString()</a></span> - Method in class javax.websocket.<a href="javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a></dt>
+<dd>
+<div class="block">Converts the CloseReason to a debug-friendly string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/AuthConfig.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/auth/Credentials.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ThreadPoolConfig.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#toString()">toString()</a></span> - Method in enum org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/CoderWrapper.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/Frame.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TextFrame.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusExtension.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core">TyrusExtension.TyrusParameter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">TyrusRemoteEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusSession.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/Match.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.core.uri.<a href="org/glassfish/tyrus/core/uri/Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Version.html#toString()">toString()</a></span> - Method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Version.html" title="enum in org.glassfish.tyrus.core">Version</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html#toString()">toString()</a></span> - Method in class org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#toString(byte%5B%5D)">toString(byte[])</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#toString(byte%5B%5D,int,int)">toString(byte[], int, int)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/coder/ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">ToStringEncoder</span></a> - Class in <a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></dt>
+<dd>
+<div class="block">Fall-back encoder - encoders any object to string using <code>Object.toString()</code> method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/ToStringEncoder.html#%3Cinit%3E()">ToStringEncoder()</a></span> - Constructor for class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder">ToStringEncoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.TracingThreshold.html#TRACE">TRACE</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></dt>
+<dd>
+<div class="block">A more verbose tracing, an equivalent to <code>Level.FINE</code> logging level.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeResponse.html#TRACING_HEADER_PREFIX">TRACING_HEADER_PREFIX</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></dt>
+<dd>
+<div class="block">Prefix of headers used for including tracing information into handshake response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#TRACING_THRESHOLD">TRACING_THRESHOLD</a></span> - Static variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>
+<div class="block">Property used for configuring tracing threshold.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#TRACING_THRESHOLD">TRACING_THRESHOLD</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">This header allows temporarily changing tracing threshold.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#TRACING_TYPE">TRACING_TYPE</a></span> - Static variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>
+<div class="block">Property used for configuring the type of tracing supported by the server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#tracingThreshold(org.glassfish.tyrus.core.DebugContext.TracingThreshold)">tracingThreshold(DebugContext.TracingThreshold)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></dt>
+<dd>
+<div class="block">Set tracing threshold.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#tracingType(org.glassfish.tyrus.core.DebugContext.TracingType)">tracingType(DebugContext.TracingType)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></dt>
+<dd>
+<div class="block">Set type of tracing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#TRUST_FACTORY_MANAGER_ALGORITHM">TRUST_FACTORY_MANAGER_ALGORITHM</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block"><em>Trust</em> manager factory algorithm name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#TRUST_STORE_FILE">TRUST_STORE_FILE</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block"><em>Trust</em> store file name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#TRUST_STORE_PASSWORD">TRUST_STORE_PASSWORD</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block"><em>Trust</em> store file password - the password used to unlock the <em>trust</em> store file.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#TRUST_STORE_PROVIDER">TRUST_STORE_PROVIDER</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block"><em>Trust</em> store provider name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#TRUST_STORE_TYPE">TRUST_STORE_TYPE</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block"><em>Trust</em> store type (see <code>KeyStore.getType()</code> for more info).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#TRY_AGAIN_LATER">TRY_AGAIN_LATER</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1013 indicates that the service is experiencing overload</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#TRY_AGAIN_LATER">TRY_AGAIN_LATER</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1013 indicates that the service is experiencing overload</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html#%3Cinit%3E(java.lang.reflect.Type,java.lang.Class)">TypeClassPair(Type, Class)</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/client/TyrusClientEngine.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">TyrusClientEngine</span></a> - Class in <a href="org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></dt>
+<dd>
+<div class="block">Tyrus <a href="org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine</code></a> implementation.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html" title="interface in org.glassfish.tyrus.client"><span class="typeNameLink">TyrusClientEngine.ClientHandshakeListener</span></a> - Interface in <a href="org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></dt>
+<dd>
+<div class="block">Called when response is received from the server.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusEndpointWrapper</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Wraps the registered application class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html#%3Cinit%3E(java.lang.Class,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper(Class&lt;? extends Endpoint&gt;, EndpointConfig, ComponentProviderService, WebSocketContainer, String, ServerEndpointConfig.Configurator, TyrusEndpointWrapper.SessionListener, ClusterContext, EndpointEventListener, Boolean)</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></dt>
+<dd>
+<div class="block">Create <a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for class that extends <a href="javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html#%3Cinit%3E(javax.websocket.Endpoint,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper(Endpoint, EndpointConfig, ComponentProviderService, WebSocketContainer, String, ServerEndpointConfig.Configurator, TyrusEndpointWrapper.SessionListener, ClusterContext, EndpointEventListener, Boolean)</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></dt>
+<dd>
+<div class="block">Create <a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for <a href="javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> instance or <a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> instance.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusEndpointWrapper.SessionListener</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Session listener.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusEndpointWrapper.SessionListener.OnOpenResult</span></a> - Enum in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Result of <a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html#onOpen(org.glassfish.tyrus.core.TyrusSession)"><code>TyrusEndpointWrapper.SessionListener.onOpen(TyrusSession)</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusExtension</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">WebSocket <a href="javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a> implementation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusExtension.html#%3Cinit%3E(java.lang.String)">TyrusExtension(String)</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></dt>
+<dd>
+<div class="block">Create <a href="javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a> with specific name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusExtension.html#%3Cinit%3E(java.lang.String,java.util.List)">TyrusExtension(String, List&lt;Extension.Parameter&gt;)</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></dt>
+<dd>
+<div class="block">Create <a href="javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a> with name and parameters.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusExtension.TyrusParameter</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">WebSocket <a href="javax/websocket/Extension.Parameter.html" title="interface in javax.websocket"><code>Extension.Parameter</code></a> implementation.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/frame/TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">TyrusFrame</span></a> - Class in <a href="org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a></dt>
+<dd>
+<div class="block">Frame representation used in Tyrus runtime.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,org.glassfish.tyrus.core.frame.TyrusFrame.FrameType)">TyrusFrame(Frame, TyrusFrame.FrameType)</a></span> - Constructor for class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></dt>
+<dd>
+<div class="block">Constructor.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame"><span class="typeNameLink">TyrusFrame.FrameType</span></a> - Enum in <a href="org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a></dt>
+<dd>
+<div class="block">An Enumeration of frame types.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusFuture.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusFuture</span></a>&lt;<a href="org/glassfish/tyrus/core/TyrusFuture.html" title="type parameter in TyrusFuture">T</a>&gt; - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Simple <code>Future</code> implementation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusFuture.html#%3Cinit%3E()">TyrusFuture()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusFuture.html" title="class in org.glassfish.tyrus.core">TyrusFuture</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet"><span class="typeNameLink">TyrusHttpUpgradeHandler</span></a> - Class in <a href="org/glassfish/tyrus/servlet/package-summary.html">org.glassfish.tyrus.servlet</a></dt>
+<dd>
+<div class="block"><code>HttpUpgradeHandler</code> and <code>ReadListener</code> implementation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html#%3Cinit%3E()">TyrusHttpUpgradeHandler()</a></span> - Constructor for class org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html#%3Cinit%3E(java.lang.String,java.lang.String)">TyrusParameter(String, String)</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core">TyrusExtension.TyrusParameter</a></dt>
+<dd>
+<div class="block">Create <a href="javax/websocket/Extension.Parameter.html" title="interface in javax.websocket"><code>Extension.Parameter</code></a> with name and value.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusRemoteEndpoint</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Wraps the <a href="javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket"><code>RemoteEndpoint</code></a> and represents the other side of the websocket connection.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server"><span class="typeNameLink">TyrusServerConfiguration</span></a> - Class in <a href="org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></dt>
+<dd>
+<div class="block">Container for either deployed <a href="javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><code>ServerApplicationConfig</code></a>s, if any, or deployed classes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html#%3Cinit%3E(java.util.Set,java.util.Set,java.util.Set,org.glassfish.tyrus.core.ErrorCollector)">TyrusServerConfiguration(Set&lt;Class&lt;?&gt;&gt;, Set&lt;Class&lt;?&gt;&gt;, Set&lt;ServerEndpointConfig&gt;, ErrorCollector)</a></span> - Constructor for class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server">TyrusServerConfiguration</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerConfiguration</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html#%3Cinit%3E(java.util.Set,java.util.Set)">TyrusServerConfiguration(Set&lt;Class&lt;?&gt;&gt;, Set&lt;ServerEndpointConfig&gt;)</a></span> - Constructor for class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server">TyrusServerConfiguration</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerConfiguration</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server"><span class="typeNameLink">TyrusServerContainer</span></a> - Class in <a href="org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></dt>
+<dd>
+<div class="block">Server Container Implementation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#%3Cinit%3E(java.util.Set)">TyrusServerContainer(Set&lt;Class&lt;?&gt;&gt;)</a></span> - Constructor for class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerContainer</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/server/TyrusServerContainer.html#%3Cinit%3E(javax.websocket.server.ServerApplicationConfig)">TyrusServerContainer(ServerApplicationConfig)</a></span> - Constructor for class org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerContainer</code></a> using already created <a href="javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><code>ServerApplicationConfig</code></a> instance.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusServerEndpointConfig</span></a> - Interface in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Configuration <a href="javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> enhanced
+ to offer tyrus specific attributes like maxSessions.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusServerEndpointConfig.Builder</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">The TyrusServerEndpointConfig.Builder is a class used for creating
+ <a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core"><code>TyrusServerEndpointConfig.Builder</code></a> objects for the purposes of
+ deploying a server endpoint.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusServerEndpointConfigurator</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Tyrus' implementation of <a href="javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Configurator</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html#%3Cinit%3E()">TyrusServerEndpointConfigurator()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfigurator</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html" title="class in org.glassfish.tyrus.servlet"><span class="typeNameLink">TyrusServletContainerInitializer</span></a> - Class in <a href="org/glassfish/tyrus/servlet/package-summary.html">org.glassfish.tyrus.servlet</a></dt>
+<dd>
+<div class="block">Registers a filter for upgrade handshake.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html#%3Cinit%3E()">TyrusServletContainerInitializer()</a></span> - Constructor for class org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html" title="class in org.glassfish.tyrus.servlet">TyrusServletContainerInitializer</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusSession</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Implementation of the <a href="javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusUpgradeResponse</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">HTTP response representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html#%3Cinit%3E()">TyrusUpgradeResponse()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">TyrusUpgradeResponse</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusWebSocket</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Tyrus representation of web socket connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocket.html#%3Cinit%3E(org.glassfish.tyrus.core.ProtocolHandler,org.glassfish.tyrus.core.TyrusEndpointWrapper)">TyrusWebSocket(ProtocolHandler, TyrusEndpointWrapper)</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></dt>
+<dd>
+<div class="block">Create new instance, set <a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core"><code>ProtocolHandler</code></a> and register <a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusWebSocketEngine</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block"><a href="org/glassfish/tyrus/spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi"><code>WebSocketEngine</code></a> implementation, which handles server-side handshake, validation and data processing.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> builder.</div>
+</dd>
+</dl>
+<a id="I:U">
+<!--   -->
+</a>
+<h2 class="title">U</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#UNEXPECTED_CONDITION">UNEXPECTED_CONDITION</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1011 indicates that a server is terminating the connection because
+ it encountered an unexpected condition that prevented it from
+ fulfilling the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#UNEXPECTED_CONDITION">UNEXPECTED_CONDITION</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1011 indicates that a server is terminating the connection because
+ it encountered an unexpected condition that prevented it from
+ fulfilling the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#UNEXPECTED_END_FRAGMENT()">UNEXPECTED_END_FRAGMENT()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">End fragment sent, but wasn''t processing any previous fragments.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#UNEXPECTED_ERROR_CONNECTION_CLOSE()">UNEXPECTED_ERROR_CONNECTION_CLOSE()</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Unexpected error, closing connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#UNEXPECTED_STATE(java.lang.Object)">UNEXPECTED_STATE(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Unexpected state: {0}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/ProtocolHandler.html#unframe(java.nio.ByteBuffer)">unframe(ByteBuffer)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></dt>
+<dd>
+<div class="block">TODO!</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#UNHANDLED_TEXT_MESSAGE(java.lang.Object)">UNHANDLED_TEXT_MESSAGE(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Unhandled text message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#unregister(org.glassfish.tyrus.core.TyrusEndpointWrapper)">unregister(TyrusEndpointWrapper)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>
+<div class="block">Un-registers the specified <a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> with the <code>WebSocketEngine</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#UNRESERVED">UNRESERVED</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">ALPHA / DIGIT / "-" / "." / "_" / "~" characters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/CompletionHandler.html#updated(E)">updated(E)</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a></dt>
+<dd>
+<div class="block">The callback method may be called, when there is some progress in
+ operation execution, but it is still not completed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Handshake.html#updateHostAndOrigin(org.glassfish.tyrus.spi.UpgradeRequest)">updateHostAndOrigin(UpgradeRequest)</a></span> - Static method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></dt>
+<dd>
+<div class="block">Client side only - Generate host and origin header and put them to the upgrade request headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">upgrade(UpgradeRequest, UpgradeResponse)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WebSocketEngine.html#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">upgrade(UpgradeRequest, UpgradeResponse)</a></span> - Method in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></dt>
+<dd>
+<div class="block">A transport calls this method to upgrade a HTTP request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#UPGRADE">UPGRADE</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">HTTP "Upgrade" header name and "Connection" header expected value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html#UPGRADE_REQUEST_FAILED">UPGRADE_REQUEST_FAILED</a></span> - org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></dt>
+<dd>
+<div class="block">Upgrade process failed.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">UpgradeRequest</span></a> - Class in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Abstraction for a HTTP upgrade request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#%3Cinit%3E()">UpgradeRequest()</a></span> - Constructor for class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">UpgradeResponse</span></a> - Class in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Abstraction for a HTTP upgrade response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeResponse.html#%3Cinit%3E()">UpgradeResponse()</a></span> - Constructor for class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(java.lang.Object,java.lang.Object)">URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Malformed percent-encoded octet at index {0}, invalid hexadecimal digit ''{1}''.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#URI_COMPONENT_ENCODED_OCTET_MALFORMED(java.lang.Object)">URI_COMPONENT_ENCODED_OCTET_MALFORMED(Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">Malformed percent-encoded octet at index {0}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html#URI_COMPONENT_INVALID_CHARACTER(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">URI_COMPONENT_INVALID_CHARACTER(Object, Object, Object, Object)</a></span> - Static method in class org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></dt>
+<dd>
+<div class="block">The string "{0}" for the URI component {1} contains an invalid character, ''{2}'', at index {3}.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">UriComponent</span></a> - Class in <a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></dt>
+<dd>
+<div class="block">Utility class for validating, encoding and decoding components
+ of a URI.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">UriComponent.Type</span></a> - Enum in <a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></dt>
+<dd>
+<div class="block">The URI component type.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">UriTemplate</span></a> - Class in <a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></dt>
+<dd>
+<div class="block">A URI template.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#%3Cinit%3E(java.lang.String)">UriTemplate(String)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Construct a new URI template.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.UriTemplateParser)">UriTemplate(UriTemplateParser)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></dt>
+<dd>
+<div class="block">Construct a new URI template.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">UriTemplateParser</span></a> - Class in <a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></dt>
+<dd>
+<div class="block">A URI template parser that parses JAX-RS specific URI templates.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html#%3Cinit%3E(java.lang.String)">UriTemplateParser(String)</a></span> - Constructor for class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></dt>
+<dd>
+<div class="block">Parse a template.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#USER_INFO">USER_INFO</a></span> - org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">The URI user info component type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#USER_PRINCIPAL">USER_PRINCIPAL</a></span> - org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">User principal.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/RequestContext.Builder.html#userPrincipal(java.security.Principal)">userPrincipal(Principal)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></dt>
+<dd>
+<div class="block">Set <code>Principal</code>.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/Utf8DecodingException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">Utf8DecodingException</span></a> - Exception in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">TODO</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utf8DecodingException.html#%3Cinit%3E()">Utf8DecodingException()</a></span> - Constructor for exception org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utf8DecodingException.html" title="class in org.glassfish.tyrus.core">Utf8DecodingException</a></dt>
+<dd>
+<div class="block">TODO</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">Utils</span></a> - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Utility methods shared among Tyrus modules.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Utils.html#%3Cinit%3E()">Utils()</a></span> - Constructor for class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/core/Utils.Stringifier.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">Utils.Stringifier</span></a>&lt;<a href="org/glassfish/tyrus/core/Utils.Stringifier.html" title="type parameter in Utils.Stringifier">T</a>&gt; - Class in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">Define to <code>String</code> conversion for various types.</div>
+</dd>
+</dl>
+<a id="I:V">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#valid(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">valid(String, UriComponent.Type)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#valid(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">valid(String, UriComponent.Type, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#validate(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">validate(String, UriComponent.Type)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html#validate(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">validate(String, UriComponent.Type, boolean)</a></span> - Static method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dt>
+<dd>
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Version.html#validate(org.glassfish.tyrus.spi.UpgradeRequest)">validate(UpgradeRequest)</a></span> - Method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Version.html" title="enum in org.glassfish.tyrus.core">Version</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#validateConfiguration()">validateConfiguration()</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Validates <a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslContextConfigurator.html#validateConfiguration(boolean)">validateConfiguration(boolean)</a></span> - Method in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></dt>
+<dd>
+<div class="block">Validates <a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Handshake.html#validateServerResponse(org.glassfish.tyrus.spi.UpgradeResponse)">validateServerResponse(UpgradeResponse)</a></span> - Method in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></dt>
+<dd>
+<div class="block">Client side only - validate server response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/PathParam.html#value()">value()</a></span> - Method in annotation type javax.websocket.server.<a href="javax/websocket/server/PathParam.html" title="annotation in javax.websocket.server">PathParam</a></dt>
+<dd>
+<div class="block">The name of the variable used in the URI-template.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/server/ServerEndpoint.html#value()">value()</a></span> - Method in annotation type javax.websocket.server.<a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server">ServerEndpoint</a></dt>
+<dd>
+<div class="block">The URI or URI-template, level-1 (<a href="http://http://tools.ietf.org/html/rfc6570">See RFC 6570</a>) where the endpoint will be deployed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/MaxSessions.html#value()">value()</a></span> - Method in annotation type org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MaxSessions.html" title="annotation in org.glassfish.tyrus.core">MaxSessions</a></dt>
+<dd>
+<div class="block">Maximal number of open sessions.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/collection/Value.html" title="interface in org.glassfish.tyrus.core.collection"><span class="typeNameLink">Value</span></a>&lt;<a href="org/glassfish/tyrus/core/collection/Value.html" title="type parameter in Value">T</a>&gt; - Interface in <a href="org/glassfish/tyrus/core/collection/package-summary.html">org.glassfish.tyrus.core.collection</a></dt>
+<dd>
+<div class="block">A generic value provider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.TracingThreshold.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.TracingType.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.Type.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Version.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Version.html" title="enum in org.glassfish.tyrus.core">Version</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#values()">values()</a></span> - Static method in enum javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.TracingThreshold.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.TracingType.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/DebugContext.Type.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html#values()">values()</a></span> - Method in class org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/Version.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Version.html" title="enum in org.glassfish.tyrus.core">Version</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html#values()">values()</a></span> - Static method in enum org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/collection/Values.html" title="class in org.glassfish.tyrus.core.collection"><span class="typeNameLink">Values</span></a> - Class in <a href="org/glassfish/tyrus/core/collection/package-summary.html">org.glassfish.tyrus.core.collection</a></dt>
+<dd>
+<div class="block">A collection of <a href="org/glassfish/tyrus/core/collection/Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>Value provider</code></a> factory &amp; utility methods.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/Version.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">Version</span></a> - Enum in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">TODO</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/CloseReason.CloseCodes.html#VIOLATED_POLICY">VIOLATED_POLICY</a></span> - javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></dt>
+<dd>
+<div class="block">1008 indicates that an endpoint is terminating the connection
+ because it has received a message that violates its policy.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/CloseReasons.html#VIOLATED_POLICY">VIOLATED_POLICY</a></span> - org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></dt>
+<dd>
+<div class="block">1008 indicates that an endpoint is terminating the connection
+ because it has received a message that violates its policy.</div>
+</dd>
+</dl>
+<a id="I:W">
+<!--   -->
+</a>
+<h2 class="title">W</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/SslEngineConfigurator.html#wantClientAuth">wantClientAuth</a></span> - Variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></dt>
+<dd>
+<div class="block">True when requesting authentication.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeRequest.html#WEBSOCKET">WEBSOCKET</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></dt>
+<dd>
+<div class="block">Expected value in HTTP handshake "Upgrade" header.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html" title="class in org.glassfish.tyrus.container.grizzly.server"><span class="typeNameLink">WebSocketAddOn</span></a> - Class in <a href="org/glassfish/tyrus/container/grizzly/server/package-summary.html">org.glassfish.tyrus.container.grizzly.server</a></dt>
+<dd>
+<div class="block">WebSockets <code>AddOn</code> for the <code>HttpServer</code>.</div>
+</dd>
+<dt><a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><span class="typeNameLink">WebSocketContainer</span></a> - Interface in <a href="javax/websocket/package-summary.html">javax.websocket</a></dt>
+<dd>
+<div class="block">A WebSocketContainer is an implementation provided object that provides applications
+ a view on the container running it.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">WebSocketEngine</span></a> - Interface in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">WebSocket engine is used for upgrading HTTP requests into websocket connections.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">WebSocketEngine.UpgradeInfo</span></a> - Interface in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Upgrade info that includes status for HTTP request upgrading and connection creation details.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><span class="typeNameLink">WebSocketEngine.UpgradeStatus</span></a> - Enum in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Upgrade Status for HTTP request upgrading.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/core/WebSocketException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">WebSocketException</span></a> - Exception in <a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></dt>
+<dd>
+<div class="block">WebSocketException can be thrown during runtime (after handshake).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/WebSocketException.html#%3Cinit%3E(java.lang.String)">WebSocketException(String)</a></span> - Constructor for exception org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a></dt>
+<dd>
+<div class="block">Create new <a href="org/glassfish/tyrus/core/WebSocketException.html" title="class in org.glassfish.tyrus.core"><code>WebSocketException</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Decoder.Text.html#willDecode(java.lang.String)">willDecode(String)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a></dt>
+<dd>
+<div class="block">Answer whether the given String can be decoded into an object of type T.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/NoOpTextCoder.html#willDecode(java.lang.String)">willDecode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html#willDecode(java.lang.String)">willDecode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/ReaderDecoder.html#willDecode(java.lang.String)">willDecode(String)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">ReaderDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/websocket/Decoder.Binary.html#willDecode(java.nio.ByteBuffer)">willDecode(ByteBuffer)</a></span> - Method in interface javax.websocket.<a href="javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a></dt>
+<dd>
+<div class="block">Answer whether the given bytes can be decoded into an object of type T.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/InputStreamDecoder.html#willDecode(java.nio.ByteBuffer)">willDecode(ByteBuffer)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">InputStreamDecoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html#willDecode(java.nio.ByteBuffer)">willDecode(ByteBuffer)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html#willDecode(java.nio.ByteBuffer)">willDecode(ByteBuffer)</a></span> - Method in class org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_HOSTNAME_VERIFIER_CLASS">WLS_HOSTNAME_VERIFIER_CLASS</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_IGNORE_HOSTNAME_VERIFICATION">WLS_IGNORE_HOSTNAME_VERIFICATION</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/ClientContainer.html#WLS_INCOMING_BUFFER_SIZE">WLS_INCOMING_BUFFER_SIZE</a></span> - Static variable in interface org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a></dt>
+<dd>
+<div class="block">WLS version of <a href="org/glassfish/tyrus/spi/ClientContainer.html#INCOMING_BUFFER_SIZE"><code>INCOMING_BUFFER_SIZE</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_MAX_THREADS">WLS_MAX_THREADS</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_PROXY_HOST">WLS_PROXY_HOST</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_PROXY_PASSWORD">WLS_PROXY_PASSWORD</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_PROXY_PORT">WLS_PROXY_PORT</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_PROXY_USERNAME">WLS_PROXY_USERNAME</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_SSL_PROTOCOLS_PROPERTY">WLS_SSL_PROTOCOLS_PROPERTY</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_SSL_TRUSTSTORE_PROPERTY">WLS_SSL_TRUSTSTORE_PROPERTY</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientManager.html#WLS_SSL_TRUSTSTORE_PWD_PROPERTY">WLS_SSL_TRUSTSTORE_PWD_PROPERTY</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/client/ClientProperties.html#WORKER_THREAD_POOL_CONFIG">WORKER_THREAD_POOL_CONFIG</a></span> - Static variable in class org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></dt>
+<dd>
+<div class="block">User property to set worker thread pool configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html#WORKER_THREAD_POOL_CONFIG">WORKER_THREAD_POOL_CONFIG</a></span> - Static variable in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientProperties</a></dt>
+<dd>
+<div class="block">Client-side property to set custom worker <code>ThreadPoolConfig</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#WORKER_THREAD_POOL_CONFIG">WORKER_THREAD_POOL_CONFIG</a></span> - Static variable in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientSocket</a></dt>
+<dd>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html"><code>.GrizzlyClientProperties#WORKER_THREAD_POOL_CONFIG</code></a>.</div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html#WORKER_THREAD_POOL_CONFIG">WORKER_THREAD_POOL_CONFIG</a></span> - Static variable in class org.glassfish.tyrus.container.grizzly.server.<a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server">GrizzlyServerContainer</a></dt>
+<dd>
+<div class="block">Server-side property to set custom worker <code>ThreadPoolConfig</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.html#wrap(org.glassfish.tyrus.core.frame.Frame,byte,java.nio.ByteBuffer)">wrap(Frame, byte, ByteBuffer)</a></span> - Static method in class org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></dt>
+<dd>
+<div class="block"><a href="org/glassfish/tyrus/core/frame/TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame"><code>TyrusFrame</code></a> factory method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler)">write(ByteBuffer, CompletionHandler&lt;ByteBuffer&gt;)</a></span> - Method in class org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/Writer.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler)">write(ByteBuffer, CompletionHandler&lt;ByteBuffer&gt;)</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></dt>
+<dd>
+<div class="block">
+ A backward compatible method called from <a href="org/glassfish/tyrus/spi/Writer.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler,org.glassfish.tyrus.spi.WriterInfo)"><code>Writer.write(ByteBuffer, CompletionHandler, WriterInfo)</code></a>
+ to handover the data for a connection
+ to the transport.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/Writer.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler,org.glassfish.tyrus.spi.WriterInfo)">write(ByteBuffer, CompletionHandler&lt;ByteBuffer&gt;, WriterInfo)</a></span> - Method in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></dt>
+<dd>
+<div class="block">Tyrus runtime calls this method to handover the data for a connection
+ to the transport.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/Writer.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">Writer</span></a> - Class in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Writer class that is used by tyrus runtime to pass outbound websocket data
+ for a connection to a transport.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/Writer.html#%3Cinit%3E()">Writer()</a></span> - Constructor for class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/glassfish/tyrus/spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">WriterInfo</span></a> - Class in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Additional data for the transport.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/WriterInfo.html#%3Cinit%3E(org.glassfish.tyrus.spi.WriterInfo.MessageType,org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType)">WriterInfo(WriterInfo.MessageType, WriterInfo.RemoteEndpointType)</a></span> - Constructor for class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a></dt>
+<dd>
+<div class="block">Create new <code>WriterData</code> instance</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi"><span class="typeNameLink">WriterInfo.MessageType</span></a> - Enum in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>
+<div class="block">Possible WebSocket Message Types.</div>
+</dd>
+<dt><a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi"><span class="typeNameLink">WriterInfo.RemoteEndpointType</span></a> - Enum in <a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html#WSADL_SUPPORT">WSADL_SUPPORT</a></span> - Static variable in class org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dt>
+<dd>
+<div class="block">Wsadl support.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/glassfish/tyrus/spi/UpgradeResponse.html#WWW_AUTHENTICATE">WWW_AUTHENTICATE</a></span> - Static variable in class org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></dt>
+<dd>
+<div class="block">Header containing challenge with authentication scheme and parameters.</div>
+</dd>
+</dl>
+<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:K">K</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a>&nbsp;<a href="allpackages-index.html">All&nbsp;Packages</a></div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/index.html b/apidocs/1.20/index.html
new file mode 100644
index 00000000..51eb953c
--- /dev/null
+++ b/apidocs/1.20/index.html
@@ -0,0 +1,289 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Overview (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Overview (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<div class="header">
+<h1 class="title">Tyrus 1.20 API Documentation</h1>
+</div>
+<main role="main">
+<div class="contentContainer">
+<table class="overviewSummary">
+<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<th class="colFirst" scope="row"><a href="javax/websocket/package-summary.html">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<th class="colFirst" scope="row"><a href="javax/websocket/server/package-summary.html">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/client/auth/package-summary.html">org.glassfish.tyrus.client.auth</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor" id="i4">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/container/grizzly/server/package-summary.html">org.glassfish.tyrus.container.grizzly.server</a></th>
+<td class="colLast">
+<div class="block">Grizzly Server container.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/collection/package-summary.html">org.glassfish.tyrus.core.collection</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor" id="i10">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/extension/package-summary.html">org.glassfish.tyrus.core.extension</a></th>
+<td class="colLast">
+<div class="block">WebSocket Extension support.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representations.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/l10n/package-summary.html">org.glassfish.tyrus.core.l10n</a></th>
+<td class="colLast">
+<div class="block">Common internal localization utility classes.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/monitoring/package-summary.html">org.glassfish.tyrus.core.monitoring</a></th>
+<td class="colLast">
+<div class="block">Monitoring interfaces.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/uri/package-summary.html">org.glassfish.tyrus.core.uri</a></th>
+<td class="colLast">
+<div class="block">URI matching.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/uri/internal/package-summary.html">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/core/wsadl/model/package-summary.html">org.glassfish.tyrus.core.wsadl.model</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i17">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/gf/cdi/package-summary.html">org.glassfish.tyrus.gf.cdi</a></th>
+<td class="colLast">
+<div class="block">Tyrus CDI integration with Glassfish (and possibly other compatible containers).</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/gf/ejb/package-summary.html">org.glassfish.tyrus.gf.ejb</a></th>
+<td class="colLast">
+<div class="block">Tyrus EJB integration with Glassfish (and possibly other compatible containers).</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/servlet/package-summary.html">org.glassfish.tyrus.servlet</a></th>
+<td class="colLast">
+<div class="block">Servlet 3.1 integration.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<th class="colFirst" scope="row"><a href="org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javadoc.sh b/apidocs/1.20/javadoc.sh
new file mode 100755
index 00000000..1f01d1d2
--- /dev/null
+++ b/apidocs/1.20/javadoc.sh
@@ -0,0 +1 @@
+/opt/tools/java/openjdk/jdk-11/latest/bin/javadoc -J-Xmx512m -J-Xms128m @options @packages
\ No newline at end of file
diff --git a/apidocs/1.20/javax/websocket/ClientEndpoint.html b/apidocs/1.20/javax/websocket/ClientEndpoint.html
new file mode 100644
index 00000000..577e1041
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/ClientEndpoint.html
@@ -0,0 +1,373 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEndpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientEndpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Annotation Type ClientEndpoint" class="title">Annotation Type ClientEndpoint</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>@Retention(RUNTIME)
+@Target(TYPE)
+public @interface <span class="memberNameLabel">ClientEndpoint</span></pre>
+<div class="block">The ClientEndpoint annotation a class level annotation is used to denote that a POJO
+ is a web socket client and can be deployed as such. Similar to
+ <a href="server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>, POJOs that are
+ annotated with this annotation can have methods that, using the web socket method level annotations,
+ are web socket lifecycle methods.
+ <p>
+ For example:
+ <pre><code>
+ &#64;ClientEndpoint(subprotocols="chat")
+ public class HelloServer {
+
+     &#64;OnMessage
+     public void processMessageFromServer(String message, Session session) {
+         System.out.println("Message came from the server ! " + message);
+     }
+
+ }
+ </code></pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.optional.element.summary">
+<!--   -->
+</a>
+<h3>Optional Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Optional Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configurator()">configurator</a></span></code></th>
+<td class="colLast">
+<div class="block">An optional custom configurator class that the developer would like to use
+ to provide custom configuration of new instances of this endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decoders()">decoders</a></span></code></th>
+<td class="colLast">
+<div class="block">The array of Java classes that are to act as Decoders for messages coming into
+ the client.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encoders()">encoders</a></span></code></th>
+<td class="colLast">
+<div class="block">The array of Java classes that are to act as Encoders for messages sent by the client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#subprotocols()">subprotocols</a></span></code></th>
+<td class="colLast">
+<div class="block">The names of the subprotocols this client supports.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="subprotocols()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>subprotocols</h4>
+<pre>java.lang.String[]&nbsp;subprotocols</pre>
+<div class="block">The names of the subprotocols this client supports.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the array of names of the subprotocols.</dd>
+</dl>
+<dl>
+<dt>Default:</dt>
+<dd>{}</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="decoders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decoders</h4>
+<pre>java.lang.Class&lt;? extends <a href="Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;[]&nbsp;decoders</pre>
+<div class="block">The array of Java classes that are to act as Decoders for messages coming into
+ the client.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the array of decoders.</dd>
+</dl>
+<dl>
+<dt>Default:</dt>
+<dd>{}</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="encoders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encoders</h4>
+<pre>java.lang.Class&lt;? extends <a href="Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;[]&nbsp;encoders</pre>
+<div class="block">The array of Java classes that are to act as Encoders for messages sent by the client.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the array of decoders.</dd>
+</dl>
+<dl>
+<dt>Default:</dt>
+<dd>{}</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="configurator()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>configurator</h4>
+<pre>java.lang.Class&lt;? extends <a href="ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a>&gt;&nbsp;configurator</pre>
+<div class="block">An optional custom configurator class that the developer would like to use
+ to provide custom configuration of new instances of this endpoint. The implementation
+ creates a new instance of the configurator per logical endpoint.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the custom configurator class, or ClientEndpointConfigurator.class
+ if none was provided in the annotation.</dd>
+</dl>
+<dl>
+<dt>Default:</dt>
+<dd>javax.websocket.ClientEndpointConfig.Configurator.class</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/ClientEndpointConfig.Builder.html b/apidocs/1.20/javax/websocket/ClientEndpointConfig.Builder.html
new file mode 100644
index 00000000..c53b7e67
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/ClientEndpointConfig.Builder.html
@@ -0,0 +1,443 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEndpointConfig.Builder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientEndpointConfig.Builder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEndpointConfig.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Class ClientEndpointConfig.Builder" class="title">Class ClientEndpointConfig.Builder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.ClientEndpointConfig.Builder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></dd>
+</dl>
+<hr>
+<pre>public static final class <span class="typeNameLabel">ClientEndpointConfig.Builder</span>
+extends java.lang.Object</pre>
+<div class="block">The ClientEndpointConfig.Builder is a class used for creating
+ <a href="ClientEndpointConfig.html" title="interface in javax.websocket"><code>ClientEndpointConfig</code></a> objects for the purposes of
+ deploying a client endpoint.
+ Here are some examples:
+ Building a plain configuration with no encoders, decoders, subprotocols or extensions.
+ <code>
+ ClientEndpointConfig cec = ClientEndpointConfig.Builder.create().build();
+ </code>
+ 
+ Building a configuration with no subprotocols and a custom configurator.
+ <pre><code>
+ ClientEndpointConfig customCec = ClientEndpointConfig.Builder.create()
+         .preferredSubprotocols(mySubprotocols)
+         .configurator(new MyClientConfigurator())
+         .build();
+ </code></pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builds a configuration object using the attributes set
+ on this builder.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configurator(javax.websocket.ClientEndpointConfig.Configurator)">configurator</a></span>&#8203;(<a href="ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a>&nbsp;clientEndpointConfigurator)</code></th>
+<td class="colLast">
+<div class="block">Sets the configurator object for the configuration this builder will build.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create()">create</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new builder object with no subprotocols, extensions, encoders,
+ decoders and a <code>null</code> configurator.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decoders(java.util.List)">decoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoders)</code></th>
+<td class="colLast">
+<div class="block">Assign the list of decoder implementation classes the client will use.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encoders(java.util.List)">encoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;&nbsp;encoders)</code></th>
+<td class="colLast">
+<div class="block">Assign the list of encoder implementation classes the client will use.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#extensions(java.util.List)">extensions</a></span>&#8203;(java.util.List&lt;<a href="Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Set the extensions for the configuration this builder will build.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#preferredSubprotocols(java.util.List)">preferredSubprotocols</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;preferredSubprotocols)</code></th>
+<td class="colLast">
+<div class="block">Set the preferred sub protocols for the configuration this builder will build.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="create()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a>&nbsp;create()</pre>
+<div class="block">Creates a new builder object with no subprotocols, extensions, encoders,
+ decoders and a <code>null</code> configurator.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new builder object.</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public&nbsp;<a href="ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;build()</pre>
+<div class="block">Builds a configuration object using the attributes set
+ on this builder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new configuration object.</dd>
+</dl>
+</li>
+</ul>
+<a id="configurator(javax.websocket.ClientEndpointConfig.Configurator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>configurator</h4>
+<pre class="methodSignature">public&nbsp;<a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a>&nbsp;configurator&#8203;(<a href="ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a>&nbsp;clientEndpointConfigurator)</pre>
+<div class="block">Sets the configurator object for the configuration this builder will build.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clientEndpointConfigurator</code> - the configurator</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder instance</dd>
+</dl>
+</li>
+</ul>
+<a id="preferredSubprotocols(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>preferredSubprotocols</h4>
+<pre class="methodSignature">public&nbsp;<a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a>&nbsp;preferredSubprotocols&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;preferredSubprotocols)</pre>
+<div class="block">Set the preferred sub protocols for the configuration this builder will build. The
+ list is treated in order of preference, favorite first, that this client would
+ like to use for its sessions.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>preferredSubprotocols</code> - the preferred subprotocol names.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder instance</dd>
+</dl>
+</li>
+</ul>
+<a id="extensions(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>extensions</h4>
+<pre class="methodSignature">public&nbsp;<a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a>&nbsp;extensions&#8203;(java.util.List&lt;<a href="Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</pre>
+<div class="block">Set the extensions for the configuration this builder will build. The 
+ list is treated in order of preference, favorite first, that the 
+ client would like to use for its sessions.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>extensions</code> - the extensions</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder instance</dd>
+</dl>
+</li>
+</ul>
+<a id="encoders(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encoders</h4>
+<pre class="methodSignature">public&nbsp;<a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a>&nbsp;encoders&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;&nbsp;encoders)</pre>
+<div class="block">Assign the list of encoder implementation classes the client will use.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>encoders</code> - the encoder implementation classes</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the builder instance</dd>
+</dl>
+</li>
+</ul>
+<a id="decoders(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decoders</h4>
+<pre class="methodSignature">public&nbsp;<a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a>&nbsp;decoders&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoders)</pre>
+<div class="block">Assign the list of decoder implementation classes the client will use.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decoders</code> - the decoder implementation classes</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder instance</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEndpointConfig.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/ClientEndpointConfig.Configurator.html b/apidocs/1.20/javax/websocket/ClientEndpointConfig.Configurator.html
new file mode 100644
index 00000000..f6ea90ec
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/ClientEndpointConfig.Configurator.html
@@ -0,0 +1,353 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEndpointConfig.Configurator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientEndpointConfig.Configurator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEndpointConfig.Configurator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Class ClientEndpointConfig.Configurator" class="title">Class ClientEndpointConfig.Configurator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.ClientEndpointConfig.Configurator</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">ClientEndpointConfig.Configurator</span>
+extends java.lang.Object</pre>
+<div class="block">The Configurator class may be extended by developers who want to
+ provide custom configuration algorithms, such as intercepting the opening handshake, or
+ providing arbitrary methods and algorithms that can be accessed from each endpoint
+ instance configured with this configurator.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Configurator</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#afterResponse(javax.websocket.HandshakeResponse)">afterResponse</a></span>&#8203;(<a href="HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>&nbsp;hr)</code></th>
+<td class="colLast">
+<div class="block">This method is called by the implementation after it has received a handshake response
+ from the server as a result of a handshake interaction it initiated.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#beforeRequest(java.util.Map)">beforeRequest</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;&nbsp;headers)</code></th>
+<td class="colLast">
+<div class="block">This method is called by the implementation after it has formulated the handshake
+ request that will be used to initiate the connection to the server, but before it has
+ sent any part of the request.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Configurator</h4>
+<pre>public&nbsp;Configurator()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="beforeRequest(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>beforeRequest</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;beforeRequest&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;&nbsp;headers)</pre>
+<div class="block">This method is called by the implementation after it has formulated the handshake
+ request that will be used to initiate the connection to the server, but before it has
+ sent any part of the request. This allows the developer to inspect and modify the
+ handshake request headers prior to the start of the handshake interaction.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>headers</code> - the mutable map of handshake request headers the implementation is about to send to
+                start the handshake interaction.</dd>
+</dl>
+</li>
+</ul>
+<a id="afterResponse(javax.websocket.HandshakeResponse)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>afterResponse</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;afterResponse&#8203;(<a href="HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>&nbsp;hr)</pre>
+<div class="block">This method is called by the implementation after it has received a handshake response
+ from the server as a result of a handshake interaction it initiated. The developer may implement
+ this method in order to inspect the returning handshake response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hr</code> - the handshake response sent by the server.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEndpointConfig.Configurator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/ClientEndpointConfig.html b/apidocs/1.20/javax/websocket/ClientEndpointConfig.html
new file mode 100644
index 00000000..4c849f92
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/ClientEndpointConfig.html
@@ -0,0 +1,373 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEndpointConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientEndpointConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEndpointConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface ClientEndpointConfig" class="title">Interface ClientEndpointConfig</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ClientEndpointConfig</span>
+extends <a href="EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></pre>
+<div class="block">The ClientEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to client endpoints. Developers deploying 
+ programmatic client endpoints can create instances of this configuration by
+ using a <a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket"><code>ClientEndpointConfig.Builder</code></a>. Developers can override some
+ of the configuration operations by providing an implementation of
+ <a href="ClientEndpointConfig.Configurator.html" title="class in javax.websocket"><code>ClientEndpointConfig.Configurator</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">The ClientEndpointConfig.Builder is a class used for creating
+ <a href="ClientEndpointConfig.html" title="interface in javax.websocket"><code>ClientEndpointConfig</code></a> objects for the purposes of
+ deploying a client endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a></span></code></th>
+<td class="colLast">
+<div class="block">The Configurator class may be extended by developers who want to
+ provide custom configuration algorithms, such as intercepting the opening handshake, or
+ providing arbitrary methods and algorithms that can be accessed from each endpoint
+ instance configured with this configurator.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfigurator()">getConfigurator</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the custom configurator for this configuration.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExtensions()">getExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the extensions, in order of preference, favorite first, that this client would
+ like to use for its sessions.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.util.List&lt;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPreferredSubprotocols()">getPreferredSubprotocols</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the ordered list of sub protocols a client endpoint would like to use,
+ in order of preference, favorite first that this client would
+ like to use for its sessions.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.EndpointConfig">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></h3>
+<code><a href="EndpointConfig.html#getDecoders()">getDecoders</a>, <a href="EndpointConfig.html#getEncoders()">getEncoders</a>, <a href="EndpointConfig.html#getUserProperties()">getUserProperties</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getPreferredSubprotocols()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPreferredSubprotocols</h4>
+<pre class="methodSignature">java.util.List&lt;java.lang.String&gt;&nbsp;getPreferredSubprotocols()</pre>
+<div class="block">Return the ordered list of sub protocols a client endpoint would like to use,
+ in order of preference, favorite first that this client would
+ like to use for its sessions.
+ This list is used to generate the Sec-WebSocket-Protocol header in the opening
+ handshake for clients using this configuration. The first protocol name is the most preferred.
+ See <a href="http://tools.ietf.org/html/rfc6455#section-4.1">Client Opening Handshake</a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list of the preferred subprotocols, the empty list if there are none</dd>
+</dl>
+</li>
+</ul>
+<a id="getExtensions()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExtensions</h4>
+<pre class="methodSignature">java.util.List&lt;<a href="Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;getExtensions()</pre>
+<div class="block">Return the extensions, in order of preference, favorite first, that this client would
+ like to use for its sessions. These are the extensions that will
+ be used to populate the Sec-WebSocket-Extensions header in the opening handshake for clients
+ using this configuration. The first extension in the list is the most preferred extension.
+ See <a href="http://tools.ietf.org/html/rfc6455#section-9.1">Negotiating Extensions</a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list of extensions, the empty list if there are none.</dd>
+</dl>
+</li>
+</ul>
+<a id="getConfigurator()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConfigurator</h4>
+<pre class="methodSignature"><a href="ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a>&nbsp;getConfigurator()</pre>
+<div class="block">Return the custom configurator for this configuration. If the developer
+ did not provide one, the platform default configurator is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the configurator in use with this configuration.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEndpointConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/CloseReason.CloseCode.html b/apidocs/1.20/javax/websocket/CloseReason.CloseCode.html
new file mode 100644
index 00000000..0a7d5467
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/CloseReason.CloseCode.html
@@ -0,0 +1,273 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CloseReason.CloseCode (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CloseReason.CloseCode (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloseReason.CloseCode.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface CloseReason.CloseCode" class="title">Interface CloseReason.CloseCode</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="CloseReason.html" title="class in javax.websocket">CloseReason</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">CloseReason.CloseCode</span></pre>
+<div class="block">A marker interface for the close codes. This interface may be
+ implemented by enumerations that contain web socket close codes, for
+ example enumerations that contain all the in use close codes as of
+ web socket 1.0, or an enumeration that contains close codes
+ that are currently reserved for special use by the web socket
+ specification.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCode()">getCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the code number, for example the integer '1000' for normal closure.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCode</h4>
+<pre class="methodSignature">int&nbsp;getCode()</pre>
+<div class="block">Returns the code number, for example the integer '1000' for normal closure.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the code number</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloseReason.CloseCode.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/CloseReason.CloseCodes.html b/apidocs/1.20/javax/websocket/CloseReason.CloseCodes.html
new file mode 100644
index 00000000..db911279
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/CloseReason.CloseCodes.html
@@ -0,0 +1,704 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CloseReason.CloseCodes (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CloseReason.CloseCodes (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":10,"i2":9,"i3":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloseReason.CloseCodes.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Enum CloseReason.CloseCodes" class="title">Enum CloseReason.CloseCodes</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.CloseReason.CloseCodes</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a>&gt;</code>, <code><a href="CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="CloseReason.html" title="class in javax.websocket">CloseReason</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">CloseReason.CloseCodes</span>
+extends java.lang.Enum&lt;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a>&gt;
+implements <a href="CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></pre>
+<div class="block">An Enumeration of status codes for a web socket close that
+ are defined in the specification.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CANNOT_ACCEPT">CANNOT_ACCEPT</a></span></code></th>
+<td class="colLast">
+<div class="block">1003 indicates that an endpoint is terminating the connection
+ because it has received a type of data it cannot accept (e.g., an
+ endpoint that understands only text data MAY send this if it
+ receives a binary message).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CLOSED_ABNORMALLY">CLOSED_ABNORMALLY</a></span></code></th>
+<td class="colLast">
+<div class="block">1006 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#GOING_AWAY">GOING_AWAY</a></span></code></th>
+<td class="colLast">
+<div class="block">1001 indicates that an endpoint is "going away", such as a server
+ going down or a browser having navigated away from a page.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NO_EXTENSION">NO_EXTENSION</a></span></code></th>
+<td class="colLast">
+<div class="block">1010 indicates that an endpoint (client) is terminating the
+ connection because it has expected the server to negotiate one or
+ more extension, but the server didn't return them in the response
+ message of the WebSocket handshake.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NO_STATUS_CODE">NO_STATUS_CODE</a></span></code></th>
+<td class="colLast">
+<div class="block">1005 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NORMAL_CLOSURE">NORMAL_CLOSURE</a></span></code></th>
+<td class="colLast">
+<div class="block">1000 indicates a normal closure, meaning that the purpose for
+ which the connection was established has been fulfilled.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NOT_CONSISTENT">NOT_CONSISTENT</a></span></code></th>
+<td class="colLast">
+<div class="block">1007 indicates that an endpoint is terminating the connection
+ because it has received data within a message that was not
+ consistent with the type of the message (e.g., non-UTF-8
+ data within a text message).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PROTOCOL_ERROR">PROTOCOL_ERROR</a></span></code></th>
+<td class="colLast">
+<div class="block">1002 indicates that an endpoint is terminating the connection due
+ to a protocol error.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#RESERVED">RESERVED</a></span></code></th>
+<td class="colLast">
+<div class="block">Reserved.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SERVICE_RESTART">SERVICE_RESTART</a></span></code></th>
+<td class="colLast">
+<div class="block">1012 indicates that the service will be restarted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TLS_HANDSHAKE_FAILURE">TLS_HANDSHAKE_FAILURE</a></span></code></th>
+<td class="colLast">
+<div class="block">1015 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TOO_BIG">TOO_BIG</a></span></code></th>
+<td class="colLast">
+<div class="block">1009 indicates that an endpoint is terminating the connection
+ because it has received a message that is too big for it to
+ process.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TRY_AGAIN_LATER">TRY_AGAIN_LATER</a></span></code></th>
+<td class="colLast">
+<div class="block">1013 indicates that the service is experiencing overload</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#UNEXPECTED_CONDITION">UNEXPECTED_CONDITION</a></span></code></th>
+<td class="colLast">
+<div class="block">1011 indicates that a server is terminating the connection because
+ it encountered an unexpected condition that prevented it from
+ fulfilling the request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#VIOLATED_POLICY">VIOLATED_POLICY</a></span></code></th>
+<td class="colLast">
+<div class="block">1008 indicates that an endpoint is terminating the connection
+ because it has received a message that violates its policy.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCloseCode(int)">getCloseCode</a></span>&#8203;(int&nbsp;code)</code></th>
+<td class="colLast">
+<div class="block">Creates a CloseCode from the given int code number.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCode()">getCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the code number of this status code.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="NORMAL_CLOSURE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NORMAL_CLOSURE</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> NORMAL_CLOSURE</pre>
+<div class="block">1000 indicates a normal closure, meaning that the purpose for
+ which the connection was established has been fulfilled.</div>
+</li>
+</ul>
+<a id="GOING_AWAY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GOING_AWAY</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> GOING_AWAY</pre>
+<div class="block">1001 indicates that an endpoint is "going away", such as a server
+ going down or a browser having navigated away from a page.</div>
+</li>
+</ul>
+<a id="PROTOCOL_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROTOCOL_ERROR</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> PROTOCOL_ERROR</pre>
+<div class="block">1002 indicates that an endpoint is terminating the connection due
+ to a protocol error.</div>
+</li>
+</ul>
+<a id="CANNOT_ACCEPT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CANNOT_ACCEPT</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> CANNOT_ACCEPT</pre>
+<div class="block">1003 indicates that an endpoint is terminating the connection
+ because it has received a type of data it cannot accept (e.g., an
+ endpoint that understands only text data MAY send this if it
+ receives a binary message).</div>
+</li>
+</ul>
+<a id="RESERVED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESERVED</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> RESERVED</pre>
+<div class="block">Reserved.  The specific meaning might be defined in the future.</div>
+</li>
+</ul>
+<a id="NO_STATUS_CODE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NO_STATUS_CODE</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> NO_STATUS_CODE</pre>
+<div class="block">1005 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.  It is designated for use in
+ applications expecting a status code to indicate that no status
+ code was actually present.</div>
+</li>
+</ul>
+<a id="CLOSED_ABNORMALLY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLOSED_ABNORMALLY</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> CLOSED_ABNORMALLY</pre>
+<div class="block">1006 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.  It is designated for use in
+ applications expecting a status code to indicate that the
+ connection was closed abnormally, e.g., without sending or
+ receiving a Close control frame.</div>
+</li>
+</ul>
+<a id="NOT_CONSISTENT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NOT_CONSISTENT</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> NOT_CONSISTENT</pre>
+<div class="block">1007 indicates that an endpoint is terminating the connection
+ because it has received data within a message that was not
+ consistent with the type of the message (e.g., non-UTF-8
+ data within a text message).</div>
+</li>
+</ul>
+<a id="VIOLATED_POLICY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>VIOLATED_POLICY</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> VIOLATED_POLICY</pre>
+<div class="block">1008 indicates that an endpoint is terminating the connection
+ because it has received a message that violates its policy.  This
+ is a generic status code that can be returned when there is no
+ other more suitable status code (e.g., 1003 or 1009) or if there
+ is a need to hide specific details about the policy.</div>
+</li>
+</ul>
+<a id="TOO_BIG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TOO_BIG</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> TOO_BIG</pre>
+<div class="block">1009 indicates that an endpoint is terminating the connection
+ because it has received a message that is too big for it to
+ process.</div>
+</li>
+</ul>
+<a id="NO_EXTENSION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NO_EXTENSION</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> NO_EXTENSION</pre>
+<div class="block">1010 indicates that an endpoint (client) is terminating the
+ connection because it has expected the server to negotiate one or
+ more extension, but the server didn't return them in the response
+ message of the WebSocket handshake.  The list of extensions that
+ are needed SHOULD appear in the /reason/ part of the Close frame.
+ Note that this status code is not used by the server, because it
+ can fail the WebSocket handshake instead.</div>
+</li>
+</ul>
+<a id="UNEXPECTED_CONDITION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNEXPECTED_CONDITION</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> UNEXPECTED_CONDITION</pre>
+<div class="block">1011 indicates that a server is terminating the connection because
+ it encountered an unexpected condition that prevented it from
+ fulfilling the request.</div>
+</li>
+</ul>
+<a id="SERVICE_RESTART">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVICE_RESTART</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> SERVICE_RESTART</pre>
+<div class="block">1012 indicates that the service will be restarted.</div>
+</li>
+</ul>
+<a id="TRY_AGAIN_LATER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TRY_AGAIN_LATER</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> TRY_AGAIN_LATER</pre>
+<div class="block">1013 indicates that the service is experiencing overload</div>
+</li>
+</ul>
+<a id="TLS_HANDSHAKE_FAILURE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TLS_HANDSHAKE_FAILURE</h4>
+<pre>public static final&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> TLS_HANDSHAKE_FAILURE</pre>
+<div class="block">1015 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.  It is designated for use in
+ applications expecting a status code to indicate that the
+ connection was closed due to a failure to perform a TLS handshake
+ (e.g., the server certificate can't be verified).</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (CloseReason.CloseCodes c : CloseReason.CloseCodes.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a id="getCloseCode(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCloseCode</h4>
+<pre class="methodSignature">public static&nbsp;<a href="CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a>&nbsp;getCloseCode&#8203;(int&nbsp;code)</pre>
+<div class="block">Creates a CloseCode from the given int code number. This method throws
+ an IllegalArgumentException if the int is not one of the</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>code</code> - the integer code number</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new CloseCode with the given code number</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the code is not a valid close code</dd>
+</dl>
+</li>
+</ul>
+<a id="getCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getCode()</pre>
+<div class="block">Return the code number of this status code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="CloseReason.CloseCode.html#getCode()">getCode</a></code>&nbsp;in interface&nbsp;<code><a href="CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the code.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloseReason.CloseCodes.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/CloseReason.html b/apidocs/1.20/javax/websocket/CloseReason.html
new file mode 100644
index 00000000..eae0983a
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/CloseReason.html
@@ -0,0 +1,413 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CloseReason (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CloseReason (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloseReason.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Class CloseReason" class="title">Class CloseReason</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.CloseReason</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">CloseReason</span>
+extends java.lang.Object</pre>
+<div class="block">A class encapsulating the reason why a web socket has been closed, or why it is being asked to
+ close. Note the acceptable uses of codes and reason phrase are defined in more detail by 
+ <a href="http://tools.ietf.org/html/rfc6455">RFC 6455</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></span></code></th>
+<td class="colLast">
+<div class="block">A marker interface for the close codes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></span></code></th>
+<td class="colLast">
+<div class="block">An Enumeration of status codes for a web socket close that
+ are defined in the specification.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.websocket.CloseReason.CloseCode,java.lang.String)">CloseReason</a></span>&#8203;(<a href="CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a>&nbsp;closeCode,
+           java.lang.String&nbsp;reasonPhrase)</code></th>
+<td class="colLast">
+<div class="block">Creates a reason for closing a web socket connection with the given
+ code and reason phrase.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCloseCode()">getCloseCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The Close code associated with this CloseReason.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReasonPhrase()">getReasonPhrase</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The reason phrase associated with this CloseReason.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Converts the CloseReason to a debug-friendly string.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(javax.websocket.CloseReason.CloseCode,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CloseReason</h4>
+<pre>public&nbsp;CloseReason&#8203;(<a href="CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a>&nbsp;closeCode,
+                   java.lang.String&nbsp;reasonPhrase)</pre>
+<div class="block">Creates a reason for closing a web socket connection with the given
+ code and reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>closeCode</code> - the close code, may not be <code>null</code></dd>
+<dd><code>reasonPhrase</code> - the reason phrase, may be <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getCloseCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCloseCode</h4>
+<pre class="methodSignature">public&nbsp;<a href="CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a>&nbsp;getCloseCode()</pre>
+<div class="block">The Close code associated with this CloseReason.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the close code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getReasonPhrase()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReasonPhrase</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getReasonPhrase()</pre>
+<div class="block">The reason phrase associated with this CloseReason.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the reason phrase. If there is no reason phrase, this returns
+ the empty string</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<div class="block">Converts the CloseReason to a debug-friendly string. The exact format
+ is not defined by the specification and may change in future releases.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A String representation of this CloseReason</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloseReason.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/ContainerProvider.html b/apidocs/1.20/javax/websocket/ContainerProvider.html
new file mode 100644
index 00000000..75fe44aa
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/ContainerProvider.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ContainerProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContainerProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Class ContainerProvider" class="title">Class ContainerProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.ContainerProvider</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyContainerProvider</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">ContainerProvider</span>
+extends java.lang.Object</pre>
+<div class="block">Provider class that allows the developer to get a reference to
+ the implementation of the WebSocketContainer.
+ The provider class uses the 
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/util/ServiceLoader.html">ServiceLoader</a> 
+ to load an implementation of ContainerProvider. Specifically, the fully qualified classname
+ of the container implementation of ContainerProvider must be listed in the 
+ META-INF/services/javax.websocket.ContainerProvider file in the implementation JAR file.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ContainerProvider</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected abstract <a href="WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContainer()">getContainer</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Load the container implementation.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getWebSocketContainer()">getWebSocketContainer</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Obtain a new instance of a WebSocketContainer.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ContainerProvider</h4>
+<pre>public&nbsp;ContainerProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getWebSocketContainer()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWebSocketContainer</h4>
+<pre class="methodSignature">public static&nbsp;<a href="WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;getWebSocketContainer()</pre>
+<div class="block">Obtain a new instance of a WebSocketContainer. The method looks for the
+ ContainerProvider implementation class in the order listed in the META-INF/services/javax.websocket.ContainerProvider 
+ file, returning the WebSocketContainer implementation from the ContainerProvider implementation
+ that is not <code>null</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an implementation provided instance of type WebSocketContainer</dd>
+</dl>
+</li>
+</ul>
+<a id="getContainer()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getContainer</h4>
+<pre class="methodSignature">protected abstract&nbsp;<a href="WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;getContainer()</pre>
+<div class="block">Load the container implementation.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the implementation class</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/DecodeException.html b/apidocs/1.20/javax/websocket/DecodeException.html
new file mode 100644
index 00000000..1664a441
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/DecodeException.html
@@ -0,0 +1,480 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DecodeException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DecodeException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DecodeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Class DecodeException" class="title">Class DecodeException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Throwable</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Exception</li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.DecodeException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">DecodeException</span>
+extends java.lang.Exception</pre>
+<div class="block">A general exception that occurs when trying to decode a custom object from a text or binary message.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../serialized-form.html#javax.websocket.DecodeException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String)">DecodeException</a></span>&#8203;(java.lang.String&nbsp;encodedString,
+               java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Constructs a DecodedException with the given encoded string that cannot
+ be decoded, and reason why.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.Throwable)">DecodeException</a></span>&#8203;(java.lang.String&nbsp;encodedString,
+               java.lang.String&nbsp;message,
+               java.lang.Throwable&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructor with the text data that could not be decoded, and the reason 
+ why it failed to be, and the cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.nio.ByteBuffer,java.lang.String)">DecodeException</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bb,
+               java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Constructs a DecodedException with the given ByteBuffer that cannot
+ be decoded, and reason why.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.nio.ByteBuffer,java.lang.String,java.lang.Throwable)">DecodeException</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bb,
+               java.lang.String&nbsp;message,
+               java.lang.Throwable&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructor with the binary data that could not be decoded, and the 
+ reason why it failed to be, and the cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.nio.ByteBuffer</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBytes()">getBytes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the ByteBuffer containing either the whole message, or the partial message, that
+ could not be decoded, or <code>null</code> if
+ this exception arose from a failure to decode a text message.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getText()">getText</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the encoded string that is either the whole message, or the partial 
+ message that could not be decoded, or <code>null</code> if
+ this exception arose from a failure to decode a binary message..</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
+<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.nio.ByteBuffer,java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DecodeException</h4>
+<pre>public&nbsp;DecodeException&#8203;(java.nio.ByteBuffer&nbsp;bb,
+                       java.lang.String&nbsp;message,
+                       java.lang.Throwable&nbsp;cause)</pre>
+<div class="block">Constructor with the binary data that could not be decoded, and the 
+ reason why it failed to be, and the cause. The buffer may represent the 
+ whole message, or the part of the message most relevant to the decoding
+ error, depending whether the application is using one
+ of the streaming methods or not.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bb</code> - the byte buffer containing the (part of) the message that 
+ could not be decoded.</dd>
+<dd><code>message</code> - the reason for the failure.</dd>
+<dd><code>cause</code> - the cause of the error.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DecodeException</h4>
+<pre>public&nbsp;DecodeException&#8203;(java.lang.String&nbsp;encodedString,
+                       java.lang.String&nbsp;message,
+                       java.lang.Throwable&nbsp;cause)</pre>
+<div class="block">Constructor with the text data that could not be decoded, and the reason 
+ why it failed to be, and the cause. The encoded string may represent the whole message,
+ or the part of the message most relevant to the decoding error, depending 
+ whether the application is using one
+ of the streaming methods or not.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>encodedString</code> - the string representing the (part of) the message that could not be decoded.</dd>
+<dd><code>message</code> - the reason for the failure.</dd>
+<dd><code>cause</code> - the cause of the error.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.nio.ByteBuffer,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DecodeException</h4>
+<pre>public&nbsp;DecodeException&#8203;(java.nio.ByteBuffer&nbsp;bb,
+                       java.lang.String&nbsp;message)</pre>
+<div class="block">Constructs a DecodedException with the given ByteBuffer that cannot
+ be decoded, and reason why. The buffer may represent the 
+ whole message, or the part of the message most relevant to the decoding
+ error, depending whether the application is using one
+ of the streaming methods or not.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bb</code> - the byte buffer containing the (part of) the message that 
+ could not be decoded.</dd>
+<dd><code>message</code> - the reason for the failure.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DecodeException</h4>
+<pre>public&nbsp;DecodeException&#8203;(java.lang.String&nbsp;encodedString,
+                       java.lang.String&nbsp;message)</pre>
+<div class="block">Constructs a DecodedException with the given encoded string that cannot
+ be decoded, and reason why. The encoded string may represent the whole message,
+ or the part of the message most relevant to the decoding error, depending 
+ whether the application is using one
+ of the streaming methods or not.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>encodedString</code> - the string representing the (part of) the message that 
+ could not be decoded.</dd>
+<dd><code>message</code> - the reason for the failure.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getBytes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBytes</h4>
+<pre class="methodSignature">public&nbsp;java.nio.ByteBuffer&nbsp;getBytes()</pre>
+<div class="block">Return the ByteBuffer containing either the whole message, or the partial message, that
+ could not be decoded, or <code>null</code> if
+ this exception arose from a failure to decode a text message.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the binary data not decoded or <code>null</code> for text message failures.</dd>
+</dl>
+</li>
+</ul>
+<a id="getText()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getText</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getText()</pre>
+<div class="block">Return the encoded string that is either the whole message, or the partial 
+ message that could not be decoded, or <code>null</code> if
+ this exception arose from a failure to decode a binary message..</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the text not decoded or <code>null</code> for binary message failures.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DecodeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Decoder.Binary.html b/apidocs/1.20/javax/websocket/Decoder.Binary.html
new file mode 100644
index 00000000..add79781
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Decoder.Binary.html
@@ -0,0 +1,326 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Decoder.Binary (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Decoder.Binary (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Decoder.Binary.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface Decoder.Binary" class="title">Interface Decoder.Binary&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="Decoder.html" title="interface in javax.websocket">Decoder</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/coder/InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">InputStreamDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="Decoder.html" title="interface in javax.websocket">Decoder</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Decoder.Binary&lt;T&gt;</span>
+extends <a href="Decoder.html" title="interface in javax.websocket">Decoder</a></pre>
+<div class="block">This interface defines how a custom object (of type T) is decoded from a web socket message in
+ the form of a byte buffer.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.nio.ByteBuffer)">decode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bytes)</code></th>
+<td class="colLast">
+<div class="block">Decode the given bytes into an object of type T.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#willDecode(java.nio.ByteBuffer)">willDecode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bytes)</code></th>
+<td class="colLast">
+<div class="block">Answer whether the given bytes can be decoded into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="Decoder.html#destroy()">destroy</a>, <a href="Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="decode(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature"><a href="Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&nbsp;decode&#8203;(java.nio.ByteBuffer&nbsp;bytes)
+  throws <a href="DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block">Decode the given bytes into an object of type T.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the bytes to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="willDecode(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>willDecode</h4>
+<pre class="methodSignature">boolean&nbsp;willDecode&#8203;(java.nio.ByteBuffer&nbsp;bytes)</pre>
+<div class="block">Answer whether the given bytes can be decoded into an object of type T.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the bytes to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether or not the bytes can be decoded by this decoder.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Decoder.Binary.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Decoder.BinaryStream.html b/apidocs/1.20/javax/websocket/Decoder.BinaryStream.html
new file mode 100644
index 00000000..4cc0e958
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Decoder.BinaryStream.html
@@ -0,0 +1,301 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Decoder.BinaryStream (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Decoder.BinaryStream (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Decoder.BinaryStream.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface Decoder.BinaryStream" class="title">Interface Decoder.BinaryStream&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="Decoder.html" title="interface in javax.websocket">Decoder</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="Decoder.html" title="interface in javax.websocket">Decoder</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Decoder.BinaryStream&lt;T&gt;</span>
+extends <a href="Decoder.html" title="interface in javax.websocket">Decoder</a></pre>
+<div class="block">This interface defines how a custom object is decoded from a web socket message in
+ the form of a binary stream.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.io.InputStream)">decode</a></span>&#8203;(java.io.InputStream&nbsp;is)</code></th>
+<td class="colLast">
+<div class="block">Decode the given bytes read from the input stream into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="Decoder.html#destroy()">destroy</a>, <a href="Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="decode(java.io.InputStream)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature"><a href="Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&nbsp;decode&#8203;(java.io.InputStream&nbsp;is)
+  throws <a href="DecodeException.html" title="class in javax.websocket">DecodeException</a>,
+         java.io.IOException</pre>
+<div class="block">Decode the given bytes read from the input stream into an object of type T.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>is</code> - the input stream carrying the bytes.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+<dd><code>java.io.IOException</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Decoder.BinaryStream.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Decoder.Text.html b/apidocs/1.20/javax/websocket/Decoder.Text.html
new file mode 100644
index 00000000..7bec226b
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Decoder.Text.html
@@ -0,0 +1,326 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Decoder.Text (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Decoder.Text (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Decoder.Text.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface Decoder.Text" class="title">Interface Decoder.Text&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="Decoder.html" title="interface in javax.websocket">Decoder</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">ReaderDecoder</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="Decoder.html" title="interface in javax.websocket">Decoder</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Decoder.Text&lt;T&gt;</span>
+extends <a href="Decoder.html" title="interface in javax.websocket">Decoder</a></pre>
+<div class="block">This interface defines how a custom object is decoded from a web socket message in
+ the form of a string.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Decoder.Text.html" title="type parameter in Decoder.Text">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Decode the given String into an object of type T.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#willDecode(java.lang.String)">willDecode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Answer whether the given String can be decoded into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="Decoder.html#destroy()">destroy</a>, <a href="Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="decode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature"><a href="Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&nbsp;decode&#8203;(java.lang.String&nbsp;s)
+  throws <a href="DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block">Decode the given String into an object of type T.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - string to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded message as an object of type T</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="willDecode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>willDecode</h4>
+<pre class="methodSignature">boolean&nbsp;willDecode&#8203;(java.lang.String&nbsp;s)</pre>
+<div class="block">Answer whether the given String can be decoded into an object of type T.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the string being tested for decodability.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether this decoder can decoded the supplied string.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Decoder.Text.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Decoder.TextStream.html b/apidocs/1.20/javax/websocket/Decoder.TextStream.html
new file mode 100644
index 00000000..5456f001
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Decoder.TextStream.html
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Decoder.TextStream (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Decoder.TextStream (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Decoder.TextStream.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface Decoder.TextStream" class="title">Interface Decoder.TextStream&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="Decoder.html" title="interface in javax.websocket">Decoder</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="Decoder.html" title="interface in javax.websocket">Decoder</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Decoder.TextStream&lt;T&gt;</span>
+extends <a href="Decoder.html" title="interface in javax.websocket">Decoder</a></pre>
+<div class="block">This interface defines how a custom object of type T is decoded from a web socket message in
+ the form of a character stream.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.io.Reader)">decode</a></span>&#8203;(java.io.Reader&nbsp;reader)</code></th>
+<td class="colLast">
+<div class="block">Reads the websocket message from the implementation provided
+ Reader and decodes it into an instance of the supplied object type.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="Decoder.html#destroy()">destroy</a>, <a href="Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="decode(java.io.Reader)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature"><a href="Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&nbsp;decode&#8203;(java.io.Reader&nbsp;reader)
+  throws <a href="DecodeException.html" title="class in javax.websocket">DecodeException</a>,
+         java.io.IOException</pre>
+<div class="block">Reads the websocket message from the implementation provided
+ Reader and decodes it into an instance of the supplied object type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>reader</code> - the reader from which to read the web socket message.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the instance of the object that is the decoded web socket message.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+<dd><code>java.io.IOException</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Decoder.TextStream.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Decoder.html b/apidocs/1.20/javax/websocket/Decoder.html
new file mode 100644
index 00000000..563b9ee0
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Decoder.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Decoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Decoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Decoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface Decoder" class="title">Interface Decoder</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;T&gt;</code>, <code><a href="Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;T&gt;</code>, <code><a href="Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;T&gt;</code>, <code><a href="Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;T&gt;</code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">InputStreamDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">ReaderDecoder</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">Decoder</span></pre>
+<div class="block">The Decoder interface holds member interfaces that define how a developer can provide
+ the web socket container a way web socket messages into developer defined custom objects.
+ The websocket implementation creates a new instance of the decoder per endpoint 
+ instance per connection.
+ The lifecycle of the Decoder instance is governed by the container calls to the
+ <a href="#init(javax.websocket.EndpointConfig)"><code>init(javax.websocket.EndpointConfig)</code></a> and <a href="#destroy()"><code>destroy()</code></a>
+ methods.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object (of type T) is decoded from a web socket message in
+ the form of a byte buffer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object is decoded from a web socket message in
+ the form of a binary stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object is decoded from a web socket message in
+ the form of a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object of type T is decoded from a web socket message in
+ the form of a character stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroy()">destroy</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method is called when the decoder is about to be removed
+ from service in order that any resources the encoder used may 
+ be closed gracefully.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(javax.websocket.EndpointConfig)">init</a></span>&#8203;(<a href="EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">This method is called with the endpoint configuration object of the
+ endpoint this decoder is intended for when
+ it is about to be brought into service.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="init(javax.websocket.EndpointConfig)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>init</h4>
+<pre class="methodSignature">void&nbsp;init&#8203;(<a href="EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;config)</pre>
+<div class="block">This method is called with the endpoint configuration object of the
+ endpoint this decoder is intended for when
+ it is about to be brought into service.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the endpoint configuration object when being brought into 
+ service</dd>
+</dl>
+</li>
+</ul>
+<a id="destroy()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>destroy</h4>
+<pre class="methodSignature">void&nbsp;destroy()</pre>
+<div class="block">This method is called when the decoder is about to be removed
+ from service in order that any resources the encoder used may 
+ be closed gracefully.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Decoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/DeploymentException.html b/apidocs/1.20/javax/websocket/DeploymentException.html
new file mode 100644
index 00000000..4bb3cb90
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/DeploymentException.html
@@ -0,0 +1,333 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DeploymentException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DeploymentException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DeploymentException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Class DeploymentException" class="title">Class DeploymentException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Throwable</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Exception</li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.DeploymentException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">DeploymentException</span>
+extends java.lang.Exception</pre>
+<div class="block">Checked exception indicating some kind of failure either to publish
+ an endpoint on its server, or a failure to connect a client to its server.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../serialized-form.html#javax.websocket.DeploymentException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">DeploymentException</a></span>&#8203;(java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Creates a deployment exception with the given reason for the deployment
+ failure.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">DeploymentException</a></span>&#8203;(java.lang.String&nbsp;message,
+                   java.lang.Throwable&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Creates a deployment exception with the given reason for the deployment
+ failure and wrapped cause of the failure.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
+<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DeploymentException</h4>
+<pre>public&nbsp;DeploymentException&#8203;(java.lang.String&nbsp;message)</pre>
+<div class="block">Creates a deployment exception with the given reason for the deployment
+ failure.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the reason for the failure.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DeploymentException</h4>
+<pre>public&nbsp;DeploymentException&#8203;(java.lang.String&nbsp;message,
+                           java.lang.Throwable&nbsp;cause)</pre>
+<div class="block">Creates a deployment exception with the given reason for the deployment
+ failure and wrapped cause of the failure.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the reason for the failure.</dd>
+<dd><code>cause</code> - the cause of the problem.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DeploymentException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/EncodeException.html b/apidocs/1.20/javax/websocket/EncodeException.html
new file mode 100644
index 00000000..f3fbfc4d
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/EncodeException.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>EncodeException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EncodeException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EncodeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Class EncodeException" class="title">Class EncodeException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Throwable</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Exception</li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.EncodeException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">EncodeException</span>
+extends java.lang.Exception</pre>
+<div class="block">A general exception that occurs when trying to encode a custom object to a string or binary message.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../serialized-form.html#javax.websocket.EncodeException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Object,java.lang.String)">EncodeException</a></span>&#8203;(java.lang.Object&nbsp;object,
+               java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Constructor with the object being encoded, and the reason why it failed to be.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Object,java.lang.String,java.lang.Throwable)">EncodeException</a></span>&#8203;(java.lang.Object&nbsp;object,
+               java.lang.String&nbsp;message,
+               java.lang.Throwable&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructor with the object being encoded, and the reason why it failed to be, and the cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.Object</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getObject()">getObject</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the Object that could not be encoded.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
+<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.Object,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EncodeException</h4>
+<pre>public&nbsp;EncodeException&#8203;(java.lang.Object&nbsp;object,
+                       java.lang.String&nbsp;message)</pre>
+<div class="block">Constructor with the object being encoded, and the reason why it failed to be.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - the object that could not be encoded.</dd>
+<dd><code>message</code> - the reason for the failure.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Object,java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EncodeException</h4>
+<pre>public&nbsp;EncodeException&#8203;(java.lang.Object&nbsp;object,
+                       java.lang.String&nbsp;message,
+                       java.lang.Throwable&nbsp;cause)</pre>
+<div class="block">Constructor with the object being encoded, and the reason why it failed to be, and the cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - the object that could not be encoded.</dd>
+<dd><code>message</code> - the reason for the failure.</dd>
+<dd><code>cause</code> - the cause of the problem.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getObject()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getObject</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Object&nbsp;getObject()</pre>
+<div class="block">Return the Object that could not be encoded.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the object.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EncodeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Encoder.Binary.html b/apidocs/1.20/javax/websocket/Encoder.Binary.html
new file mode 100644
index 00000000..8e454b85
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Encoder.Binary.html
@@ -0,0 +1,309 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Encoder.Binary (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Encoder.Binary (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoder.Binary.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface Encoder.Binary" class="title">Interface Encoder.Binary&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - The type of the custom object that this Encoder can encoder to a ByteBuffer.</dd>
+</dl>
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="Encoder.html" title="interface in javax.websocket">Encoder</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="Encoder.html" title="interface in javax.websocket">Encoder</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Encoder.Binary&lt;T&gt;</span>
+extends <a href="Encoder.html" title="interface in javax.websocket">Encoder</a></pre>
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a binary message.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;<a href="Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&gt;, <a href="Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;<a href="Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&gt;, <a href="Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;<a href="Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&gt;, <a href="Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;<a href="Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.nio.ByteBuffer</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encode(T)">encode</a></span>&#8203;(<a href="Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Encode the given object into a byte array.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="Encoder.html#destroy()">destroy</a>, <a href="Encoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="encode(java.lang.Object)">
+<!--   -->
+</a><a id="encode(T)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>encode</h4>
+<pre class="methodSignature">java.nio.ByteBuffer&nbsp;encode&#8203;(<a href="Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&nbsp;object)
+                    throws <a href="EncodeException.html" title="class in javax.websocket">EncodeException</a></pre>
+<div class="block">Encode the given object into a byte array.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - the object being encoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the binary data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="EncodeException.html" title="class in javax.websocket">EncodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoder.Binary.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Encoder.BinaryStream.html b/apidocs/1.20/javax/websocket/Encoder.BinaryStream.html
new file mode 100644
index 00000000..e153b91c
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Encoder.BinaryStream.html
@@ -0,0 +1,310 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Encoder.BinaryStream (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Encoder.BinaryStream (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoder.BinaryStream.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface Encoder.BinaryStream" class="title">Interface Encoder.BinaryStream&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the object this encoder can encode.</dd>
+</dl>
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="Encoder.html" title="interface in javax.websocket">Encoder</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="Encoder.html" title="interface in javax.websocket">Encoder</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Encoder.BinaryStream&lt;T&gt;</span>
+extends <a href="Encoder.html" title="interface in javax.websocket">Encoder</a></pre>
+<div class="block">This interface may be implemented by encoding algorithms
+ that want to write the encoded object to a binary stream.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;<a href="Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&gt;, <a href="Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;<a href="Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&gt;, <a href="Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;<a href="Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&gt;, <a href="Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;<a href="Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encode(T,java.io.OutputStream)">encode</a></span>&#8203;(<a href="Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&nbsp;object,
+      java.io.OutputStream&nbsp;os)</code></th>
+<td class="colLast">
+<div class="block">Encode the given object into a binary stream written to the
+ implementation provided OutputStream.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="Encoder.html#destroy()">destroy</a>, <a href="Encoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="encode(java.lang.Object,java.io.OutputStream)">
+<!--   -->
+</a><a id="encode(T,java.io.OutputStream)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>encode</h4>
+<pre class="methodSignature">void&nbsp;encode&#8203;(<a href="Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&nbsp;object,
+            java.io.OutputStream&nbsp;os)
+     throws <a href="EncodeException.html" title="class in javax.websocket">EncodeException</a>,
+            java.io.IOException</pre>
+<div class="block">Encode the given object into a binary stream written to the
+ implementation provided OutputStream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - the object being encoded.</dd>
+<dd><code>os</code> - the output stream where the encoded data is written.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="EncodeException.html" title="class in javax.websocket">EncodeException</a></code></dd>
+<dd><code>java.io.IOException</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoder.BinaryStream.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Encoder.Text.html b/apidocs/1.20/javax/websocket/Encoder.Text.html
new file mode 100644
index 00000000..57c136ad
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Encoder.Text.html
@@ -0,0 +1,309 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Encoder.Text (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Encoder.Text (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoder.Text.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface Encoder.Text" class="title">Interface Encoder.Text&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - The type of the custom developer object that this Encoder can encode into a String.</dd>
+</dl>
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="Encoder.html" title="interface in javax.websocket">Encoder</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder">ToStringEncoder</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="Encoder.html" title="interface in javax.websocket">Encoder</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Encoder.Text&lt;T&gt;</span>
+extends <a href="Encoder.html" title="interface in javax.websocket">Encoder</a></pre>
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a text message.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;<a href="Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&gt;, <a href="Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;<a href="Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&gt;, <a href="Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;<a href="Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&gt;, <a href="Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;<a href="Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encode(T)">encode</a></span>&#8203;(<a href="Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Encode the given object into a String.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="Encoder.html#destroy()">destroy</a>, <a href="Encoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="encode(java.lang.Object)">
+<!--   -->
+</a><a id="encode(T)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>encode</h4>
+<pre class="methodSignature">java.lang.String&nbsp;encode&#8203;(<a href="Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&nbsp;object)
+                 throws <a href="EncodeException.html" title="class in javax.websocket">EncodeException</a></pre>
+<div class="block">Encode the given object into a String.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - the object being encoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the encoded object as a string.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="EncodeException.html" title="class in javax.websocket">EncodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoder.Text.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Encoder.TextStream.html b/apidocs/1.20/javax/websocket/Encoder.TextStream.html
new file mode 100644
index 00000000..5e4bda9f
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Encoder.TextStream.html
@@ -0,0 +1,313 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Encoder.TextStream (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Encoder.TextStream (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoder.TextStream.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface Encoder.TextStream" class="title">Interface Encoder.TextStream&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the object this encoder can encode to a CharacterStream.</dd>
+</dl>
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="Encoder.html" title="interface in javax.websocket">Encoder</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="Encoder.html" title="interface in javax.websocket">Encoder</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Encoder.TextStream&lt;T&gt;</span>
+extends <a href="Encoder.html" title="interface in javax.websocket">Encoder</a></pre>
+<div class="block">This interface may be implemented by encoding algorithms
+ that want to write the encoded object to a character stream.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;<a href="Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&gt;, <a href="Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;<a href="Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&gt;, <a href="Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;<a href="Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&gt;, <a href="Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;<a href="Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encode(T,java.io.Writer)">encode</a></span>&#8203;(<a href="Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&nbsp;object,
+      java.io.Writer&nbsp;writer)</code></th>
+<td class="colLast">
+<div class="block">Encode the given object to a character stream writing it
+ to the supplied Writer.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="Encoder.html#destroy()">destroy</a>, <a href="Encoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="encode(java.lang.Object,java.io.Writer)">
+<!--   -->
+</a><a id="encode(T,java.io.Writer)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>encode</h4>
+<pre class="methodSignature">void&nbsp;encode&#8203;(<a href="Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&nbsp;object,
+            java.io.Writer&nbsp;writer)
+     throws <a href="EncodeException.html" title="class in javax.websocket">EncodeException</a>,
+            java.io.IOException</pre>
+<div class="block">Encode the given object to a character stream writing it
+ to the supplied Writer. Implementations of this method may use the EncodeException
+ to indicate a failure to convert the supplied object to an encoded form, and may
+ use the IOException to indicate a failure to write the data to the supplied
+ stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - the object to be encoded.</dd>
+<dd><code>writer</code> - the writer provided by the web socket runtime to write the encoded data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="EncodeException.html" title="class in javax.websocket">EncodeException</a></code> - if there was an error encoding the object due to its state.</dd>
+<dd><code>java.io.IOException</code> - if there was an exception writing to the writer.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoder.TextStream.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Encoder.html b/apidocs/1.20/javax/websocket/Encoder.html
new file mode 100644
index 00000000..152a2d94
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Encoder.html
@@ -0,0 +1,357 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Encoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Encoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface Encoder" class="title">Interface Encoder</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;T&gt;</code>, <code><a href="Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;T&gt;</code>, <code><a href="Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;T&gt;</code>, <code><a href="Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;T&gt;</code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></code>, <code><a href="../../org/glassfish/tyrus/core/coder/ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder">ToStringEncoder</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">Encoder</span></pre>
+<div class="block">The Encoder interface defines how developers can provide a way to convert
+ their custom objects into web socket messages. The Encoder interface contains
+ subinterfaces that allow encoding algorithms to encode custom objects to: text,
+ binary data, character stream and write to an output stream.
+ The websocket implementation creates a new instance of the encoder per 
+ endpoint instance per connection. This means that each encoder instance has 
+ at most one calling thread at a time.
+ The lifecycle of the Encoder instance is governed by the container calls to the
+ <a href="#init(javax.websocket.EndpointConfig)"><code>init(javax.websocket.EndpointConfig)</code></a> and <a href="#destroy()"><code>destroy()</code></a>
+ methods.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;<a href="Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a binary message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;<a href="Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface may be implemented by encoding algorithms
+ that want to write the encoded object to a binary stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;<a href="Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a text message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;<a href="Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface may be implemented by encoding algorithms
+ that want to write the encoded object to a character stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroy()">destroy</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method is called when the encoder is about to be removed
+ from service in order that any resources the encoder used may 
+ be closed gracefully.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(javax.websocket.EndpointConfig)">init</a></span>&#8203;(<a href="EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">This method is called with the endpoint configuration object of the
+ endpoint this encoder is intended for when
+ it is about to be brought into service.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="init(javax.websocket.EndpointConfig)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>init</h4>
+<pre class="methodSignature">void&nbsp;init&#8203;(<a href="EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;config)</pre>
+<div class="block">This method is called with the endpoint configuration object of the
+ endpoint this encoder is intended for when
+ it is about to be brought into service.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the endpoint configuration object when being brought into 
+ service</dd>
+</dl>
+</li>
+</ul>
+<a id="destroy()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>destroy</h4>
+<pre class="methodSignature">void&nbsp;destroy()</pre>
+<div class="block">This method is called when the encoder is about to be removed
+ from service in order that any resources the encoder used may 
+ be closed gracefully.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Endpoint.html b/apidocs/1.20/javax/websocket/Endpoint.html
new file mode 100644
index 00000000..be7f7849
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Endpoint.html
@@ -0,0 +1,447 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Endpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Endpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Endpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Class Endpoint" class="title">Class Endpoint</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.Endpoint</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">Endpoint</span>
+extends java.lang.Object</pre>
+<div class="block">The Web Socket Endpoint represents an object that can handle websocket conversations. 
+ Developers may extend this class in order to implement a programmatic websocket 
+ endpoint. The Endpoint class holds lifecycle methods that may be 
+ overridden to intercept websocket open, error and close events. By implementing 
+ the <a href="#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)"><code>onOpen</code></a> method, the programmatic endpoint gains access to the <a href="Session.html" title="interface in javax.websocket"><code>Session</code></a> object, 
+ to which the developer may add <a href="MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a> implementations in order to 
+ intercept incoming websocket messages. Each instance 
+ of a websocket endpoint is guaranteed not to be called by more than one thread 
+ at a time per active connection.
+
+ <p>If deployed as a client endpoint, it will be instantiated once for the 
+ single connection to the server. 
+
+ <p>When deployed as a server endpoint, the implementation uses the 
+ <a href="server/ServerEndpointConfig.Configurator.html#getEndpointInstance(java.lang.Class)"><code>ServerEndpointConfig.Configurator.getEndpointInstance(java.lang.Class&lt;T&gt;)</code></a> 
+ method to obtain the 
+ endpoint instance it will use for each new client connection.  If the developer uses 
+ the default <a href="server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Configurator</code></a>, 
+ there will be precisely one 
+ endpoint instance per active client connection. Consequently, in this typical 
+ case, when implementing/overriding the methods of Endpoint, the developer is 
+ guaranteed that there will be at most one thread calling each endpoint instance
+ at a time.
+ 
+ <p>If the developer provides a custom <a href="server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Configurator</code></a>
+ which overrides the default policy for endpoint instance creation, for example, 
+ using a single Endpoint instance for multiple client connections, the developer
+ may need to write code that can execute concurrently.
+
+ <p>Here is an example of a simple endpoint that echoes any incoming text message back to the sender.
+ <pre><code>
+ public class EchoServer extends Endpoint {
+
+     public void onOpen(Session session, EndpointConfig config) {
+         final RemoteEndpoint remote = session.getBasicRemote();
+         session.addMessageHandler(String.class, new MessageHandler.Whole&lt;String>() {
+             public void onMessage(String text) {
+                 try {
+                     remote.sendString("Got your message (" + text + "). Thanks !");
+                 } catch (IOException ioe) {
+                     // handle send failure here
+                 }
+             }
+         });
+     }
+
+ }
+ </code></pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Endpoint</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onClose(javax.websocket.Session,javax.websocket.CloseReason)">onClose</a></span>&#8203;(<a href="Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+       <a href="CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">This method is called immediately prior to the session with the remote 
+ peer being closed.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onError(javax.websocket.Session,java.lang.Throwable)">onError</a></span>&#8203;(<a href="Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+       java.lang.Throwable&nbsp;thr)</code></th>
+<td class="colLast">
+<div class="block">Developers may implement this method when the web socket session
+ creates some kind of error that is not modeled in the web socket protocol.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)">onOpen</a></span>&#8203;(<a href="Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+      <a href="EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Developers must implement this method to be notified when a new conversation has
+ just begun.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Endpoint</h4>
+<pre>public&nbsp;Endpoint()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onOpen</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;onOpen&#8203;(<a href="Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+                            <a href="EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;config)</pre>
+<div class="block">Developers must implement this method to be notified when a new conversation has
+ just begun.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - the session that has just been activated.</dd>
+<dd><code>config</code> - the configuration used to configure this endpoint.</dd>
+</dl>
+</li>
+</ul>
+<a id="onClose(javax.websocket.Session,javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onClose</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onClose&#8203;(<a href="Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+                    <a href="CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</pre>
+<div class="block">This method is called immediately prior to the session with the remote 
+ peer being closed. It is called whether the session is being closed 
+ because the remote peer initiated a close and sent a close frame, or 
+ whether the local websocket container or this endpoint requests to close 
+ the session. The developer may take this last opportunity to retrieve
+ session attributes such as the ID, or any application data it holds before 
+ it becomes unavailable after the completion of the method. Developers should
+ not attempt to modify the session from within this method, or send new 
+ messages from this call as the underlying 
+ connection will not be able to send them at this stage.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - the session about to be closed.</dd>
+<dd><code>closeReason</code> - the reason the session was closed.</dd>
+</dl>
+</li>
+</ul>
+<a id="onError(javax.websocket.Session,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onError</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onError&#8203;(<a href="Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+                    java.lang.Throwable&nbsp;thr)</pre>
+<div class="block">Developers may implement this method when the web socket session
+ creates some kind of error that is not modeled in the web socket protocol. This may for example
+ be a notification that an incoming message is too big to handle, or that the incoming message could not be encoded.
+
+ <p>There are a number of categories of exception that this method is (currently) defined to handle:
+ <ul>
+ <li>connection problems, for example, a socket failure that occurs before
+ the web socket connection can be formally closed. These are modeled as 
+ <a href="SessionException.html" title="class in javax.websocket"><code>SessionException</code></a>s</li>
+ <li>runtime errors thrown by developer created message handlers calls.</li>
+ <li>conversion errors encoding incoming messages before any message handler has been called. These
+ are modeled as <a href="DecodeException.html" title="class in javax.websocket"><code>DecodeException</code></a>s</li>
+ </ul></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - the session in use when the error occurs.</dd>
+<dd><code>thr</code> - the throwable representing the problem.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Endpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/EndpointConfig.html b/apidocs/1.20/javax/websocket/EndpointConfig.html
new file mode 100644
index 00000000..74dda499
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/EndpointConfig.html
@@ -0,0 +1,325 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>EndpointConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EndpointConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EndpointConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface EndpointConfig" class="title">Interface EndpointConfig</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></code>, <code><a href="server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></code>, <code><a href="../../org/glassfish/tyrus/core/TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">EndpointConfig</span></pre>
+<div class="block">The endpoint configuration contains all the information needed during the handshake process
+ for this end point. All endpoints specify, for example, a URI. In the case of a server endpoint,
+ the URI signifies the URI to which the endpoint will be mapped. In the case of a client application
+ the URI signifies the URI of the server to which the client endpoint will attempt to connect.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.util.List&lt;java.lang.Class&lt;? extends <a href="Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDecoders()">getDecoders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the Decoder implementation classes configured.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;java.lang.Class&lt;? extends <a href="Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEncoders()">getEncoders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the Encoder implementation classes configured.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUserProperties()">getUserProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method returns a modifiable Map that the developer may use to store application
+ specific information relating to the endpoint that uses this
+ configuration instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getEncoders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEncoders</h4>
+<pre class="methodSignature">java.util.List&lt;java.lang.Class&lt;? extends <a href="Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;&nbsp;getEncoders()</pre>
+<div class="block">Return the Encoder implementation classes configured. These
+ will be instantiated by the container to encode custom objects passed into
+ the send() methods on remote endpoints.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the encoder implementation classes, an empty list if none.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDecoders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDecoders</h4>
+<pre class="methodSignature">java.util.List&lt;java.lang.Class&lt;? extends <a href="Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;getDecoders()</pre>
+<div class="block">Return the Decoder implementation classes configured. These
+ will be instantiated by the container to decode incoming messages
+ into the expected custom objects on <a href="MessageHandler.Whole.html#onMessage(T)"><code>MessageHandler.Whole.onMessage(Object)</code></a>
+ callbacks.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoder implementation classes, the empty list if none.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUserProperties()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getUserProperties</h4>
+<pre class="methodSignature">java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;getUserProperties()</pre>
+<div class="block">This method returns a modifiable Map that the developer may use to store application
+ specific information relating to the endpoint that uses this
+ configuration instance. Web socket applications running on distributed 
+ implementations of the web container should make any application 
+ specific objects stored here java.io.Serializable, or the object may 
+ not be recreated after a failover.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a modifiable Map of application data.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EndpointConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Extension.Parameter.html b/apidocs/1.20/javax/websocket/Extension.Parameter.html
new file mode 100644
index 00000000..4def262e
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Extension.Parameter.html
@@ -0,0 +1,289 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Extension.Parameter (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Extension.Parameter (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Extension.Parameter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface Extension.Parameter" class="title">Interface Extension.Parameter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core">TyrusExtension.TyrusParameter</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="Extension.html" title="interface in javax.websocket">Extension</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Extension.Parameter</span></pre>
+<div class="block">This member interface defines a single websocket extension parameter.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the name of the extension parameter.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValue()">getValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the value of the extension parameter.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre class="methodSignature">java.lang.String&nbsp;getName()</pre>
+<div class="block">Return the name of the extension parameter.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the name of the parameter.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValue()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getValue</h4>
+<pre class="methodSignature">java.lang.String&nbsp;getValue()</pre>
+<div class="block">Return the value of the extension parameter.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value of the parameter.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Extension.Parameter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Extension.html b/apidocs/1.20/javax/websocket/Extension.html
new file mode 100644
index 00000000..f6e16eae
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Extension.html
@@ -0,0 +1,320 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Extension (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Extension (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Extension.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface Extension" class="title">Interface Extension</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/extension/ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">Extension</span></pre>
+<div class="block">A simple representation of a websocket extension as a name and map of extension parameters.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></span></code></th>
+<td class="colLast">
+<div class="block">This member interface defines a single websocket extension parameter.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The name of the extension.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameters()">getParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The extension parameters for this extension in the order
+ they appear in the http headers.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre class="methodSignature">java.lang.String&nbsp;getName()</pre>
+<div class="block">The name of the extension.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the name of the extension.</dd>
+</dl>
+</li>
+</ul>
+<a id="getParameters()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre class="methodSignature">java.util.List&lt;<a href="Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;getParameters()</pre>
+<div class="block">The extension parameters for this extension in the order
+ they appear in the http headers.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The read-only Map of extension parameters belonging to this extension.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Extension.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/HandshakeResponse.html b/apidocs/1.20/javax/websocket/HandshakeResponse.html
new file mode 100644
index 00000000..42833554
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/HandshakeResponse.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>HandshakeResponse (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="HandshakeResponse (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HandshakeResponse.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface HandshakeResponse" class="title">Interface HandshakeResponse</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">TyrusUpgradeResponse</a></code>, <code><a href="../../org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">HandshakeResponse</span></pre>
+<div class="block">The handshake response represents the web socket-defined Http response
+ that is the response to the opening handshake request.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SEC_WEBSOCKET_ACCEPT">SEC_WEBSOCKET_ACCEPT</a></span></code></th>
+<td class="colLast">
+<div class="block">The Sec-WebSocket-Accept header name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the list of Http headers sent by the web socket server.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="SEC_WEBSOCKET_ACCEPT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SEC_WEBSOCKET_ACCEPT</h4>
+<pre>static final&nbsp;java.lang.String SEC_WEBSOCKET_ACCEPT</pre>
+<div class="block">The Sec-WebSocket-Accept header name.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../constant-values.html#javax.websocket.HandshakeResponse.SEC_WEBSOCKET_ACCEPT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature">java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;&nbsp;getHeaders()</pre>
+<div class="block">Return the list of Http headers sent by the web socket server.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the http headers .</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HandshakeResponse.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/MessageHandler.Partial.html b/apidocs/1.20/javax/websocket/MessageHandler.Partial.html
new file mode 100644
index 00000000..02a4bf67
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/MessageHandler.Partial.html
@@ -0,0 +1,312 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MessageHandler.Partial (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MessageHandler.Partial (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageHandler.Partial.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface MessageHandler.Partial" class="title">Interface MessageHandler.Partial&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - The type of the object that represent pieces of the incoming message that this MessageHandler will consume.</dd>
+</dl>
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">MessageHandler.Partial&lt;T&gt;</span>
+extends <a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></pre>
+<div class="block">This kind of handler is notified by the implementation as it becomes ready
+ to deliver parts of a whole message.
+
+ <p>For handling parts of text messages, the type T is <code>String</code>
+
+ <p>For handling parts of binary messages, the allowable types for T are
+ <ul>
+ <li><code>ByteBuffer</code> </li>
+ <li>byte[] </li>
+ </ul>
+
+ <p>Developers should not continue to reference message objects of type <code>ByteBuffer</code>
+ after the completion of the onMessage() call, since they
+ may be recycled by the implementation.
+
+ <p>Note: Implementations may choose their own schemes for delivering large messages in smaller parts through this API. These
+ schemes may or may not bear a relationship to the underlying websocket dataframes in which the message
+ is received off the wire.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.MessageHandler">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></h3>
+<code><a href="MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;<a href="MessageHandler.Partial.html" title="type parameter in MessageHandler.Partial">T</a>&gt;, <a href="MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;<a href="MessageHandler.Whole.html" title="type parameter in MessageHandler.Whole">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onMessage(T,boolean)">onMessage</a></span>&#8203;(<a href="MessageHandler.Partial.html" title="type parameter in MessageHandler.Partial">T</a>&nbsp;partialMessage,
+         boolean&nbsp;last)</code></th>
+<td class="colLast">
+<div class="block">Called when the next part of a message has been fully received.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onMessage(java.lang.Object,boolean)">
+<!--   -->
+</a><a id="onMessage(T,boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onMessage</h4>
+<pre class="methodSignature">void&nbsp;onMessage&#8203;(<a href="MessageHandler.Partial.html" title="type parameter in MessageHandler.Partial">T</a>&nbsp;partialMessage,
+               boolean&nbsp;last)</pre>
+<div class="block">Called when the next part of a message has been fully received.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>partialMessage</code> - the partial message data.</dd>
+<dd><code>last</code> - flag to indicate if this partialMessage is the last of the whole message being delivered.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageHandler.Partial.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/MessageHandler.Whole.html b/apidocs/1.20/javax/websocket/MessageHandler.Whole.html
new file mode 100644
index 00000000..d6dc80b3
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/MessageHandler.Whole.html
@@ -0,0 +1,316 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MessageHandler.Whole (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MessageHandler.Whole (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageHandler.Whole.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface MessageHandler.Whole" class="title">Interface MessageHandler.Whole&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - The type of the message object that this MessageHandler will consume.</dd>
+</dl>
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">MessageHandler.Whole&lt;T&gt;</span>
+extends <a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></pre>
+<div class="block">This kind of handler is notified by the container on arrival of a complete message. If the message is received in parts,
+ the container buffers it until it is has been fully received before this method is called.
+
+ <p>For handling incoming text messages, the allowed types for T are
+ <ul>
+ <li><code>String</code></li>
+ <li><code>Reader</code> </li>
+ <li>any developer object for which there is a corresponding <a href="Decoder.Text.html" title="interface in javax.websocket"><code>Decoder.Text</code></a> or
+ <a href="Decoder.TextStream.html" title="interface in javax.websocket"><code>Decoder.TextStream</code></a> configured</li>
+ </ul>
+
+ <p>For handling incoming binary messages, the allowed types for T are
+ <ul>
+ <li><code>ByteBuffer</code> </li>
+ <li>byte[] </li>
+ <li><code>InputStream</code> </li>
+ <li>any developer object for which there is a corresponding <a href="Decoder.Binary.html" title="interface in javax.websocket"><code>Decoder.Binary</code></a> or
+ <a href="Decoder.BinaryStream.html" title="interface in javax.websocket"><code>Decoder.BinaryStream</code></a> configured
+ </ul>
+
+ <p>For handling incoming pong messages, the type of T is <a href="PongMessage.html" title="interface in javax.websocket"><code>PongMessage</code></a>
+
+ <p>Developers should not continue to reference message objects of type <code>Reader</code>, <code>ByteBuffer</code>
+ or <code>InputStream</code> after the completion of the onMessage() call, since they
+ may be recycled by the implementation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.MessageHandler">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></h3>
+<code><a href="MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;<a href="MessageHandler.Partial.html" title="type parameter in MessageHandler.Partial">T</a>&gt;, <a href="MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;<a href="MessageHandler.Whole.html" title="type parameter in MessageHandler.Whole">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onMessage(T)">onMessage</a></span>&#8203;(<a href="MessageHandler.Whole.html" title="type parameter in MessageHandler.Whole">T</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Called when the message has been fully received.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onMessage(java.lang.Object)">
+<!--   -->
+</a><a id="onMessage(T)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onMessage</h4>
+<pre class="methodSignature">void&nbsp;onMessage&#8203;(<a href="MessageHandler.Whole.html" title="type parameter in MessageHandler.Whole">T</a>&nbsp;message)</pre>
+<div class="block">Called when the message has been fully received.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the message data.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageHandler.Whole.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/MessageHandler.html b/apidocs/1.20/javax/websocket/MessageHandler.html
new file mode 100644
index 00000000..d0aaaf1d
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/MessageHandler.html
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MessageHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MessageHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface MessageHandler" class="title">Interface MessageHandler</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;</code>, <code><a href="MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;</code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">MessageHandler</span></pre>
+<div class="block">Developers implement MessageHandlers in order to receive incoming messages
+ during a web socket conversation.
+ Each web socket session uses no more than one thread at a time to call its MessageHandlers. This means
+ that, provided each message handler instance is used to handle messages for one web socket session, at most
+ one thread at a time can be calling any of its methods. Developers who wish to handle messages from multiple
+ clients within the same message handlers may do so by adding the same instance as a handler on each of the Session
+ objects for the clients. In that case, they will need to code with the possibility of their MessageHandler
+ being called concurrently by multiple threads, each one arising from a different client session.
+
+ <p>See <a href="Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> for a usage example.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;<a href="MessageHandler.Partial.html" title="type parameter in MessageHandler.Partial">T</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This kind of handler is notified by the implementation as it becomes ready
+ to deliver parts of a whole message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;<a href="MessageHandler.Whole.html" title="type parameter in MessageHandler.Whole">T</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This kind of handler is notified by the container on arrival of a complete message.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/OnClose.html b/apidocs/1.20/javax/websocket/OnClose.html
new file mode 100644
index 00000000..94030889
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/OnClose.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>OnClose (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OnClose (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OnClose.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Annotation Type OnClose" class="title">Annotation Type OnClose</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>@Retention(RUNTIME)
+@Target(METHOD)
+public @interface <span class="memberNameLabel">OnClose</span></pre>
+<div class="block">This method level annotation can be used to decorate a Java method that wishes 
+ to be called when a web socket session is closing.
+
+ <p>The method may only take the following parameters:-
+ <ul>
+ <li>optional <a href="Session.html" title="interface in javax.websocket"><code>Session</code></a> parameter</li>
+ <li>optional <a href="CloseReason.html" title="class in javax.websocket"><code>CloseReason</code></a> parameter</li>
+ <li>Zero to n String parameters annotated with the <a href="server/PathParam.html" title="annotation in javax.websocket.server"><code>PathParam</code></a> 
+ annotation.</li>
+ </ul>
+
+ <p>The parameters may appear in any order. See
+ <a href="Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)"><code>Endpoint.onClose(javax.websocket.Session, javax.websocket.CloseReason)</code></a>
+ for more details on how the session parameter may be used during method calls 
+ annotated with this annotation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OnClose.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/OnError.html b/apidocs/1.20/javax/websocket/OnError.html
new file mode 100644
index 00000000..0b52093d
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/OnError.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>OnError (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OnError (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OnError.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Annotation Type OnError" class="title">Annotation Type OnError</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>@Retention(RUNTIME)
+@Target(METHOD)
+public @interface <span class="memberNameLabel">OnError</span></pre>
+<div class="block">This method level annotation can be used to decorate a Java method that wishes to be called in order
+ to handle errors. See <a href="Endpoint.html#onError(javax.websocket.Session,java.lang.Throwable)"><code>Endpoint.onError(javax.websocket.Session, java.lang.Throwable)</code></a> for
+ a description of the different categories of error.
+
+ <p>The method may only take the following parameters:-
+ <ul>
+ <li>optional <a href="Session.html" title="interface in javax.websocket"><code>Session</code></a> parameter</li>
+ <li>a <code>Throwable</code>  parameter</li>
+ <li>Zero to n String parameters annotated with the <a href="server/PathParam.html" title="annotation in javax.websocket.server"><code>PathParam</code></a> annotation</li>
+ </ul>
+
+ <p>The parameters may appear in any order.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OnError.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/OnMessage.html b/apidocs/1.20/javax/websocket/OnMessage.html
new file mode 100644
index 00000000..48e0942f
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/OnMessage.html
@@ -0,0 +1,344 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>OnMessage (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OnMessage (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OnMessage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Annotation Type OnMessage" class="title">Annotation Type OnMessage</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>@Retention(RUNTIME)
+@Target(METHOD)
+public @interface <span class="memberNameLabel">OnMessage</span></pre>
+<div class="block">This method level annotation can be used to make a Java method receive incoming web socket messages. Each websocket
+ endpoint may only have one message handling method for each of the native websocket message formats: text, binary and pong. Methods
+ using this annotation are allowed to have
+ parameters of types described below, otherwise the container will generate an error at deployment time.
+ <p>The allowed parameters are:
+ <ol>
+ <li>Exactly one of any of the following choices
+ <ul>
+ <li>if the method is handling text messages:
+ <ul>
+ <li> <code>String</code> to receive the whole message</li>
+ <li> Java primitive or class equivalent to receive the whole message converted to that type</li>
+ <li> String and boolean pair to receive the message in parts</li>
+ <li> <code>Reader</code> to receive the whole message as a blocking stream</li>
+ <li>any object parameter for which the endpoint has a text decoder (<a href="Decoder.Text.html" title="interface in javax.websocket"><code>Decoder.Text</code></a> or
+ <a href="Decoder.TextStream.html" title="interface in javax.websocket"><code>Decoder.TextStream</code></a>).</li>
+ </ul>
+ </li>
+ <li>if the method is handling binary messages:
+ <ul>
+ <li> byte[] or <code>ByteBuffer</code> to receive the whole message</li>
+ <li> byte[] and boolean pair, or <code>ByteBuffer</code> and boolean pair to receive the message in parts</li>
+ <li> <code>InputStream</code> to receive the whole message as a blocking stream</li>
+ <li> any object parameter for which the endpoint has a binary decoder (<a href="Decoder.Binary.html" title="interface in javax.websocket"><code>Decoder.Binary</code></a> or
+ <a href="Decoder.BinaryStream.html" title="interface in javax.websocket"><code>Decoder.BinaryStream</code></a>).</li>
+ </ul>
+ </li>
+ <li>if the method is handling pong messages:
+ <ul>
+ <li> <a href="PongMessage.html" title="interface in javax.websocket"><code>PongMessage</code></a> for handling pong messages</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li> and Zero to n String or Java primitive parameters
+ annotated with the <a href="server/PathParam.html" title="annotation in javax.websocket.server"><code>PathParam</code></a> annotation for server endpoints.</li>
+ <li> and an optional <a href="Session.html" title="interface in javax.websocket"><code>Session</code></a> parameter</li>
+ </ol>
+ <p/>
+ The parameters may be listed in any order.
+
+ <p>The method may have a non-void return type, in which case the web socket
+ runtime must interpret this as a web socket message to return to the peer. 
+ The allowed data types for this return type, other than void, are String, 
+ ByteBuffer, byte[], any Java primitive or class equivalent, and anything for 
+ which there is an encoder. If the method uses a Java primitive as a return 
+ value, the implementation must construct the text message to send using the 
+ standard Java string representation of the Java primitive unless there developer
+ provided encoder for the type configured for this endpoint, in which
+ case that encoder must be used. If the method uses 
+ a class equivalent of a Java primitive as a return value, the implementation 
+ must construct the text message from the Java primitive equivalent as 
+ described above.
+ 
+ <p>Developers should
+ note that if developer closes the session during the invocation of a method with a return type, the method will complete but the
+ return value will not be delivered to the remote endpoint. The send failure will be passed back into the endpoint's error handling method.
+
+ <p>For example:
+ <pre><code>
+ &#64;OnMessage
+ public void processGreeting(String message, Session session) {
+     System.out.println("Greeting received:" + message);
+ }
+ </code></pre>
+ For example:
+ <pre><code>
+ &#64;OnMessage
+ public void processUpload(byte[] b, boolean last, Session session) {
+     // process partial data here, which check on last to see if these is more on the way
+ }
+ </code></pre>
+ Developers should not continue to reference message objects of type <code>Reader</code>, <code>ByteBuffer</code>
+ or <code>InputStream</code> after the annotated method has completed, since they
+ may be recycled by the implementation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.optional.element.summary">
+<!--   -->
+</a>
+<h3>Optional Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Optional Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maxMessageSize()">maxMessageSize</a></span></code></th>
+<td class="colLast">
+<div class="block">Specifies the maximum size of message in bytes that the method
+ this annotates will be able to process, or -1 to indicate
+ that there is no maximum.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="maxMessageSize()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>maxMessageSize</h4>
+<pre>long&nbsp;maxMessageSize</pre>
+<div class="block">Specifies the maximum size of message in bytes that the method
+ this annotates will be able to process, or -1 to indicate
+ that there is no maximum. The default is -1. This attribute only
+ applies when the annotation is used to process whole messages, not to
+ those methods that process messages in parts or use a stream or reader
+ parameter to handle the incoming message.
+ If the incoming whole message exceeds this limit, then the implementation
+ generates an error and closes the connection using the reason that
+ the message was too big.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum size in bytes.</dd>
+</dl>
+<dl>
+<dt>Default:</dt>
+<dd>-1L</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OnMessage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/OnOpen.html b/apidocs/1.20/javax/websocket/OnOpen.html
new file mode 100644
index 00000000..d9063681
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/OnOpen.html
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>OnOpen (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OnOpen (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OnOpen.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Annotation Type OnOpen" class="title">Annotation Type OnOpen</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>@Retention(RUNTIME)
+@Target(METHOD)
+public @interface <span class="memberNameLabel">OnOpen</span></pre>
+<div class="block">This method level annotation can be used to decorate a Java method that wishes to be called when a new
+ web socket session is open.
+
+ <p>The method may only take the following parameters:-
+ <ul>
+ <li>optional <a href="Session.html" title="interface in javax.websocket"><code>Session</code></a> parameter</li>
+ <li>optional <a href="EndpointConfig.html" title="interface in javax.websocket"><code>EndpointConfig</code></a> parameter</li>
+ <li>Zero to n String parameters annotated with the <a href="server/PathParam.html" title="annotation in javax.websocket.server"><code>PathParam</code></a> annotation.</li>
+ </ul>
+
+ <p>The parameters may appear in any order.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OnOpen.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/PongMessage.html b/apidocs/1.20/javax/websocket/PongMessage.html
new file mode 100644
index 00000000..124062ed
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/PongMessage.html
@@ -0,0 +1,265 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PongMessage (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PongMessage (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PongMessage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface PongMessage" class="title">Interface PongMessage</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">PongMessage</span></pre>
+<div class="block">The PongMessage interface represents a web socket pong. PongMessages may be received by using
+ a <code>MessageHandler.Basic&lt;PongMessage&gt;</code>. The payload of the PongMessage is the application data sent by the peer.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.nio.ByteBuffer</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getApplicationData()">getApplicationData</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The application data inside the pong message from the peer.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getApplicationData()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getApplicationData</h4>
+<pre class="methodSignature">java.nio.ByteBuffer&nbsp;getApplicationData()</pre>
+<div class="block">The application data inside the pong message from the peer.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the application data.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PongMessage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/RemoteEndpoint.Async.html b/apidocs/1.20/javax/websocket/RemoteEndpoint.Async.html
new file mode 100644
index 00000000..2e90e01b
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/RemoteEndpoint.Async.html
@@ -0,0 +1,508 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RemoteEndpoint.Async (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RemoteEndpoint.Async (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RemoteEndpoint.Async.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface RemoteEndpoint.Async" class="title">Interface RemoteEndpoint.Async</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">RemoteEndpoint.Async</span>
+extends <a href="RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></pre>
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages asynchronously. The point of completion of the send is 
+ defined when all the supplied data has been written to the underlying connection.
+ The completion handlers for the asynchronous methods are always called with 
+ a different thread from that which initiated the send.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.RemoteEndpoint">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></h3>
+<code><a href="RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a>, <a href="RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSendTimeout()">getSendTimeout</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the number of milliseconds the implementation will timeout
+ attempting to send a websocket message.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;java.lang.Void&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(java.nio.ByteBuffer)">sendBinary</a></span>&#8203;(java.nio.ByteBuffer&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Initiates the asynchronous transmission of a binary message.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(java.nio.ByteBuffer,javax.websocket.SendHandler)">sendBinary</a></span>&#8203;(java.nio.ByteBuffer&nbsp;data,
+          <a href="SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Initiates the asynchronous transmission of a binary message.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;java.lang.Void&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendObject(java.lang.Object)">sendObject</a></span>&#8203;(java.lang.Object&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Initiates the asynchronous transmission of a custom developer object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendObject(java.lang.Object,javax.websocket.SendHandler)">sendObject</a></span>&#8203;(java.lang.Object&nbsp;data,
+          <a href="SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Initiates the asynchronous transmission of a custom developer object.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;java.lang.Void&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendText(java.lang.String)">sendText</a></span>&#8203;(java.lang.String&nbsp;text)</code></th>
+<td class="colLast">
+<div class="block">Initiates the asynchronous transmission of a text message.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendText(java.lang.String,javax.websocket.SendHandler)">sendText</a></span>&#8203;(java.lang.String&nbsp;text,
+        <a href="SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Initiates the asynchronous transmission of a text message.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSendTimeout(long)">setSendTimeout</a></span>&#8203;(long&nbsp;timeoutmillis)</code></th>
+<td class="colLast">
+<div class="block">Sets the number of milliseconds the implementation will timeout
+ attempting to send a websocket message.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.RemoteEndpoint">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></h3>
+<code><a href="RemoteEndpoint.html#flushBatch()">flushBatch</a>, <a href="RemoteEndpoint.html#getBatchingAllowed()">getBatchingAllowed</a>, <a href="RemoteEndpoint.html#sendPing(java.nio.ByteBuffer)">sendPing</a>, <a href="RemoteEndpoint.html#sendPong(java.nio.ByteBuffer)">sendPong</a>, <a href="RemoteEndpoint.html#setBatchingAllowed(boolean)">setBatchingAllowed</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getSendTimeout()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSendTimeout</h4>
+<pre class="methodSignature">long&nbsp;getSendTimeout()</pre>
+<div class="block">Return the number of milliseconds the implementation will timeout
+ attempting to send a websocket message. A non-positive number indicates
+ the implementation will not timeout attempting to send a websocket message
+ asynchronously. This value overrides the default value assigned in the
+ WebSocketContainer.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the timeout time in milliseconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="setSendTimeout(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSendTimeout</h4>
+<pre class="methodSignature">void&nbsp;setSendTimeout&#8203;(long&nbsp;timeoutmillis)</pre>
+<div class="block">Sets the number of milliseconds the implementation will timeout
+ attempting to send a websocket message. A non-positive number indicates
+ the implementation will not timeout attempting to send a websocket message
+ asynchronously. This value overrides the default value assigned in the
+ WebSocketContainer.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeoutmillis</code> - The number of milliseconds this RemoteEndpoint will wait before timing out
+ an incomplete asynchronous message send.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendText(java.lang.String,javax.websocket.SendHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendText</h4>
+<pre class="methodSignature">void&nbsp;sendText&#8203;(java.lang.String&nbsp;text,
+              <a href="SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</pre>
+<div class="block">Initiates the asynchronous transmission of a text message. This method returns before the message
+ is transmitted. Developers provide a callback to be notified when the message has been
+ transmitted. Errors
+ in transmission are given to the developer in the SendResult object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>text</code> - the text being sent.</dd>
+<dd><code>handler</code> - the handler which will be notified of progress.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the text or the handler is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendText(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendText</h4>
+<pre class="methodSignature">java.util.concurrent.Future&lt;java.lang.Void&gt;&nbsp;sendText&#8203;(java.lang.String&nbsp;text)</pre>
+<div class="block">Initiates the asynchronous transmission of a text message. This method 
+ returns before the message is transmitted. Developers use the 
+ returned Future object to track progress of the transmission. The
+ Future's get() method returns <code>null</code> upon successful completion. Errors
+ in transmission are wrapped in the <code>ExecutionException</code> 
+ thrown when querying the Future object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>text</code> - the text being sent.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Future object representing the send operation.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the text is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">java.util.concurrent.Future&lt;java.lang.Void&gt;&nbsp;sendBinary&#8203;(java.nio.ByteBuffer&nbsp;data)</pre>
+<div class="block">Initiates the asynchronous transmission of a binary message. This method returns before the message
+ is transmitted. Developers use the returned Future object to track progress of the transmission. The
+ Future's get() method returns <code>null</code> upon successful completion. Errors
+ in transmission are wrapped in the <code>ExecutionException</code> 
+ thrown when querying the Future object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - the data being sent.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Future object representing the send operation.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the data is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(java.nio.ByteBuffer,javax.websocket.SendHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">void&nbsp;sendBinary&#8203;(java.nio.ByteBuffer&nbsp;data,
+                <a href="SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</pre>
+<div class="block">Initiates the asynchronous transmission of a binary message. This method returns before the message
+ is transmitted. Developers provide a callback to be notified when the message has been
+ transmitted. Errors in transmission are given to the developer in the SendResult object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - the data being sent, must not be <code>null</code>.</dd>
+<dd><code>handler</code> - the handler that will be notified of progress, must not be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if either the data or the handler are <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendObject(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendObject</h4>
+<pre class="methodSignature">java.util.concurrent.Future&lt;java.lang.Void&gt;&nbsp;sendObject&#8203;(java.lang.Object&nbsp;data)</pre>
+<div class="block">Initiates the asynchronous transmission of a custom developer object. 
+ The developer will have provided an encoder for this object
+ type in the endpoint configuration. Containers will by default be able 
+ to encode java primitive types and their object equivalents, otherwise 
+ the developer must have provided an encoder for the object type in the 
+ endpoint configuration. Progress may be tracked using the Future object. 
+ The Future's get() methods return <code>null</code> upon successful completion. Errors
+ in transmission are wrapped in the <code>ExecutionException</code> 
+ thrown when querying the Future object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - the object being sent.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Future object representing the send operation.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the data is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendObject(java.lang.Object,javax.websocket.SendHandler)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sendObject</h4>
+<pre class="methodSignature">void&nbsp;sendObject&#8203;(java.lang.Object&nbsp;data,
+                <a href="SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</pre>
+<div class="block">Initiates the asynchronous transmission of a custom developer object. 
+ Containers will by default be able to encode java primitive types and 
+ their object equivalents, otherwise the developer must have provided an encoder 
+ for the object type in the endpoint configuration. Developers 
+ are notified when transmission is complete through the supplied callback object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - the object being sent.</dd>
+<dd><code>handler</code> - the handler that will be notified of progress, must not be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if either the data or the handler are <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RemoteEndpoint.Async.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/RemoteEndpoint.Basic.html b/apidocs/1.20/javax/websocket/RemoteEndpoint.Basic.html
new file mode 100644
index 00000000..3d3e6ae8
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/RemoteEndpoint.Basic.html
@@ -0,0 +1,476 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RemoteEndpoint.Basic (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RemoteEndpoint.Basic (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RemoteEndpoint.Basic.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface RemoteEndpoint.Basic" class="title">Interface RemoteEndpoint.Basic</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">RemoteEndpoint.Basic</span>
+extends <a href="RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></pre>
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages synchronously. The point of completion of the send is 
+ defined when all the supplied data has been written to the underlying connection.
+ The methods for sending messages on the RemoteEndpoint.Basic block until this
+ point of completion is reached, except for <a href="#getSendStream()"><code>getSendStream</code></a>
+ and <a href="#getSendWriter()"><code>getSendWriter</code></a> which present
+ traditional blocking I/O streams to write messages.
+
+ <p>If the websocket connection underlying this RemoteEndpoint is busy sending a message when a call is made
+ to send another one, for example if two threads attempt to call a send method 
+ concurrently, or if a developer attempts to send a new message while in the 
+ middle of sending an existing one, the send method called while
+ the connection is already busy may throw an <code>IllegalStateException</code>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.RemoteEndpoint">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></h3>
+<code><a href="RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a>, <a href="RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.io.OutputStream</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSendStream()">getSendStream</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Opens an output stream on which a binary message may be sent.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.io.Writer</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSendWriter()">getSendWriter</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Opens an character stream on which a text message may be sent.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(java.nio.ByteBuffer)">sendBinary</a></span>&#8203;(java.nio.ByteBuffer&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Send a binary message, returning when all of the message has been transmitted.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(java.nio.ByteBuffer,boolean)">sendBinary</a></span>&#8203;(java.nio.ByteBuffer&nbsp;partialByte,
+          boolean&nbsp;isLast)</code></th>
+<td class="colLast">
+<div class="block">Send a binary message in parts, blocking until all of the message has been transmitted.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendObject(java.lang.Object)">sendObject</a></span>&#8203;(java.lang.Object&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Sends a custom developer object, blocking until it has been transmitted.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendText(java.lang.String)">sendText</a></span>&#8203;(java.lang.String&nbsp;text)</code></th>
+<td class="colLast">
+<div class="block">Send a text message, blocking until all of the message has been transmitted.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendText(java.lang.String,boolean)">sendText</a></span>&#8203;(java.lang.String&nbsp;partialMessage,
+        boolean&nbsp;isLast)</code></th>
+<td class="colLast">
+<div class="block">Send a text message in parts, blocking until all of the message has been transmitted.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.RemoteEndpoint">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></h3>
+<code><a href="RemoteEndpoint.html#flushBatch()">flushBatch</a>, <a href="RemoteEndpoint.html#getBatchingAllowed()">getBatchingAllowed</a>, <a href="RemoteEndpoint.html#sendPing(java.nio.ByteBuffer)">sendPing</a>, <a href="RemoteEndpoint.html#sendPong(java.nio.ByteBuffer)">sendPong</a>, <a href="RemoteEndpoint.html#setBatchingAllowed(boolean)">setBatchingAllowed</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="sendText(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendText</h4>
+<pre class="methodSignature">void&nbsp;sendText&#8203;(java.lang.String&nbsp;text)
+       throws java.io.IOException</pre>
+<div class="block">Send a text message, blocking until all of the message has been transmitted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>text</code> - the message to be sent.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem delivering the message.</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if the text is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">void&nbsp;sendBinary&#8203;(java.nio.ByteBuffer&nbsp;data)
+         throws java.io.IOException</pre>
+<div class="block">Send a binary message, returning when all of the message has been transmitted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - the message to be sent.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem delivering the message.</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if the data is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendText(java.lang.String,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendText</h4>
+<pre class="methodSignature">void&nbsp;sendText&#8203;(java.lang.String&nbsp;partialMessage,
+              boolean&nbsp;isLast)
+       throws java.io.IOException</pre>
+<div class="block">Send a text message in parts, blocking until all of the message has been transmitted. The runtime
+ reads the message in order. Non-final parts of the message are sent with isLast set to false. The final part
+ must be sent with isLast set to true.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>partialMessage</code> - the parts of the message being sent.</dd>
+<dd><code>isLast</code> - Whether the partial message being sent is the last part of the message.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem delivering the message fragment.</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if the partialMessage is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(java.nio.ByteBuffer,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">void&nbsp;sendBinary&#8203;(java.nio.ByteBuffer&nbsp;partialByte,
+                boolean&nbsp;isLast)
+         throws java.io.IOException</pre>
+<div class="block">Send a binary message in parts, blocking until all of the message has been transmitted. The runtime
+ reads the message in order. Non-final parts are sent with isLast set to false. The final piece
+ must be sent with isLast set to true.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>partialByte</code> - the part of the message being sent.</dd>
+<dd><code>isLast</code> - Whether the partial message being sent is the last part of the message.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem delivering the partial message.</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if the partialByte is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSendStream()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSendStream</h4>
+<pre class="methodSignature">java.io.OutputStream&nbsp;getSendStream()
+                            throws java.io.IOException</pre>
+<div class="block">Opens an output stream on which a binary message may be sent. The developer must close the output stream in order
+ to indicate that the complete message has been placed into the output stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the output stream to which the message will be written.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem obtaining the OutputStream to write the binary message.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSendWriter()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSendWriter</h4>
+<pre class="methodSignature">java.io.Writer&nbsp;getSendWriter()
+                      throws java.io.IOException</pre>
+<div class="block">Opens an character stream on which a text message may be sent. The developer must close the writer in order
+ to indicate that the complete message has been placed into the character stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the writer to which the message will be written.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem obtaining the Writer to write the text message.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendObject(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sendObject</h4>
+<pre class="methodSignature">void&nbsp;sendObject&#8203;(java.lang.Object&nbsp;data)
+         throws java.io.IOException,
+                <a href="EncodeException.html" title="class in javax.websocket">EncodeException</a></pre>
+<div class="block">Sends a custom developer object, blocking until it has been transmitted. 
+ Containers will by default be able to encode java primitive types and 
+ their object equivalents, otherwise the developer must have provided an encoder 
+ for the object type in the endpoint configuration. A developer-provided
+ encoder for a Java primitive type overrides the container default
+ encoder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - the object to be sent.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a communication error sending the message object.</dd>
+<dd><code><a href="EncodeException.html" title="class in javax.websocket">EncodeException</a></code> - if there was a problem encoding the message object into the form of a native websocket message.</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if the data parameter is <code>null</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RemoteEndpoint.Basic.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/RemoteEndpoint.html b/apidocs/1.20/javax/websocket/RemoteEndpoint.html
new file mode 100644
index 00000000..58740679
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/RemoteEndpoint.html
@@ -0,0 +1,456 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RemoteEndpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RemoteEndpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RemoteEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface RemoteEndpoint" class="title">Interface RemoteEndpoint</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></code>, <code><a href="RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">TyrusRemoteEndpoint</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">RemoteEndpoint</span></pre>
+<div class="block">The RemoteEndpoint object is supplied by the container and represents the 
+ 'other end' or peer of the Web Socket conversation. Instances of the RemoteEndpoint
+ are obtained from the Session using <a href="Session.html#getBasicRemote()"><code>Session.getBasicRemote()</code></a> or
+ <a href="Session.html#getAsyncRemote()"><code>Session.getAsyncRemote()</code></a>.
+ Objects of this kind include numerous ways to send web socket messages. There 
+ are two kinds of RemoteEndpoint objects: RemoteEndpoint.Basic for synchronous
+ sending of websocket messages, and RemoteEndpoint.Async for sending messages
+ asynchronously.
+
+ <p>There is no guarantee of the successful delivery of a web socket message to
+ the peer, but if the action of sending a message causes an error known to 
+ the container, the API throws it.
+ RemoteEndpoints include a variety of ways to send messages: by whole message, 
+ in parts, and in various data formats including websocket pings and pongs. 
+
+ <p>Implementations
+ may or may not support batching of messages. More detail of the expected semantics
+ of implementations that do support batching are laid out in <a href="#setBatchingAllowed(boolean)"><code>setBatchingAllowed(boolean)</code></a>.
+
+ <p>Note: Implementations may choose their own schemes for sending large messages in smaller parts. These
+ schemes may or may not bear a relationship to the underlying websocket dataframes in which the message
+ is ultimately sent on the wire.
+
+ <p>If the underlying connection is closed and methods on the RemoteEndpoint are attempted to be called, they will
+ result in an error being generated. For the methods that send messages, this will be an IOException, for the methods
+ that alter configuration of the endpoint, this will be runtime IllegalArgumentExceptions.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></span></code></th>
+<td class="colLast">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></span></code></th>
+<td class="colLast">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages synchronously.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flushBatch()">flushBatch</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method is only used when batching is allowed for this RemoteEndpint.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBatchingAllowed()">getBatchingAllowed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return whether the implementation is allowed to batch outgoing messages
+ before sending.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendPing(java.nio.ByteBuffer)">sendPing</a></span>&#8203;(java.nio.ByteBuffer&nbsp;applicationData)</code></th>
+<td class="colLast">
+<div class="block">Send a Ping message containing the given application data to the remote endpoint.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendPong(java.nio.ByteBuffer)">sendPong</a></span>&#8203;(java.nio.ByteBuffer&nbsp;applicationData)</code></th>
+<td class="colLast">
+<div class="block">Allows the developer to send an unsolicited Pong message containing the given application
+ data in order to serve as a unidirectional
+ heartbeat for the session.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setBatchingAllowed(boolean)">setBatchingAllowed</a></span>&#8203;(boolean&nbsp;allowed)</code></th>
+<td class="colLast">
+<div class="block">Indicate to the implementation that it is allowed to batch outgoing messages
+ before sending.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="setBatchingAllowed(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBatchingAllowed</h4>
+<pre class="methodSignature">void&nbsp;setBatchingAllowed&#8203;(boolean&nbsp;allowed)
+                 throws java.io.IOException</pre>
+<div class="block">Indicate to the implementation that it is allowed to batch outgoing messages
+ before sending. Not all implementations support batching of outgoing messages.
+ The default mode for RemoteEndpoints is false. If the developer
+ has indicated that batching of outgoing
+ messages is permitted, then the developer must call flushBatch() in order to be
+ sure that all the messages passed into the send methods of this RemoteEndpoint
+ are sent. 
+ When batching is allowed, the implementations send operations are considered
+ to have completed if the message has been written to the local batch, in 
+ the case when there is still room in the batch for the message, and are considered
+ to have completed if the batch has been send to the peer and the remainder
+ written to the new batch, in the case when
+ writing the message causes the batch to need to be sent. The blocking
+ and asynchronous send methods use this notion of completion in order
+ to complete blocking calls, notify SendHandlers and complete Futures respectively.
+ When batching is allowed, if the developer has called send methods
+ on this RemoteEndpoint without calling flushBatch(), then the implementation
+ may not have sent all the messages the developer has asked to be sent. If
+ the parameter value is false and the implementation has a batch of unsent messages,
+ then the implementation must immediately send the batch of unsent messages.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>allowed</code> - whether the implementation is allowed to batch messages.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if batching is being disabled and there are unsent messages
+ this error may be thrown as the implementation sends the batch of unsent messages if
+ there is a problem.</dd>
+</dl>
+</li>
+</ul>
+<a id="getBatchingAllowed()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBatchingAllowed</h4>
+<pre class="methodSignature">boolean&nbsp;getBatchingAllowed()</pre>
+<div class="block">Return whether the implementation is allowed to batch outgoing messages
+ before sending. The default mode for RemoteEndpoints is false. The value
+ may be changed by calling <a href="#setBatchingAllowed(boolean)"><code>setBatchingAllowed</code></a>.</div>
+</li>
+</ul>
+<a id="flushBatch()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flushBatch</h4>
+<pre class="methodSignature">void&nbsp;flushBatch()
+         throws java.io.IOException</pre>
+<div class="block">This method is only used when batching is allowed for this RemoteEndpint. Calling
+ this method forces the implementation to send any unsent messages it has been batching.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code></dd>
+</dl>
+</li>
+</ul>
+<a id="sendPing(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendPing</h4>
+<pre class="methodSignature">void&nbsp;sendPing&#8203;(java.nio.ByteBuffer&nbsp;applicationData)
+       throws java.io.IOException,
+              java.lang.IllegalArgumentException</pre>
+<div class="block">Send a Ping message containing the given application data to the remote endpoint. The corresponding Pong message may be picked
+ up using the MessageHandler.Pong handler.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>applicationData</code> - the data to be carried in the ping request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if the ping failed to be sent</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if the applicationData exceeds the maximum allowed payload of 125 bytes</dd>
+</dl>
+</li>
+</ul>
+<a id="sendPong(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sendPong</h4>
+<pre class="methodSignature">void&nbsp;sendPong&#8203;(java.nio.ByteBuffer&nbsp;applicationData)
+       throws java.io.IOException,
+              java.lang.IllegalArgumentException</pre>
+<div class="block">Allows the developer to send an unsolicited Pong message containing the given application
+ data in order to serve as a unidirectional
+ heartbeat for the session.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>applicationData</code> - the application data to be carried in the pong response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if the pong failed to be sent</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if the applicationData exceeds the maximum allowed payload of 125 bytes</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RemoteEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/SendHandler.html b/apidocs/1.20/javax/websocket/SendHandler.html
new file mode 100644
index 00000000..03c10d3c
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/SendHandler.html
@@ -0,0 +1,264 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SendHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SendHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SendHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface SendHandler" class="title">Interface SendHandler</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">SendHandler</span></pre>
+<div class="block">A simple callback object for asynchronous sending of web socket messages.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onResult(javax.websocket.SendResult)">onResult</a></span>&#8203;(<a href="SendResult.html" title="class in javax.websocket">SendResult</a>&nbsp;result)</code></th>
+<td class="colLast">
+<div class="block">Called once the message has been transmitted.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onResult(javax.websocket.SendResult)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onResult</h4>
+<pre class="methodSignature">void&nbsp;onResult&#8203;(<a href="SendResult.html" title="class in javax.websocket">SendResult</a>&nbsp;result)</pre>
+<div class="block">Called once the message has been transmitted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>result</code> - the result.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SendHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/SendResult.html b/apidocs/1.20/javax/websocket/SendResult.html
new file mode 100644
index 00000000..fc867d15
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/SendResult.html
@@ -0,0 +1,366 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SendResult (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SendResult (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SendResult.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Class SendResult" class="title">Class SendResult</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.SendResult</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">SendResult</span>
+extends java.lang.Object</pre>
+<div class="block">The result of asynchronously sending a web socket message. A SendResult is either
+ ok indicating there was no problem, or is not OK in which case there was a problem
+ and it carries an exception to indicate what the problem was.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">SendResult</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a SendResult signifying a successful send carrying no exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">SendResult</a></span>&#8203;(java.lang.Throwable&nbsp;exception)</code></th>
+<td class="colLast">
+<div class="block">Construct a SendResult carrying an exception.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.Throwable</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getException()">getException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The problem sending the message.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isOK()">isOK</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Determines if this result is ok or not.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SendResult</h4>
+<pre>public&nbsp;SendResult&#8203;(java.lang.Throwable&nbsp;exception)</pre>
+<div class="block">Construct a SendResult carrying an exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>exception</code> - the exception causing a send failure.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SendResult</h4>
+<pre>public&nbsp;SendResult()</pre>
+<div class="block">Construct a SendResult signifying a successful send carrying no exception.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getException()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getException</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Throwable&nbsp;getException()</pre>
+<div class="block">The problem sending the message.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the problem or <code>null</code> if the send was successful.</dd>
+</dl>
+</li>
+</ul>
+<a id="isOK()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOK</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isOK()</pre>
+<div class="block">Determines if this result is ok or not.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether the send was successful or not.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SendResult.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/Session.html b/apidocs/1.20/javax/websocket/Session.html
new file mode 100644
index 00000000..2de499f7
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/Session.html
@@ -0,0 +1,982 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Session (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Session (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Session.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface Session" class="title">Interface Session</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code>java.lang.AutoCloseable</code>, <code>java.io.Closeable</code></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></code>, <code><a href="../../org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">Session</span>
+extends java.io.Closeable</pre>
+<div class="block">A Web Socket session represents a conversation between two web socket endpoints. As soon
+ as the websocket handshake completes successfully, the web socket implementation provides
+ the endpoint an open websocket session. The endpoint can then register interest in incoming
+ messages that are part of this newly created session by providing a MessageHandler to the
+ session, and can send messages to the other end of the conversation by means of the RemoteEndpoint object
+ obtained from this session.
+ <p>
+ Once the session is closed, it is no longer valid for use by applications. Calling any of
+ its methods (with the exception of the close() methods)
+ once the session has been closed will result in an <code>IllegalStateException</code> being thrown.
+ Developers should retrieve any information from the session during the
+ <a href="Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)"><code>Endpoint.onClose(javax.websocket.Session, javax.websocket.CloseReason)</code></a> method. Following the convention of <code>Closeable</code>
+ calling the Session close() methods after the Session has been closed has no
+ effect.
+ <p>
+ Session objects may be called by multiple threads. Implementations must
+ ensure the integrity of the mutable properties of the session under such circumstances.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler</a></span>&#8203;(<a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Close the current conversation with a normal status code and no reason phrase.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Close the current conversation, giving a reason for the closure.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAsyncRemote()">getAsyncRemote</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a reference a RemoteEndpoint object representing the peer of this conversation
+ that is able to send messages asynchronously to the peer.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBasicRemote()">getBasicRemote</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a reference a RemoteEndpoint object representing the peer of this conversation
+ that is able to send messages synchronously to the peer.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContainer()">getContainer</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the container that this session is part of.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getId()">getId</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a string containing the unique identifier assigned to this session.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxBinaryMessageBufferSize()">getMaxBinaryMessageBufferSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The maximum length of incoming binary messages that this Session can buffer.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxIdleTimeout()">getMaxIdleTimeout</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the number of milliseconds before this conversation may be closed by the
+ container if it is inactive, i.e.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxTextMessageBufferSize()">getMaxTextMessageBufferSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The maximum length of incoming text messages that this Session can buffer.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMessageHandlers()">getMessageHandlers</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return an unmodifiable copy of the set of MessageHandlers for this Session.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNegotiatedExtensions()">getNegotiatedExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the list of extensions currently in use for this conversation.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNegotiatedSubprotocol()">getNegotiatedSubprotocol</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the sub protocol agreed during the websocket handshake for this conversation.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOpenSessions()">getOpenSessions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a copy of the Set of all the open web socket sessions that represent
+ connections to the same endpoint to which this session represents a connection.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPathParameters()">getPathParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a map of the path parameter names and values used associated with the
+ request this session was opened under.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProtocolVersion()">getProtocolVersion</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the version of the websocket protocol currently being used.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueryString()">getQueryString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the query string associated with the request this session
+ was opened under.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestParameterMap()">getRequestParameterMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the request parameters associated with the request this session
+ was opened under.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>java.net.URI</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestURI()">getRequestURI</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the URI under which this session was opened, including
+ the query string if there is one.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>java.security.Principal</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUserPrincipal()">getUserPrincipal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the authenticated user for this Session or <code>null</code> if no user is authenticated for this session.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUserProperties()">getUserProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">While the session is open, this method returns a Map that the developer may
+ use to store application specific information relating to this session
+ instance.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isOpen()">isOpen</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return true if and only if the underlying socket is open.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSecure()">isSecure</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return true if and only if the underlying socket is using a secure transport.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler</a></span>&#8203;(<a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Remove the given MessageHandler from the set belonging to this session.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxBinaryMessageBufferSize(int)">setMaxBinaryMessageBufferSize</a></span>&#8203;(int&nbsp;length)</code></th>
+<td class="colLast">
+<div class="block">Sets the maximum length of incoming binary messages that this Session can buffer.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxIdleTimeout(long)">setMaxIdleTimeout</a></span>&#8203;(long&nbsp;milliseconds)</code></th>
+<td class="colLast">
+<div class="block">Set the non-zero number of milliseconds before this session will be closed by the
+ container if it is inactive, ie no messages are either sent or received.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxTextMessageBufferSize(int)">setMaxTextMessageBufferSize</a></span>&#8203;(int&nbsp;length)</code></th>
+<td class="colLast">
+<div class="block">Sets the maximum length of incoming text messages that this Session can buffer.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getContainer()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getContainer</h4>
+<pre class="methodSignature"><a href="WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;getContainer()</pre>
+<div class="block">Return the container that this session is part of.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the container.</dd>
+</dl>
+</li>
+</ul>
+<a id="addMessageHandler(javax.websocket.MessageHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMessageHandler</h4>
+<pre class="methodSignature">void&nbsp;addMessageHandler&#8203;(<a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)
+                throws java.lang.IllegalStateException</pre>
+<div class="block">Register to handle to incoming messages in this conversation. A maximum of one message handler per
+ native websocket message type (text, binary, pong) may be added to each Session. I.e. a maximum
+ of one message handler to handle incoming text messages a maximum of one message handler for
+ handling incoming binary messages, and a maximum of one for handling incoming pong
+ messages. For further details of which message handlers handle which of the native websocket
+ message types please see <a href="MessageHandler.Whole.html" title="interface in javax.websocket"><code>MessageHandler.Whole</code></a> and <a href="MessageHandler.Partial.html" title="interface in javax.websocket"><code>MessageHandler.Partial</code></a>.
+ Adding more than one of any one type will result in a runtime exception.
+ <p>
+ This method is not safe to use unless you are providing an anonymous class derived directly
+ from <a href="MessageHandler.Whole.html" title="interface in javax.websocket"><code>MessageHandler.Whole</code></a> or <a href="MessageHandler.Partial.html" title="interface in javax.websocket"><code>MessageHandler.Partial</code></a>.
+ In all other cases (Lambda Expressions, more complex inheritance or generic type arrangements),
+ one of the following methods have to be used:
+ <a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)"><code>addMessageHandler(Class, javax.websocket.MessageHandler.Whole)</code></a> or
+ <a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)"><code>addMessageHandler(Class, javax.websocket.MessageHandler.Partial)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>handler</code> - the MessageHandler to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalStateException</code> - if there is already a MessageHandler registered for the same native
+                               websocket message type as this handler.</dd>
+</dl>
+</li>
+</ul>
+<a id="addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMessageHandler</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;void&nbsp;addMessageHandler&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                           <a href="MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;&nbsp;handler)</pre>
+<div class="block">Register to handle to incoming messages in this conversation. A maximum of one message handler per
+ native websocket message type (text, binary, pong) may be added to each Session. I.e. a maximum
+ of one message handler to handle incoming text messages a maximum of one message handler for
+ handling incoming binary messages, and a maximum of one for handling incoming pong
+ messages. For further details of which message handlers handle which of the native websocket
+ message types please see <a href="MessageHandler.Whole.html" title="interface in javax.websocket"><code>MessageHandler.Whole</code></a> and <a href="MessageHandler.Partial.html" title="interface in javax.websocket"><code>MessageHandler.Partial</code></a>.
+ Adding more than one of any one type will result in a runtime exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - type of the message processed by message handler to be registered.</dd>
+<dd><code>handler</code> - whole message handler to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalStateException</code> - if there is already a MessageHandler registered for the same native
+                               websocket message type as this handler.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.1</dd>
+</dl>
+</li>
+</ul>
+<a id="addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMessageHandler</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;void&nbsp;addMessageHandler&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                           <a href="MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;&nbsp;handler)</pre>
+<div class="block">Register to handle to incoming messages in this conversation. A maximum of one message handler per
+ native websocket message type (text, binary, pong) may be added to each Session. I.e. a maximum
+ of one message handler to handle incoming text messages a maximum of one message handler for
+ handling incoming binary messages, and a maximum of one for handling incoming pong
+ messages. For further details of which message handlers handle which of the native websocket
+ message types please see <a href="MessageHandler.Whole.html" title="interface in javax.websocket"><code>MessageHandler.Whole</code></a> and <a href="MessageHandler.Partial.html" title="interface in javax.websocket"><code>MessageHandler.Partial</code></a>.
+ Adding more than one of any one type will result in a runtime exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - type of the message processed by message handler to be registered.</dd>
+<dd><code>handler</code> - partial message handler to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalStateException</code> - if there is already a MessageHandler registered for the same native
+                               websocket message type as this handler.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.1</dd>
+</dl>
+</li>
+</ul>
+<a id="getMessageHandlers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMessageHandlers</h4>
+<pre class="methodSignature">java.util.Set&lt;<a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;&nbsp;getMessageHandlers()</pre>
+<div class="block">Return an unmodifiable copy of the set of MessageHandlers for this Session.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the set of message handlers.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeMessageHandler(javax.websocket.MessageHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeMessageHandler</h4>
+<pre class="methodSignature">void&nbsp;removeMessageHandler&#8203;(<a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</pre>
+<div class="block">Remove the given MessageHandler from the set belonging to this session. This method may block
+ if the given handler is processing a message until it is no longer in use.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>handler</code> - the handler to be removed.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProtocolVersion()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocolVersion</h4>
+<pre class="methodSignature">java.lang.String&nbsp;getProtocolVersion()</pre>
+<div class="block">Returns the version of the websocket protocol currently being used. This is taken
+ as the value of the Sec-WebSocket-Version header used in the opening handshake. i.e. "13".</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the protocol version.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNegotiatedSubprotocol()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNegotiatedSubprotocol</h4>
+<pre class="methodSignature">java.lang.String&nbsp;getNegotiatedSubprotocol()</pre>
+<div class="block">Return the sub protocol agreed during the websocket handshake for this conversation.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the negotiated subprotocol, or the empty string if there isn't one.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNegotiatedExtensions()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNegotiatedExtensions</h4>
+<pre class="methodSignature">java.util.List&lt;<a href="Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;getNegotiatedExtensions()</pre>
+<div class="block">Return the list of extensions currently in use for this conversation.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the negotiated extensions.</dd>
+</dl>
+</li>
+</ul>
+<a id="isSecure()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSecure</h4>
+<pre class="methodSignature">boolean&nbsp;isSecure()</pre>
+<div class="block">Return true if and only if the underlying socket is using a secure transport.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether its using a secure transport.</dd>
+</dl>
+</li>
+</ul>
+<a id="isOpen()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre class="methodSignature">boolean&nbsp;isOpen()</pre>
+<div class="block">Return true if and only if the underlying socket is open.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether the session is active.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxIdleTimeout()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxIdleTimeout</h4>
+<pre class="methodSignature">long&nbsp;getMaxIdleTimeout()</pre>
+<div class="block">Return the number of milliseconds before this conversation may be closed by the
+ container if it is inactive, i.e. no messages are either sent or received in that time.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the timeout in milliseconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMaxIdleTimeout(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxIdleTimeout</h4>
+<pre class="methodSignature">void&nbsp;setMaxIdleTimeout&#8203;(long&nbsp;milliseconds)</pre>
+<div class="block">Set the non-zero number of milliseconds before this session will be closed by the
+ container if it is inactive, ie no messages are either sent or received. A value that is
+ 0 or negative indicates the session will never timeout due to inactivity.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>milliseconds</code> - the number of milliseconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMaxBinaryMessageBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxBinaryMessageBufferSize</h4>
+<pre class="methodSignature">void&nbsp;setMaxBinaryMessageBufferSize&#8203;(int&nbsp;length)</pre>
+<div class="block">Sets the maximum length of incoming binary messages that this Session can buffer.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>length</code> - the maximum length.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxBinaryMessageBufferSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxBinaryMessageBufferSize</h4>
+<pre class="methodSignature">int&nbsp;getMaxBinaryMessageBufferSize()</pre>
+<div class="block">The maximum length of incoming binary messages that this Session can buffer. If
+ the implementation receives a binary message that it cannot buffer because it
+ is too large, it must close the session with a close code of <a href="CloseReason.CloseCodes.html#TOO_BIG"><code>CloseReason.CloseCodes.TOO_BIG</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum binary message size that can be buffered.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMaxTextMessageBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxTextMessageBufferSize</h4>
+<pre class="methodSignature">void&nbsp;setMaxTextMessageBufferSize&#8203;(int&nbsp;length)</pre>
+<div class="block">Sets the maximum length of incoming text messages that this Session can buffer.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>length</code> - the maximum length.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxTextMessageBufferSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxTextMessageBufferSize</h4>
+<pre class="methodSignature">int&nbsp;getMaxTextMessageBufferSize()</pre>
+<div class="block">The maximum length of incoming text messages that this Session can buffer. If
+ the implementation receives a text message that it cannot buffer because it
+ is too large, it must close the session with a close code of <a href="CloseReason.CloseCodes.html#TOO_BIG"><code>CloseReason.CloseCodes.TOO_BIG</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum text message size that can be buffered.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAsyncRemote()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAsyncRemote</h4>
+<pre class="methodSignature"><a href="RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a>&nbsp;getAsyncRemote()</pre>
+<div class="block">Return a reference a RemoteEndpoint object representing the peer of this conversation
+ that is able to send messages asynchronously to the peer.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the remote endpoint.</dd>
+</dl>
+</li>
+</ul>
+<a id="getBasicRemote()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBasicRemote</h4>
+<pre class="methodSignature"><a href="RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a>&nbsp;getBasicRemote()</pre>
+<div class="block">Return a reference a RemoteEndpoint object representing the peer of this conversation
+ that is able to send messages synchronously to the peer.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the remote endpoint.</dd>
+</dl>
+</li>
+</ul>
+<a id="getId()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getId</h4>
+<pre class="methodSignature">java.lang.String&nbsp;getId()</pre>
+<div class="block">Returns a string containing the unique identifier assigned to this session.
+ The identifier is assigned by the web socket implementation and is implementation dependent.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the unique identifier for this session instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">void&nbsp;close()
+    throws java.io.IOException</pre>
+<div class="block">Close the current conversation with a normal status code and no reason phrase.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.lang.AutoCloseable</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.io.Closeable</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there was a connection error closing the connection.</dd>
+</dl>
+</li>
+</ul>
+<a id="close(javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">void&nbsp;close&#8203;(<a href="CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)
+    throws java.io.IOException</pre>
+<div class="block">Close the current conversation, giving a reason for the closure. The close
+ call causes the implementation to attempt notify the client of the close as
+ soon as it can. This may cause the sending of unsent messages immediately
+ prior to the close notification. After the close notification has been sent
+ the implementation notifies the endpoint's onClose method. Note the websocket
+ specification defines the
+ acceptable uses of status codes and reason phrases. If the application cannot
+ determine a suitable close code to use for the closeReason, it is recommended
+ to use <a href="CloseReason.CloseCodes.html#NO_STATUS_CODE"><code>CloseReason.CloseCodes.NO_STATUS_CODE</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>closeReason</code> - the reason for the closure.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there was a connection error closing the connection</dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestURI()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestURI</h4>
+<pre class="methodSignature">java.net.URI&nbsp;getRequestURI()</pre>
+<div class="block">Return the URI under which this session was opened, including
+ the query string if there is one.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the request URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestParameterMap()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestParameterMap</h4>
+<pre class="methodSignature">java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;&nbsp;getRequestParameterMap()</pre>
+<div class="block">Return the request parameters associated with the request this session
+ was opened under.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the unmodifiable map of the request parameters.</dd>
+</dl>
+</li>
+</ul>
+<a id="getQueryString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getQueryString</h4>
+<pre class="methodSignature">java.lang.String&nbsp;getQueryString()</pre>
+<div class="block">Return the query string associated with the request this session
+ was opened under.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the query string</dd>
+</dl>
+</li>
+</ul>
+<a id="getPathParameters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPathParameters</h4>
+<pre class="methodSignature">java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;getPathParameters()</pre>
+<div class="block">Return a map of the path parameter names and values used associated with the
+ request this session was opened under.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the unmodifiable map of path parameters. The key of the map is the parameter name,
+ the values in the map are the parameter values.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUserProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserProperties</h4>
+<pre class="methodSignature">java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;getUserProperties()</pre>
+<div class="block">While the session is open, this method returns a Map that the developer may
+ use to store application specific information relating to this session
+ instance. The developer may retrieve information from this Map at any time
+ between the opening of the session and during the onClose() method. But outside
+ that time, any information stored using this Map may no longer be kept by the
+ container. Web socket applications running on distributed implementations of
+ the web container should make any application specific objects stored here
+ java.io.Serializable, or the object may not be recreated after a failover.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an editable Map of application data.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUserPrincipal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPrincipal</h4>
+<pre class="methodSignature">java.security.Principal&nbsp;getUserPrincipal()</pre>
+<div class="block">Return the authenticated user for this Session or <code>null</code> if no user is authenticated for this session.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the user principal.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOpenSessions()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getOpenSessions</h4>
+<pre class="methodSignature">java.util.Set&lt;<a href="Session.html" title="interface in javax.websocket">Session</a>&gt;&nbsp;getOpenSessions()</pre>
+<div class="block">Return a copy of the Set of all the open web socket sessions that represent
+ connections to the same endpoint to which this session represents a connection.
+ The Set includes the session this method is called on. These
+ sessions may not still be open at any point after the return of this method. For
+ example, iterating over the set at a later time may yield one or more closed sessions. Developers
+ should use session.isOpen() to check.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the set of sessions, open at the time of return.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Session.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/SessionException.html b/apidocs/1.20/javax/websocket/SessionException.html
new file mode 100644
index 00000000..c60d239f
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/SessionException.html
@@ -0,0 +1,361 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SessionException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SessionException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SessionException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Class SessionException" class="title">Class SessionException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Throwable</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Exception</li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.SessionException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">SessionException</span>
+extends java.lang.Exception</pre>
+<div class="block">A SessionException represents a general exception type reporting problems
+ occurring on a websocket session.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../serialized-form.html#javax.websocket.SessionException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable,javax.websocket.Session)">SessionException</a></span>&#8203;(java.lang.String&nbsp;message,
+                java.lang.Throwable&nbsp;cause,
+                <a href="Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of this exception with the given message,
+ the wrapped cause of the exception and the session with which
+ the problem is associated.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSession()">getSession</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the Session on which the problem occurred.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
+<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable,javax.websocket.Session)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SessionException</h4>
+<pre>public&nbsp;SessionException&#8203;(java.lang.String&nbsp;message,
+                        java.lang.Throwable&nbsp;cause,
+                        <a href="Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</pre>
+<div class="block">Creates a new instance of this exception with the given message,
+ the wrapped cause of the exception and the session with which
+ the problem is associated.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - a description of the problem</dd>
+<dd><code>cause</code> - the error that caused the problem</dd>
+<dd><code>session</code> - the session on which the problem occurred.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getSession()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSession</h4>
+<pre class="methodSignature">public&nbsp;<a href="Session.html" title="interface in javax.websocket">Session</a>&nbsp;getSession()</pre>
+<div class="block">Return the Session on which the problem occurred.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the session</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SessionException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/WebSocketContainer.html b/apidocs/1.20/javax/websocket/WebSocketContainer.html
new file mode 100644
index 00000000..6aea5d9c
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/WebSocketContainer.html
@@ -0,0 +1,647 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WebSocketContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WebSocketContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebSocketContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket</a></div>
+<h2 title="Interface WebSocketContainer" class="title">Interface WebSocketContainer</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="server/ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></code>, <code><a href="../../org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../org/glassfish/tyrus/core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></code>, <code><a href="../../org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code>, <code><a href="../../org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">WebSocketContainer</span></pre>
+<div class="block">A WebSocketContainer is an implementation provided object that provides applications
+ a view on the container running it. The WebSocketContainer container various
+ configuration parameters that control default session and buffer properties
+ of the endpoints it contains. It also allows the developer to
+ deploy websocket client endpoints by initiating a web socket handshake from 
+ the provided endpoint to a supplied URI where the peer endpoint is presumed to
+ reside. 
+
+ <p>A WebSocketContainer may be accessed by concurrent threads, so
+ implementations must ensure the integrity of its mutable attributes in such 
+ circumstances.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedEndpointClass,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied annotated endpoint to its server.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic endpoint to its server with the given 
+ configuration.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Object&nbsp;annotatedEndpointInstance,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied annotated endpoint instance to its server.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic client endpoint instance to its server 
+ with the given configuration.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultAsyncSendTimeout()">getDefaultAsyncSendTimeout</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the number of milliseconds the implementation will timeout
+ attempting to send a websocket message for all RemoteEndpoints associated
+ with this container.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultMaxBinaryMessageBufferSize()">getDefaultMaxBinaryMessageBufferSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the default maximum size of incoming binary message that this container
+ will buffer.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultMaxSessionIdleTimeout()">getDefaultMaxSessionIdleTimeout</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultMaxTextMessageBufferSize()">getDefaultMaxTextMessageBufferSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the default maximum size of incoming text message that this container
+ will buffer.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstalledExtensions()">getInstalledExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the set of Extensions installed in the container.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAsyncSendTimeout(long)">setAsyncSendTimeout</a></span>&#8203;(long&nbsp;timeoutmillis)</code></th>
+<td class="colLast">
+<div class="block">Sets the number of milliseconds the implementation will timeout
+ attempting to send a websocket message  for all RemoteEndpoints associated
+ with this container.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDefaultMaxBinaryMessageBufferSize(int)">setDefaultMaxBinaryMessageBufferSize</a></span>&#8203;(int&nbsp;max)</code></th>
+<td class="colLast">
+<div class="block">Sets the default maximum size of incoming binary message that this container
+ will buffer.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDefaultMaxSessionIdleTimeout(long)">setDefaultMaxSessionIdleTimeout</a></span>&#8203;(long&nbsp;timeout)</code></th>
+<td class="colLast">
+<div class="block">Sets the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDefaultMaxTextMessageBufferSize(int)">setDefaultMaxTextMessageBufferSize</a></span>&#8203;(int&nbsp;max)</code></th>
+<td class="colLast">
+<div class="block">Sets the maximum size of incoming text message that this container
+ will buffer.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getDefaultAsyncSendTimeout()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultAsyncSendTimeout</h4>
+<pre class="methodSignature">long&nbsp;getDefaultAsyncSendTimeout()</pre>
+<div class="block">Return the number of milliseconds the implementation will timeout
+ attempting to send a websocket message for all RemoteEndpoints associated
+ with this container. A non-positive number indicates
+ the implementation will not timeout attempting to send a websocket message
+ asynchronously. Note this default may be overridden in each RemoteEndpoint.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the timeout time in millsenconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="setAsyncSendTimeout(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAsyncSendTimeout</h4>
+<pre class="methodSignature">void&nbsp;setAsyncSendTimeout&#8203;(long&nbsp;timeoutmillis)</pre>
+<div class="block">Sets the number of milliseconds the implementation will timeout
+ attempting to send a websocket message  for all RemoteEndpoints associated
+ with this container. A non-positive number indicates
+ the implementation will not timeout attempting to send a websocket message
+ asynchronously. Note this default may be overridden in each RemoteEndpoint.</div>
+</li>
+</ul>
+<a id="connectToServer(java.lang.Object,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectToServer</h4>
+<pre class="methodSignature"><a href="Session.html" title="interface in javax.websocket">Session</a>&nbsp;connectToServer&#8203;(java.lang.Object&nbsp;annotatedEndpointInstance,
+                        java.net.URI&nbsp;path)
+                 throws <a href="DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                        java.io.IOException</pre>
+<div class="block">Connect the supplied annotated endpoint instance to its server. The supplied 
+ object must be a class decorated with the class level
+ <a href="server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a> annotation. This method 
+ blocks until the connection is established, or throws an error if either 
+ the connection could not be made or there was a problem with the supplied 
+ endpoint class. If the developer uses this method to deploy the client
+ endpoint, services like dependency injection that are supported, for 
+ example, when the implementation is part of the Java EE platform
+ may not be available. If the client endpoint uses dependency injection,
+ use <a href="#connectToServer(java.lang.Class,java.net.URI)"><code>connectToServer(java.lang.Class, java.net.URI)</code></a>
+ instead.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>annotatedEndpointInstance</code> - the annotated websocket client endpoint 
+ instance.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the annotated endpoint instance is not valid.</dd>
+<dd><code>java.io.IOException</code> - if there was a network or protocol problem that 
+ prevented the client endpoint being connected to its server.</dd>
+<dd><code>java.lang.IllegalStateException</code> - if called during the deployment phase
+ of the containing application.</dd>
+</dl>
+</li>
+</ul>
+<a id="connectToServer(java.lang.Class,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectToServer</h4>
+<pre class="methodSignature"><a href="Session.html" title="interface in javax.websocket">Session</a>&nbsp;connectToServer&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedEndpointClass,
+                        java.net.URI&nbsp;path)
+                 throws <a href="DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                        java.io.IOException</pre>
+<div class="block">Connect the supplied annotated endpoint to its server. The supplied object must be a
+ class decorated with the class level
+ <a href="server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a> annotation. This method blocks until the connection
+ is established, or throws an error if either the connection could not be made or there
+ was a problem with the supplied endpoint class.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>annotatedEndpointClass</code> - the annotated websocket client endpoint.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the class is not a valid annotated endpoint class.</dd>
+<dd><code>java.io.IOException</code> - if there was a network or protocol problem that 
+ prevented the client endpoint being connected to its server.</dd>
+<dd><code>java.lang.IllegalStateException</code> - if called during the deployment phase
+ of the containing application.</dd>
+</dl>
+</li>
+</ul>
+<a id="connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectToServer</h4>
+<pre class="methodSignature"><a href="Session.html" title="interface in javax.websocket">Session</a>&nbsp;connectToServer&#8203;(<a href="Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                        <a href="ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                        java.net.URI&nbsp;path)
+                 throws <a href="DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                        java.io.IOException</pre>
+<div class="block">Connect the supplied programmatic client endpoint instance to its server 
+ with the given configuration. This method blocks until the connection
+ is established, or throws an error if the connection could not be made. 
+ If the developer uses this method to deploy the client
+ endpoint, services like dependency injection that are supported, for 
+ example, when the implementation is part of the Java EE platform
+ may not be available. If the client endpoint uses dependency injection,
+ use <a href="#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>connectToServer(java.lang.Class, javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>
+ instead.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointInstance</code> - the programmatic client endpoint instance <a href="Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dd><code>cec</code> - the configuration used to configure the programmatic endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the configuration is not valid</dd>
+<dd><code>java.io.IOException</code> - if there was a network or protocol problem that 
+ prevented the client endpoint being connected to its server</dd>
+<dd><code>java.lang.IllegalStateException</code> - if called during the deployment phase
+ of the containing application.</dd>
+</dl>
+</li>
+</ul>
+<a id="connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectToServer</h4>
+<pre class="methodSignature"><a href="Session.html" title="interface in javax.websocket">Session</a>&nbsp;connectToServer&#8203;(java.lang.Class&lt;? extends <a href="Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                        <a href="ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                        java.net.URI&nbsp;path)
+                 throws <a href="DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                        java.io.IOException</pre>
+<div class="block">Connect the supplied programmatic endpoint to its server with the given 
+ configuration. This method blocks until the connection
+ is established, or throws an error if the connection could not be made.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - the programmatic client endpoint class <a href="Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dd><code>cec</code> - the configuration used to configure the programmatic endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the configuration is not valid</dd>
+<dd><code>java.io.IOException</code> - if there was a network or protocol problem that prevented the client endpoint being connected to its server</dd>
+<dd><code>java.lang.IllegalStateException</code> - if called during the deployment phase
+ of the containing application.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDefaultMaxSessionIdleTimeout()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultMaxSessionIdleTimeout</h4>
+<pre class="methodSignature">long&nbsp;getDefaultMaxSessionIdleTimeout()</pre>
+<div class="block">Return the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive. A value that is
+ 0 or negative indicates the sessions will never timeout due to inactivity.
+ The value may be overridden on a per session basis using
+ <a href="Session.html#setMaxIdleTimeout(long)"><code>Session.setMaxIdleTimeout(long)</code></a></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the default number of milliseconds after which an idle session in this container
+ will be closed</dd>
+</dl>
+</li>
+</ul>
+<a id="setDefaultMaxSessionIdleTimeout(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDefaultMaxSessionIdleTimeout</h4>
+<pre class="methodSignature">void&nbsp;setDefaultMaxSessionIdleTimeout&#8203;(long&nbsp;timeout)</pre>
+<div class="block">Sets the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive. A value that is
+ 0 or negative indicates the sessions will never timeout due to inactivity.
+ The value may be overridden on a per session basis using
+ <a href="Session.html#setMaxIdleTimeout(long)"><code>Session.setMaxIdleTimeout(long)</code></a></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeout</code> - the maximum time in milliseconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDefaultMaxBinaryMessageBufferSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultMaxBinaryMessageBufferSize</h4>
+<pre class="methodSignature">int&nbsp;getDefaultMaxBinaryMessageBufferSize()</pre>
+<div class="block">Returns the default maximum size of incoming binary message that this container
+ will buffer. This default may be overridden on a per session basis using
+ <a href="Session.html#setMaxBinaryMessageBufferSize(int)"><code>Session.setMaxBinaryMessageBufferSize(int)</code></a></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum size of incoming binary message in number of bytes.</dd>
+</dl>
+</li>
+</ul>
+<a id="setDefaultMaxBinaryMessageBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDefaultMaxBinaryMessageBufferSize</h4>
+<pre class="methodSignature">void&nbsp;setDefaultMaxBinaryMessageBufferSize&#8203;(int&nbsp;max)</pre>
+<div class="block">Sets the default maximum size of incoming binary message that this container
+ will buffer.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>max</code> - the maximum size of binary message in number of bytes.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDefaultMaxTextMessageBufferSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultMaxTextMessageBufferSize</h4>
+<pre class="methodSignature">int&nbsp;getDefaultMaxTextMessageBufferSize()</pre>
+<div class="block">Returns the default maximum size of incoming text message that this container
+ will buffer. This default may be overridden on a per session basis using
+ <a href="Session.html#setMaxTextMessageBufferSize(int)"><code>Session.setMaxTextMessageBufferSize(int)</code></a></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum size of incoming text message in number of bytes.</dd>
+</dl>
+</li>
+</ul>
+<a id="setDefaultMaxTextMessageBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDefaultMaxTextMessageBufferSize</h4>
+<pre class="methodSignature">void&nbsp;setDefaultMaxTextMessageBufferSize&#8203;(int&nbsp;max)</pre>
+<div class="block">Sets the maximum size of incoming text message that this container
+ will buffer.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>max</code> - the maximum size of text message in number of bytes.</dd>
+</dl>
+</li>
+</ul>
+<a id="getInstalledExtensions()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getInstalledExtensions</h4>
+<pre class="methodSignature">java.util.Set&lt;<a href="Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;getInstalledExtensions()</pre>
+<div class="block">Return the set of Extensions installed in the container.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the set of extensions.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebSocketContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/ClientEndpoint.html b/apidocs/1.20/javax/websocket/class-use/ClientEndpoint.html
new file mode 100644
index 00000000..a8c1285c
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/ClientEndpoint.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.ClientEndpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.ClientEndpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEndpoint.html" title="annotation in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.ClientEndpoint" class="title">Uses of Class<br>javax.websocket.ClientEndpoint</h2>
+</div>
+<div class="classUseContainer">No usage of javax.websocket.ClientEndpoint</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEndpoint.html" title="annotation in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/ClientEndpointConfig.Builder.html b/apidocs/1.20/javax/websocket/class-use/ClientEndpointConfig.Builder.html
new file mode 100644
index 00000000..cfc74d3b
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/ClientEndpointConfig.Builder.html
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.ClientEndpointConfig.Builder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.ClientEndpointConfig.Builder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.ClientEndpointConfig.Builder" class="title">Uses of Class<br>javax.websocket.ClientEndpointConfig.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return <a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.Builder.html#configurator(javax.websocket.ClientEndpointConfig.Configurator)">configurator</a></span>&#8203;(<a href="../ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a>&nbsp;clientEndpointConfigurator)</code></th>
+<td class="colLast">
+<div class="block">Sets the configurator object for the configuration this builder will build.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.Builder.html#create()">create</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new builder object with no subprotocols, extensions, encoders,
+ decoders and a <code>null</code> configurator.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.Builder.html#decoders(java.util.List)">decoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoders)</code></th>
+<td class="colLast">
+<div class="block">Assign the list of decoder implementation classes the client will use.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.Builder.html#encoders(java.util.List)">encoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;&nbsp;encoders)</code></th>
+<td class="colLast">
+<div class="block">Assign the list of encoder implementation classes the client will use.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.Builder.html#extensions(java.util.List)">extensions</a></span>&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Set the extensions for the configuration this builder will build.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.Builder.html#preferredSubprotocols(java.util.List)">preferredSubprotocols</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;preferredSubprotocols)</code></th>
+<td class="colLast">
+<div class="block">Set the preferred sub protocols for the configuration this builder will build.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/ClientEndpointConfig.Configurator.html b/apidocs/1.20/javax/websocket/class-use/ClientEndpointConfig.Configurator.html
new file mode 100644
index 00000000..e2d731e9
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/ClientEndpointConfig.Configurator.html
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.ClientEndpointConfig.Configurator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.ClientEndpointConfig.Configurator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEndpointConfig.Configurator.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.ClientEndpointConfig.Configurator" class="title">Uses of Class<br>javax.websocket.ClientEndpointConfig.Configurator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return <a href="../ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.html#getConfigurator()">getConfigurator</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the custom configurator for this configuration.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return types with arguments of type <a href="../ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="../ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ClientEndpoint.html#configurator()">configurator</a></span>()</code></th>
+<td class="colLast">
+<div class="block">An optional custom configurator class that the developer would like to use
+ to provide custom configuration of new instances of this endpoint.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.Builder.html#configurator(javax.websocket.ClientEndpointConfig.Configurator)">configurator</a></span>&#8203;(<a href="../ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a>&nbsp;clientEndpointConfigurator)</code></th>
+<td class="colLast">
+<div class="block">Sets the configurator object for the configuration this builder will build.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEndpointConfig.Configurator.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/ClientEndpointConfig.html b/apidocs/1.20/javax/websocket/class-use/ClientEndpointConfig.html
new file mode 100644
index 00000000..aae0c30a
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/ClientEndpointConfig.html
@@ -0,0 +1,406 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.ClientEndpointConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.ClientEndpointConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEndpointConfig.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.ClientEndpointConfig" class="title">Uses of Interface<br>javax.websocket.ClientEndpointConfig</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.client">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builds a configuration object using the attributes set
+ on this builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketContainer.</span><code><span class="memberNameLink"><a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic endpoint to its server with the given 
+ configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketContainer.</span><code><span class="memberNameLink"><a href="../WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic client endpoint instance to its server 
+ with the given configuration.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a> in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a> with parameters of type <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, javax.websocket.ClientEndpointConfig,
+ java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.container.grizzly.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a> in <a href="../../../org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a> with parameters of type <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">GrizzlyClientContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">openClientSocket</a></span>&#8203;(<a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+                <a href="../../../org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a>&nbsp;clientEngine)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a> in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> with parameters of type <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a> in <a href="../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a> with parameters of type <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/spi/ClientContainer.html#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">openClientSocket</a></span>&#8203;(<a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+                <a href="../../../org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a>&nbsp;clientEngine)</code></th>
+<td class="colLast">
+<div class="block">Open client socket - connect to endpoint specified with <code>url</code> parameter.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEndpointConfig.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/CloseReason.CloseCode.html b/apidocs/1.20/javax/websocket/class-use/CloseReason.CloseCode.html
new file mode 100644
index 00000000..e8b54cfc
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/CloseReason.CloseCode.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.CloseReason.CloseCode (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.CloseReason.CloseCode (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.CloseReason.CloseCode" class="title">Uses of Interface<br>javax.websocket.CloseReason.CloseCode</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../package-summary.html">javax.websocket</a> that implement <a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></span></code></th>
+<td class="colLast">
+<div class="block">An Enumeration of status codes for a web socket close that
+ are defined in the specification.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return <a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CloseReason.CloseCodes.</span><code><span class="memberNameLink"><a href="../CloseReason.CloseCodes.html#getCloseCode(int)">getCloseCode</a></span>&#8203;(int&nbsp;code)</code></th>
+<td class="colLast">
+<div class="block">Creates a CloseCode from the given int code number.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CloseReason.</span><code><span class="memberNameLink"><a href="../CloseReason.html#getCloseCode()">getCloseCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The Close code associated with this CloseReason.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../CloseReason.html#%3Cinit%3E(javax.websocket.CloseReason.CloseCode,java.lang.String)">CloseReason</a></span>&#8203;(<a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a>&nbsp;closeCode,
+           java.lang.String&nbsp;reasonPhrase)</code></th>
+<td class="colLast">
+<div class="block">Creates a reason for closing a web socket connection with the given
+ code and reason phrase.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CloseReasons.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/CloseReasons.html#create(javax.websocket.CloseReason.CloseCode,java.lang.String)">create</a></span>&#8203;(<a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a>&nbsp;closeCode,
+      java.lang.String&nbsp;reasonPhrase)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/CloseReason.CloseCodes.html b/apidocs/1.20/javax/websocket/class-use/CloseReason.CloseCodes.html
new file mode 100644
index 00000000..fe61be77
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/CloseReason.CloseCodes.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.CloseReason.CloseCodes (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.CloseReason.CloseCodes (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CloseReason.CloseCodes.html" title="enum in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.CloseReason.CloseCodes" class="title">Uses of Class<br>javax.websocket.CloseReason.CloseCodes</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return <a href="../CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CloseReason.CloseCodes.</span><code><span class="memberNameLink"><a href="../CloseReason.CloseCodes.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CloseReason.CloseCodes.</span><code><span class="memberNameLink"><a href="../CloseReason.CloseCodes.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CloseReason.CloseCodes.html" title="enum in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/CloseReason.html b/apidocs/1.20/javax/websocket/class-use/CloseReason.html
new file mode 100644
index 00000000..f98a9c2c
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/CloseReason.html
@@ -0,0 +1,460 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.CloseReason (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.CloseReason (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CloseReason.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.CloseReason" class="title">Uses of Class<br>javax.websocket.CloseReason</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Session.</span><code><span class="memberNameLink"><a href="../Session.html#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Close the current conversation, giving a reason for the closure.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Endpoint.</span><code><span class="memberNameLink"><a href="../Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)">onClose</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+       <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">This method is called immediately prior to the session with the remote 
+ peer being closed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a> in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a> with parameters of type <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.ReconnectHandler.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html#onDisconnect(javax.websocket.CloseReason)">onDisconnect</a></span>&#8203;(<a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Called after <a href="../OnClose.html" title="annotation in javax.websocket"><code>OnClose</code></a> annotated method (or <a href="../Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)"><code>Endpoint.onClose(javax.websocket.Session, javax.websocket.CloseReason)</code></a> is invoked.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CloseReasons.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/CloseReasons.html#create(javax.websocket.CloseReason.CloseCode,java.lang.String)">create</a></span>&#8203;(<a href="../CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a>&nbsp;closeCode,
+      java.lang.String&nbsp;reasonPhrase)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CloseReasons.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/CloseReasons.html#getCloseReason()">getCloseReason</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get close reason.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolException.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/ProtocolException.html#getCloseReason()">getCloseReason</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Utf8DecodingException.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/Utf8DecodingException.html#getCloseReason()">getCloseReason</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketException.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/WebSocketException.html#getCloseReason()">getCloseReason</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get close reason.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusRemoteEndpoint.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusRemoteEndpoint.html#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;cr)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusWebSocket.html#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Closes this <a href="../../../org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a> using the <a href="../CloseReason.html" title="class in javax.websocket"><code>CloseReason</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)">onClose</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+       <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusEndpointWrapper.SessionListener.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html#onClose(org.glassfish.tyrus.core.TyrusSession,javax.websocket.CloseReason)">onClose</a></span>&#8203;(<a href="../../../org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a>&nbsp;session,
+       <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Invoked after <a href="../OnClose.html" title="annotation in javax.websocket"><code>OnClose</code></a> annotated method
+ or <a href="../Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)"><code>Endpoint.onClose(javax.websocket.Session, javax.websocket.CloseReason)</code></a> execution.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a> in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> with parameters of type <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract java.util.concurrent.Future&lt;java.lang.Void&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClusterContext.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/ClusterContext.html#close(java.lang.String,javax.websocket.CloseReason)">close</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+     <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Close remote session with custom <a href="../CloseReason.html" title="class in javax.websocket"><code>CloseReason</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Close the current conversation, giving a reason for the closure.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SessionEventListener.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/SessionEventListener.html#onClose(javax.websocket.CloseReason)">onClose</a></span>&#8203;(<a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Invoked on session close event.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.frame">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a> in <a href="../../../org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a> that return <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CloseFrame.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/frame/CloseFrame.html#getCloseReason()">getCloseReason</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get close reason.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../../org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a> with parameters of type <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/frame/CloseFrame.html#%3Cinit%3E(javax.websocket.CloseReason)">CloseFrame</a></span>&#8203;(<a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a> in <a href="../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a> with parameters of type <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/spi/Connection.html#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;reason)</code></th>
+<td class="colLast">
+<div class="block">Notifies tyrus that underlying transport is closing the connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Connection.CloseListener.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/spi/Connection.CloseListener.html#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;reason)</code></th>
+<td class="colLast">
+<div class="block">Tyrus notifies that logical connection is closed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CloseReason.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/ContainerProvider.html b/apidocs/1.20/javax/websocket/class-use/ContainerProvider.html
new file mode 100644
index 00000000..9ce7a5af
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/ContainerProvider.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.ContainerProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.ContainerProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerProvider.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.ContainerProvider" class="title">Uses of Class<br>javax.websocket.ContainerProvider</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ContainerProvider.html" title="class in javax.websocket">ContainerProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.client">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.container.grizzly.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ContainerProvider.html" title="class in javax.websocket">ContainerProvider</a> in <a href="../../../org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../ContainerProvider.html" title="class in javax.websocket">ContainerProvider</a> in <a href="../../../org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyContainerProvider</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerProvider.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/DecodeException.html b/apidocs/1.20/javax/websocket/class-use/DecodeException.html
new file mode 100644
index 00000000..a73a36e2
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/DecodeException.html
@@ -0,0 +1,309 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.DecodeException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.DecodeException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DecodeException.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.DecodeException" class="title">Uses of Class<br>javax.websocket.DecodeException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../DecodeException.html" title="class in javax.websocket">DecodeException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DecodeException.html" title="class in javax.websocket">DecodeException</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that throw <a href="../DecodeException.html" title="class in javax.websocket">DecodeException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Decoder.Binary.</span><code><span class="memberNameLink"><a href="../Decoder.Binary.html#decode(java.nio.ByteBuffer)">decode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bytes)</code></th>
+<td class="colLast">
+<div class="block">Decode the given bytes into an object of type T.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Decoder.BinaryStream.</span><code><span class="memberNameLink"><a href="../Decoder.BinaryStream.html#decode(java.io.InputStream)">decode</a></span>&#8203;(java.io.InputStream&nbsp;is)</code></th>
+<td class="colLast">
+<div class="block">Decode the given bytes read from the input stream into an object of type T.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Decoder.Text.html" title="type parameter in Decoder.Text">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Decoder.Text.</span><code><span class="memberNameLink"><a href="../Decoder.Text.html#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Decode the given String into an object of type T.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Decoder.TextStream.</span><code><span class="memberNameLink"><a href="../Decoder.TextStream.html#decode(java.io.Reader)">decode</a></span>&#8203;(java.io.Reader&nbsp;reader)</code></th>
+<td class="colLast">
+<div class="block">Reads the websocket message from the implementation provided
+ Reader and decodes it into an instance of the supplied object type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.coder">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DecodeException.html" title="class in javax.websocket">DecodeException</a> in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a> that throw <a href="../DecodeException.html" title="class in javax.websocket">DecodeException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.io.InputStream</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InputStreamDecoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/InputStreamDecoder.html#decode(java.nio.ByteBuffer)">decode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bytes)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">NoOpByteArrayCoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html#decode(java.nio.ByteBuffer)">decode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bytes)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.nio.ByteBuffer</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">NoOpByteBufferCoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html#decode(java.nio.ByteBuffer)">decode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bytes)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">NoOpTextCoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpTextCoder.html#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PrimitiveDecoders.BooleanDecoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.Byte</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PrimitiveDecoders.ByteDecoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Character</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PrimitiveDecoders.CharacterDecoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.Double</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PrimitiveDecoders.DoubleDecoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Float</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PrimitiveDecoders.FloatDecoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.Integer</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PrimitiveDecoders.IntegerDecoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Long</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PrimitiveDecoders.LongDecoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.Short</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PrimitiveDecoders.ShortDecoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.io.Reader</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReaderDecoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/ReaderDecoder.html#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DecodeException.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Decoder.Binary.html b/apidocs/1.20/javax/websocket/class-use/Decoder.Binary.html
new file mode 100644
index 00000000..51250b6b
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Decoder.Binary.html
@@ -0,0 +1,212 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Decoder.Binary (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.Decoder.Binary (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Decoder.Binary.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.Decoder.Binary" class="title">Uses of Interface<br>javax.websocket.Decoder.Binary</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.coder">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a> in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a> that implement <a href="../Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">InputStreamDecoder</a></span></code></th>
+<td class="colLast">
+<div class="block">Built in <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>InputStream</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for byte array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for <code>ByteBuffer</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Decoder.Binary.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Decoder.BinaryStream.html b/apidocs/1.20/javax/websocket/class-use/Decoder.BinaryStream.html
new file mode 100644
index 00000000..8c43e01f
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Decoder.BinaryStream.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Decoder.BinaryStream (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.Decoder.BinaryStream (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Decoder.BinaryStream.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.Decoder.BinaryStream" class="title">Uses of Interface<br>javax.websocket.Decoder.BinaryStream</h2>
+</div>
+<div class="classUseContainer">No usage of javax.websocket.Decoder.BinaryStream</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Decoder.BinaryStream.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Decoder.Text.html b/apidocs/1.20/javax/websocket/class-use/Decoder.Text.html
new file mode 100644
index 00000000..cc4af992
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Decoder.Text.html
@@ -0,0 +1,265 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Decoder.Text (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.Decoder.Text (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Decoder.Text.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.Decoder.Text" class="title">Uses of Interface<br>javax.websocket.Decoder.Text</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.coder">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a> in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a> that implement <a href="../Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Collection of decoders for all primitive types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">ReaderDecoder</a></span></code></th>
+<td class="colLast">
+<div class="block">Built in <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>Reader</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Fields in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a> with type parameters of type <a href="../Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static java.util.Map&lt;java.lang.Class&lt;?&gt;,&#8203;<a href="../Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PrimitiveDecoders.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.html#ALL_INSTANCES">ALL_INSTANCES</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Decoder.Text.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Decoder.TextStream.html b/apidocs/1.20/javax/websocket/class-use/Decoder.TextStream.html
new file mode 100644
index 00000000..37279209
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Decoder.TextStream.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Decoder.TextStream (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.Decoder.TextStream (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Decoder.TextStream.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.Decoder.TextStream" class="title">Uses of Interface<br>javax.websocket.Decoder.TextStream</h2>
+</div>
+<div class="classUseContainer">No usage of javax.websocket.Decoder.TextStream</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Decoder.TextStream.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Decoder.html b/apidocs/1.20/javax/websocket/class-use/Decoder.html
new file mode 100644
index 00000000..3757612f
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Decoder.html
@@ -0,0 +1,477 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Decoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.Decoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Decoder.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.Decoder" class="title">Uses of Interface<br>javax.websocket.Decoder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a> in <a href="../package-summary.html">javax.websocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object (of type T) is decoded from a web socket message in
+ the form of a byte buffer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object is decoded from a web socket message in
+ the form of a binary stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object is decoded from a web socket message in
+ the form of a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object of type T is decoded from a web socket message in
+ the form of a character stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return types with arguments of type <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ClientEndpoint.html#decoders()">decoders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The array of Java classes that are to act as Decoders for messages coming into
+ the client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;java.lang.Class&lt;? extends <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">EndpointConfig.</span><code><span class="memberNameLink"><a href="../EndpointConfig.html#getDecoders()">getDecoders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the Decoder implementation classes configured.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">javax.websocket</a> with type arguments of type <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.Builder.html#decoders(java.util.List)">decoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoders)</code></th>
+<td class="colLast">
+<div class="block">Assign the list of decoder implementation classes the client will use.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a> in <a href="../server/package-summary.html">javax.websocket.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../server/package-summary.html">javax.websocket.server</a> that return types with arguments of type <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../server/ServerEndpoint.html#decoders()">decoders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The ordered array of decoder classes this endpoint will use.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../server/package-summary.html">javax.websocket.server</a> with type arguments of type <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../server/ServerEndpointConfig.Builder.html#decoders(java.util.List)">decoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoders)</code></th>
+<td class="colLast">
+<div class="block">Sets the decoder implementation classes to use in the configuration.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with type arguments of type <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html#decoders(java.util.List)">decoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoders)</code></th>
+<td class="colLast">
+<div class="block">Sets the decoder implementation classes to use in the configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageHandlerManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/MessageHandlerManager.html#fromDecoderClasses(java.util.List)">fromDecoderClasses</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoderClasses)</code></th>
+<td class="colLast">
+<div class="block">Construct manager.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.coder">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a> in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a> that implement <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Wrapper of coders storing the coder coder class (and optionally coder instance), return type of the encode / decode
+ method and coder class.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">InputStreamDecoder</a></span></code></th>
+<td class="colLast">
+<div class="block">Built in <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>InputStream</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for byte array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for <code>ByteBuffer</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Collection of decoders for all primitive types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">ReaderDecoder</a></span></code></th>
+<td class="colLast">
+<div class="block">Built in <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>Reader</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Fields in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a> with type parameters of type <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static java.util.List&lt;java.lang.Class&lt;? extends <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PrimitiveDecoders.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/PrimitiveDecoders.html#ALL">ALL</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Decoder.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/DeploymentException.html b/apidocs/1.20/javax/websocket/class-use/DeploymentException.html
new file mode 100644
index 00000000..40b9ec25
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/DeploymentException.html
@@ -0,0 +1,654 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.DeploymentException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.DeploymentException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DeploymentException.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.DeploymentException" class="title">Uses of Class<br>javax.websocket.DeploymentException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.client">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that throw <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketContainer.</span><code><span class="memberNameLink"><a href="../WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedEndpointClass,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied annotated endpoint to its server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketContainer.</span><code><span class="memberNameLink"><a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic endpoint to its server with the given 
+ configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketContainer.</span><code><span class="memberNameLink"><a href="../WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Object&nbsp;annotatedEndpointInstance,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied annotated endpoint instance to its server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketContainer.</span><code><span class="memberNameLink"><a href="../WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic client endpoint instance to its server 
+ with the given configuration.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a> in <a href="../server/package-summary.html">javax.websocket.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../server/package-summary.html">javax.websocket.server</a> that throw <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerContainer.</span><code><span class="memberNameLink"><a href="../server/ServerContainer.html#addEndpoint(java.lang.Class)">addEndpoint</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass)</code></th>
+<td class="colLast">
+<div class="block">Deploys the given annotated endpoint into this ServerContainer during the
+ initialization phase of deploying the application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerContainer.</span><code><span class="memberNameLink"><a href="../server/ServerContainer.html#addEndpoint(javax.websocket.server.ServerEndpointConfig)">addEndpoint</a></span>&#8203;(<a href="../server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverConfig)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a> in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a> that throw <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(java.lang.Class,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedEndpointClass,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, javax.websocket.ClientEndpointConfig,
+ java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(java.lang.Object,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Object&nbsp;obj,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)"><code>WebSocketContainer.connectToServer(Object, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&nbsp;annotatedEndpointClass,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Object&nbsp;obj,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.container.grizzly.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a> in <a href="../../../org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a> that throw <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">GrizzlyClientSocket.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html#connect()">connect</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Performs connect to server endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">GrizzlyClientContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">openClientSocket</a></span>&#8203;(<a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+                <a href="../../../org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a>&nbsp;clientEngine)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ErrorCollector.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/ErrorCollector.html#composeComprehensiveException()">composeComprehensiveException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> with message concatenated from collected exceptions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that throw <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusWebSocketEngine.html#register(java.lang.Class,java.lang.String)">register</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass,
+        java.lang.String&nbsp;contextPath)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusWebSocketEngine.html#register(javax.websocket.server.ServerEndpointConfig,java.lang.String)">register</a></span>&#8203;(<a href="../server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverConfig,
+        java.lang.String&nbsp;contextPath)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that throw <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#%3Cinit%3E(java.lang.Class,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../../../org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../../../org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for class that extends <a href="../Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#%3Cinit%3E(javax.websocket.Endpoint,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpoint,
+                    <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../../../org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../../../org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for <a href="../Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> instance or <a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a> in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> that throw <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#addEndpoint(java.lang.Class)">addEndpoint</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#addEndpoint(javax.websocket.server.ServerEndpointConfig)">addEndpoint</a></span>&#8203;(<a href="../server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverEndpointConfig)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(java.lang.Class,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedEndpointClass,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(java.lang.Object,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Object&nbsp;obj,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)"><code>WebSocketContainer.connectToServer(Object, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&nbsp;annotatedEndpointClass,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Object&nbsp;annotatedEndpointInstance,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#register(java.lang.Class)">register</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#register(javax.websocket.server.ServerEndpointConfig)">register</a></span>&#8203;(<a href="../server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverEndpointConfig)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Server.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/Server.html#start()">start</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Start the server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#start(java.lang.String,int)">start</a></span>&#8203;(java.lang.String&nbsp;rootPath,
+     int&nbsp;port)</code></th>
+<td class="colLast">
+<div class="block">Start the container.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a> in <a href="../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a> that throw <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/spi/ClientContainer.html#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">openClientSocket</a></span>&#8203;(<a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+                <a href="../../../org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a>&nbsp;clientEngine)</code></th>
+<td class="colLast">
+<div class="block">Open client socket - connect to endpoint specified with <code>url</code> parameter.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketEngine.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/spi/WebSocketEngine.html#register(java.lang.Class,java.lang.String)">register</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass,
+        java.lang.String&nbsp;contextPath)</code></th>
+<td class="colLast">
+<div class="block">Register endpoint class.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketEngine.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/spi/WebSocketEngine.html#register(javax.websocket.server.ServerEndpointConfig,java.lang.String)">register</a></span>&#8203;(<a href="../server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverConfig,
+        java.lang.String&nbsp;contextPath)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="../server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/spi/ServerContainer.html#start(java.lang.String,int)">start</a></span>&#8203;(java.lang.String&nbsp;rootPath,
+     int&nbsp;port)</code></th>
+<td class="colLast">
+<div class="block">Start the server.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DeploymentException.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/EncodeException.html b/apidocs/1.20/javax/websocket/class-use/EncodeException.html
new file mode 100644
index 00000000..2d031c6c
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/EncodeException.html
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.EncodeException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.EncodeException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EncodeException.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.EncodeException" class="title">Uses of Class<br>javax.websocket.EncodeException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../EncodeException.html" title="class in javax.websocket">EncodeException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EncodeException.html" title="class in javax.websocket">EncodeException</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that throw <a href="../EncodeException.html" title="class in javax.websocket">EncodeException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.nio.ByteBuffer</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Encoder.Binary.</span><code><span class="memberNameLink"><a href="../Encoder.Binary.html#encode(T)">encode</a></span>&#8203;(<a href="../Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Encode the given object into a byte array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Encoder.BinaryStream.</span><code><span class="memberNameLink"><a href="../Encoder.BinaryStream.html#encode(T,java.io.OutputStream)">encode</a></span>&#8203;(<a href="../Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&nbsp;object,
+      java.io.OutputStream&nbsp;os)</code></th>
+<td class="colLast">
+<div class="block">Encode the given object into a binary stream written to the
+ implementation provided OutputStream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Encoder.Text.</span><code><span class="memberNameLink"><a href="../Encoder.Text.html#encode(T)">encode</a></span>&#8203;(<a href="../Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Encode the given object into a String.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Encoder.TextStream.</span><code><span class="memberNameLink"><a href="../Encoder.TextStream.html#encode(T,java.io.Writer)">encode</a></span>&#8203;(<a href="../Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&nbsp;object,
+      java.io.Writer&nbsp;writer)</code></th>
+<td class="colLast">
+<div class="block">Encode the given object to a character stream writing it
+ to the supplied Writer.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteEndpoint.Basic.</span><code><span class="memberNameLink"><a href="../RemoteEndpoint.Basic.html#sendObject(java.lang.Object)">sendObject</a></span>&#8203;(java.lang.Object&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Sends a custom developer object, blocking until it has been transmitted.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EncodeException.html" title="class in javax.websocket">EncodeException</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that throw <a href="../EncodeException.html" title="class in javax.websocket">EncodeException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Object</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusEndpointWrapper.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#doEncode(javax.websocket.Session,java.lang.Object)">doEncode</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+        java.lang.Object&nbsp;message)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.coder">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EncodeException.html" title="class in javax.websocket">EncodeException</a> in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a> that throw <a href="../EncodeException.html" title="class in javax.websocket">EncodeException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.nio.ByteBuffer</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">NoOpByteArrayCoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html#encode(byte%5B%5D)">encode</a></span>&#8203;(byte[]&nbsp;object)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.nio.ByteBuffer</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">NoOpByteBufferCoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html#encode(java.nio.ByteBuffer)">encode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;object)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">NoOpTextCoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpTextCoder.html#encode(java.lang.String)">encode</a></span>&#8203;(java.lang.String&nbsp;object)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ToStringEncoder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/ToStringEncoder.html#encode(java.lang.Object)">encode</a></span>&#8203;(java.lang.Object&nbsp;object)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EncodeException.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Encoder.Binary.html b/apidocs/1.20/javax/websocket/class-use/Encoder.Binary.html
new file mode 100644
index 00000000..351e0750
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Encoder.Binary.html
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Encoder.Binary (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.Encoder.Binary (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoder.Binary.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.Encoder.Binary" class="title">Uses of Interface<br>javax.websocket.Encoder.Binary</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.coder">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a> in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a> that implement <a href="../Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for byte array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for <code>ByteBuffer</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoder.Binary.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Encoder.BinaryStream.html b/apidocs/1.20/javax/websocket/class-use/Encoder.BinaryStream.html
new file mode 100644
index 00000000..33a0356a
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Encoder.BinaryStream.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Encoder.BinaryStream (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.Encoder.BinaryStream (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoder.BinaryStream.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.Encoder.BinaryStream" class="title">Uses of Interface<br>javax.websocket.Encoder.BinaryStream</h2>
+</div>
+<div class="classUseContainer">No usage of javax.websocket.Encoder.BinaryStream</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoder.BinaryStream.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Encoder.Text.html b/apidocs/1.20/javax/websocket/class-use/Encoder.Text.html
new file mode 100644
index 00000000..a87b5015
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Encoder.Text.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Encoder.Text (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.Encoder.Text (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoder.Text.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.Encoder.Text" class="title">Uses of Interface<br>javax.websocket.Encoder.Text</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.coder">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a> in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a> that implement <a href="../Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder">ToStringEncoder</a></span></code></th>
+<td class="colLast">
+<div class="block">Fall-back encoder - encoders any object to string using <code>Object.toString()</code> method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoder.Text.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Encoder.TextStream.html b/apidocs/1.20/javax/websocket/class-use/Encoder.TextStream.html
new file mode 100644
index 00000000..31fbf1a4
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Encoder.TextStream.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Encoder.TextStream (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.Encoder.TextStream (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoder.TextStream.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.Encoder.TextStream" class="title">Uses of Interface<br>javax.websocket.Encoder.TextStream</h2>
+</div>
+<div class="classUseContainer">No usage of javax.websocket.Encoder.TextStream</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoder.TextStream.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Encoder.html b/apidocs/1.20/javax/websocket/class-use/Encoder.html
new file mode 100644
index 00000000..40822c22
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Encoder.html
@@ -0,0 +1,400 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Encoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.Encoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoder.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.Encoder" class="title">Uses of Interface<br>javax.websocket.Encoder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a> in <a href="../package-summary.html">javax.websocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a binary message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface may be implemented by encoding algorithms
+ that want to write the encoded object to a binary stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a text message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This interface may be implemented by encoding algorithms
+ that want to write the encoded object to a character stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return types with arguments of type <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ClientEndpoint.html#encoders()">encoders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The array of Java classes that are to act as Encoders for messages sent by the client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;java.lang.Class&lt;? extends <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">EndpointConfig.</span><code><span class="memberNameLink"><a href="../EndpointConfig.html#getEncoders()">getEncoders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the Encoder implementation classes configured.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">javax.websocket</a> with type arguments of type <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.Builder.html#encoders(java.util.List)">encoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;&nbsp;encoders)</code></th>
+<td class="colLast">
+<div class="block">Assign the list of encoder implementation classes the client will use.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a> in <a href="../server/package-summary.html">javax.websocket.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../server/package-summary.html">javax.websocket.server</a> that return types with arguments of type <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../server/ServerEndpoint.html#encoders()">encoders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The ordered array of encoder classes this endpoint will use.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../server/package-summary.html">javax.websocket.server</a> with type arguments of type <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../server/ServerEndpointConfig.Builder.html#encoders(java.util.List)">encoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;&nbsp;encoders)</code></th>
+<td class="colLast">
+<div class="block">Sets the list of encoder implementation classes for this builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with type arguments of type <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html#encoders(java.util.List)">encoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;&nbsp;encoders)</code></th>
+<td class="colLast">
+<div class="block">Sets the list of encoder implementation classes for this builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.coder">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a> in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a> that implement <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Wrapper of coders storing the coder coder class (and optionally coder instance), return type of the encode / decode
+ method and coder class.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for byte array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for <code>ByteBuffer</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder">ToStringEncoder</a></span></code></th>
+<td class="colLast">
+<div class="block">Fall-back encoder - encoders any object to string using <code>Object.toString()</code> method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoder.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Endpoint.html b/apidocs/1.20/javax/websocket/class-use/Endpoint.html
new file mode 100644
index 00000000..8f3618b3
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Endpoint.html
@@ -0,0 +1,473 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.Endpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.Endpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Endpoint.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.Endpoint" class="title">Uses of Class<br>javax.websocket.Endpoint</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketContainer.</span><code><span class="memberNameLink"><a href="../WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic client endpoint instance to its server 
+ with the given configuration.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">javax.websocket</a> with type arguments of type <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketContainer.</span><code><span class="memberNameLink"><a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic endpoint to its server with the given 
+ configuration.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a> in <a href="../server/package-summary.html">javax.websocket.server</a></h3>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../server/package-summary.html">javax.websocket.server</a> with type arguments of type <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerApplicationConfig.</span><code><span class="memberNameLink"><a href="../server/ServerApplicationConfig.html#getEndpointConfigs(java.util.Set)">getEndpointConfigs</a></span>&#8203;(java.util.Set&lt;java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&gt;&nbsp;endpointClasses)</code></th>
+<td class="colLast">
+<div class="block">Return a set of ServerEndpointConfig instances that the server container
+ will use to deploy the programmatic endpoints.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a> in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a> with parameters of type <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a> with type arguments of type <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, javax.websocket.ClientEndpointConfig,
+ java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> descendant which represents deployed annotated endpoint.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#%3Cinit%3E(javax.websocket.Endpoint,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpoint,
+                    <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../../../org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../../../org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for <a href="../Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> instance or <a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructor parameters in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with type arguments of type <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#%3Cinit%3E(java.lang.Class,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../../../org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../../../org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for class that extends <a href="../Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a> in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> with parameters of type <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> with type arguments of type <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerConfiguration.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerConfiguration.html#getEndpointConfigs(java.util.Set)">getEndpointConfigs</a></span>&#8203;(java.util.Set&lt;java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&gt;&nbsp;scanned)</code></th>
+<td class="colLast">
+<div class="block">Gets all the <a href="../server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> classes which should be deployed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Endpoint.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/EndpointConfig.html b/apidocs/1.20/javax/websocket/class-use/EndpointConfig.html
new file mode 100644
index 00000000..81f421b1
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/EndpointConfig.html
@@ -0,0 +1,418 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.EndpointConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.EndpointConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EndpointConfig.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.EndpointConfig" class="title">Uses of Interface<br>javax.websocket.EndpointConfig</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a> in <a href="../package-summary.html">javax.websocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></span></code></th>
+<td class="colLast">
+<div class="block">The ClientEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to client endpoints.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Decoder.</span><code><span class="memberNameLink"><a href="../Decoder.html#init(javax.websocket.EndpointConfig)">init</a></span>&#8203;(<a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">This method is called with the endpoint configuration object of the
+ endpoint this decoder is intended for when
+ it is about to be brought into service.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Encoder.</span><code><span class="memberNameLink"><a href="../Encoder.html#init(javax.websocket.EndpointConfig)">init</a></span>&#8203;(<a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">This method is called with the endpoint configuration object of the
+ endpoint this encoder is intended for when
+ it is about to be brought into service.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Endpoint.</span><code><span class="memberNameLink"><a href="../Endpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)">onOpen</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+      <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Developers must implement this method to be notified when a new conversation has
+ just begun.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a> in <a href="../server/package-summary.html">javax.websocket.server</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a> in <a href="../server/package-summary.html">javax.websocket.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></span></code></th>
+<td class="colLast">
+<div class="block">The ServerEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to server endpoints.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a></span></code></th>
+<td class="colLast">
+<div class="block">Configuration <a href="../server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> enhanced
+ to offer tyrus specific attributes like maxSessions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html#getEndpointConfig()">getEndpointConfig</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusEndpointWrapper.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#getEndpointConfig()">getEndpointConfig</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Endpoint configuration.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ComponentProviderService.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html#getCoderInstance(java.lang.Class,javax.websocket.Session,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ErrorCollector)">getCoderInstance</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;c,
+                <a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+                <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;endpointConfig,
+                <a href="../../../org/glassfish/tyrus/core/ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</code></th>
+<td class="colLast">
+<div class="block">Provide an instance of <a href="../Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> or <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> descendant which is
+ coupled to <a href="../Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)">onOpen</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+      <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#%3Cinit%3E(java.lang.Class,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../../../org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../../../org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for class that extends <a href="../Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#%3Cinit%3E(javax.websocket.Endpoint,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpoint,
+                    <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../../../org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../../../org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for <a href="../Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> instance or <a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.coder">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a> in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a> with parameters of type <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CoderAdapter.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/coder/CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></span>&#8203;(<a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">This method does nothing.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EndpointConfig.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Extension.Parameter.html b/apidocs/1.20/javax/websocket/class-use/Extension.Parameter.html
new file mode 100644
index 00000000..68ceff5e
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Extension.Parameter.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Extension.Parameter (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.Extension.Parameter (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Extension.Parameter.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.Extension.Parameter" class="title">Uses of Interface<br>javax.websocket.Extension.Parameter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.extension">org.glassfish.tyrus.core.extension</a></th>
+<td class="colLast">
+<div class="block">WebSocket Extension support.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return types with arguments of type <a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Extension.</span><code><span class="memberNameLink"><a href="../Extension.html#getParameters()">getParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The extension parameters for this extension in the order
+ they appear in the http headers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that implement <a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core">TyrusExtension.TyrusParameter</a></span></code></th>
+<td class="colLast">
+<div class="block">WebSocket <a href="../Extension.Parameter.html" title="interface in javax.websocket"><code>Extension.Parameter</code></a> implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that return types with arguments of type <a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusExtension.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusExtension.html#getParameters()">getParameters</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructor parameters in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with type arguments of type <a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusExtension.html#%3Cinit%3E(java.lang.String,java.util.List)">TyrusExtension</a></span>&#8203;(java.lang.String&nbsp;name,
+              java.util.List&lt;<a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;parameters)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../Extension.html" title="interface in javax.websocket"><code>Extension</code></a> with name and parameters.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.extension">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a> in <a href="../../../org/glassfish/tyrus/core/extension/package-summary.html">org.glassfish.tyrus.core.extension</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/extension/package-summary.html">org.glassfish.tyrus.core.extension</a> that return types with arguments of type <a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExtendedExtension.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/extension/ExtendedExtension.html#onExtensionNegotiation(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)">onExtensionNegotiation</a></span>&#8203;(<a href="../../../org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+                      java.util.List&lt;<a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;requestedParameters)</code></th>
+<td class="colLast">
+<div class="block">Parameter negotiation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../../../org/glassfish/tyrus/core/extension/package-summary.html">org.glassfish.tyrus.core.extension</a> with type arguments of type <a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExtendedExtension.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/extension/ExtendedExtension.html#onExtensionNegotiation(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)">onExtensionNegotiation</a></span>&#8203;(<a href="../../../org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+                      java.util.List&lt;<a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;requestedParameters)</code></th>
+<td class="colLast">
+<div class="block">Parameter negotiation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExtendedExtension.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/extension/ExtendedExtension.html#onHandshakeResponse(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)">onHandshakeResponse</a></span>&#8203;(<a href="../../../org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+                   java.util.List&lt;<a href="../Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;responseParameters)</code></th>
+<td class="colLast">
+<div class="block">Called only on the client side when handshake response arrives.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Extension.Parameter.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Extension.html b/apidocs/1.20/javax/websocket/class-use/Extension.html
new file mode 100644
index 00000000..8cacbff0
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Extension.html
@@ -0,0 +1,562 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Extension (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.Extension (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Extension.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.Extension" class="title">Uses of Interface<br>javax.websocket.Extension</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Extension.html" title="interface in javax.websocket">Extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.extension">org.glassfish.tyrus.core.extension</a></th>
+<td class="colLast">
+<div class="block">WebSocket Extension support.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Extension.html" title="interface in javax.websocket">Extension</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return types with arguments of type <a href="../Extension.html" title="interface in javax.websocket">Extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.html#getExtensions()">getExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the extensions, in order of preference, favorite first, that this client would
+ like to use for its sessions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketContainer.</span><code><span class="memberNameLink"><a href="../WebSocketContainer.html#getInstalledExtensions()">getInstalledExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the set of Extensions installed in the container.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Session.</span><code><span class="memberNameLink"><a href="../Session.html#getNegotiatedExtensions()">getNegotiatedExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the list of extensions currently in use for this conversation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">javax.websocket</a> with type arguments of type <a href="../Extension.html" title="interface in javax.websocket">Extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.Builder.html#extensions(java.util.List)">extensions</a></span>&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Set the extensions for the configuration this builder will build.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Extension.html" title="interface in javax.websocket">Extension</a> in <a href="../server/package-summary.html">javax.websocket.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../server/package-summary.html">javax.websocket.server</a> that return types with arguments of type <a href="../Extension.html" title="interface in javax.websocket">Extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.</span><code><span class="memberNameLink"><a href="../server/ServerEndpointConfig.html#getExtensions()">getExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the websocket extensions configured.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Configurator.</span><code><span class="memberNameLink"><a href="../server/ServerEndpointConfig.Configurator.html#getNegotiatedExtensions(java.util.List,java.util.List)">getNegotiatedExtensions</a></span>&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;installed,
+                       java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;requested)</code></th>
+<td class="colLast">
+<div class="block">Return the ordered list of extensions that t server endpoint will support 
+ given the requested extension list passed in, the empty list if none.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../server/package-summary.html">javax.websocket.server</a> with type arguments of type <a href="../Extension.html" title="interface in javax.websocket">Extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../server/ServerEndpointConfig.Builder.html#extensions(java.util.List)">extensions</a></span>&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Sets the extensions to use in the configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Configurator.</span><code><span class="memberNameLink"><a href="../server/ServerEndpointConfig.Configurator.html#getNegotiatedExtensions(java.util.List,java.util.List)">getNegotiatedExtensions</a></span>&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;installed,
+                       java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;requested)</code></th>
+<td class="colLast">
+<div class="block">Return the ordered list of extensions that t server endpoint will support 
+ given the requested extension list passed in, the empty list if none.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Extension.html" title="interface in javax.websocket">Extension</a> in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a> that return types with arguments of type <a href="../Extension.html" title="interface in javax.websocket">Extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#getInstalledExtensions()">getInstalledExtensions</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Extension.html" title="interface in javax.websocket">Extension</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that implement <a href="../Extension.html" title="interface in javax.websocket">Extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></span></code></th>
+<td class="colLast">
+<div class="block">WebSocket <a href="../Extension.html" title="interface in javax.websocket"><code>Extension</code></a> implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that return types with arguments of type <a href="../Extension.html" title="interface in javax.websocket">Extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusExtension.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusExtension.html#fromHeaders(java.util.List)">fromHeaders</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;extensionHeaders)</code></th>
+<td class="colLast">
+<div class="block">Parse <a href="../Extension.html" title="interface in javax.websocket"><code>Extension</code></a> from headers (represented as <code>List</code> of strings).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusExtension.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusExtension.html#fromString(java.util.List)">fromString</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Parsing of one <a href="../Extension.html" title="interface in javax.websocket"><code>Extension</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfigurator.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html#getNegotiatedExtensions(java.util.List,java.util.List)">getNegotiatedExtensions</a></span>&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;installed,
+                       java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;requested)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html#getNegotiatedExtensions()">getNegotiatedExtensions</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with type arguments of type <a href="../Extension.html" title="interface in javax.websocket">Extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusEndpointWrapper.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#createSessionForRemoteEndpoint(org.glassfish.tyrus.core.TyrusWebSocket,java.lang.String,java.util.List,org.glassfish.tyrus.core.DebugContext)">createSessionForRemoteEndpoint</a></span>&#8203;(<a href="../../../org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket,
+                              java.lang.String&nbsp;subprotocol,
+                              java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions,
+                              <a href="../../../org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a Session based on the <a href="../../../org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a>, subprotocols and extensions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html#extensions(java.util.List)">extensions</a></span>&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Sets the extensions to use in the configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html#fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.util.Set)">fromClass</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedClass,
+         <a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+         boolean&nbsp;isServerEndpoint,
+         int&nbsp;incomingBufferSize,
+         <a href="../../../org/glassfish/tyrus/core/ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+         <a href="../../../org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+         java.util.Set&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html#fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,java.util.Set)">fromInstance</a></span>&#8203;(java.lang.Object&nbsp;annotatedInstance,
+            <a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+            boolean&nbsp;isServerEndpoint,
+            int&nbsp;incomingBufferSize,
+            <a href="../../../org/glassfish/tyrus/core/ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+            java.util.Set&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfigurator.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html#getNegotiatedExtensions(java.util.List,java.util.List)">getNegotiatedExtensions</a></span>&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;installed,
+                       java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;requested)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusWebSocket.html#onConnect(org.glassfish.tyrus.spi.UpgradeRequest,java.lang.String,java.util.List,java.lang.String,org.glassfish.tyrus.core.DebugContext)">onConnect</a></span>&#8203;(<a href="../../../org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;upgradeRequest,
+         java.lang.String&nbsp;subProtocol,
+         java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions,
+         java.lang.String&nbsp;connectionId,
+         <a href="../../../org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when the opening handshake between both
+ endpoints has been completed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Handshake.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/Handshake.html#setExtensions(java.util.List)">setExtensions</a></span>&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Client side only - set the list of supported extensions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/ProtocolHandler.html#setExtensions(java.util.List)">setExtensions</a></span>&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Client side.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Extension.html" title="interface in javax.websocket">Extension</a> in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> that return types with arguments of type <a href="../Extension.html" title="interface in javax.websocket">Extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html#getNegotiatedExtensions()">getNegotiatedExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the list of extensions currently in use for this conversation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.extension">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Extension.html" title="interface in javax.websocket">Extension</a> in <a href="../../../org/glassfish/tyrus/core/extension/package-summary.html">org.glassfish.tyrus.core.extension</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../Extension.html" title="interface in javax.websocket">Extension</a> in <a href="../../../org/glassfish/tyrus/core/extension/package-summary.html">org.glassfish.tyrus.core.extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/extension/ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension</a></span></code></th>
+<td class="colLast">
+<div class="block">WebSocket <a href="../Extension.html" title="interface in javax.websocket"><code>Extension</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Extension.html" title="interface in javax.websocket">Extension</a> in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> that return types with arguments of type <a href="../Extension.html" title="interface in javax.websocket">Extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#getInstalledExtensions()">getInstalledExtensions</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Extension.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/HandshakeResponse.html b/apidocs/1.20/javax/websocket/class-use/HandshakeResponse.html
new file mode 100644
index 00000000..4e6bbab6
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/HandshakeResponse.html
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.HandshakeResponse (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.HandshakeResponse (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HandshakeResponse.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.HandshakeResponse" class="title">Uses of Interface<br>javax.websocket.HandshakeResponse</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEndpointConfig.Configurator.</span><code><span class="memberNameLink"><a href="../ClientEndpointConfig.Configurator.html#afterResponse(javax.websocket.HandshakeResponse)">afterResponse</a></span>&#8203;(<a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>&nbsp;hr)</code></th>
+<td class="colLast">
+<div class="block">This method is called by the implementation after it has received a handshake response
+ from the server as a result of a handshake interaction it initiated.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a> in <a href="../server/package-summary.html">javax.websocket.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../server/package-summary.html">javax.websocket.server</a> with parameters of type <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Configurator.</span><code><span class="memberNameLink"><a href="../server/ServerEndpointConfig.Configurator.html#modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">modifyHandshake</a></span>&#8203;(<a href="../server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;sec,
+               <a href="../server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a>&nbsp;request,
+               <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Called by the container after it has formulated a handshake response resulting from
+ a well-formed handshake request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that implement <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">TyrusUpgradeResponse</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP response representation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfigurator.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html#modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">modifyHandshake</a></span>&#8203;(<a href="../server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;sec,
+               <a href="../server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a>&nbsp;request,
+               <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a> in <a href="../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a> that implement <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></span></code></th>
+<td class="colLast">
+<div class="block">Abstraction for a HTTP upgrade response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HandshakeResponse.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/MessageHandler.Partial.html b/apidocs/1.20/javax/websocket/class-use/MessageHandler.Partial.html
new file mode 100644
index 00000000..21c7b615
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/MessageHandler.Partial.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.MessageHandler.Partial (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.MessageHandler.Partial (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageHandler.Partial.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.MessageHandler.Partial" class="title">Uses of Interface<br>javax.websocket.MessageHandler.Partial</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Session.</span><code><span class="memberNameLink"><a href="../Session.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageHandlerManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/MessageHandlerManager.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Add <a href="../MessageHandler.Partial.html" title="interface in javax.websocket"><code>MessageHandler.Partial</code></a> to the manager.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a> in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> with parameters of type <a href="../MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageHandler.Partial.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/MessageHandler.Whole.html b/apidocs/1.20/javax/websocket/class-use/MessageHandler.Whole.html
new file mode 100644
index 00000000..2f879351
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/MessageHandler.Whole.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.MessageHandler.Whole (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.MessageHandler.Whole (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageHandler.Whole.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.MessageHandler.Whole" class="title">Uses of Interface<br>javax.websocket.MessageHandler.Whole</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Session.</span><code><span class="memberNameLink"><a href="../Session.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageHandlerManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/MessageHandlerManager.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Add <a href="../MessageHandler.Whole.html" title="interface in javax.websocket"><code>MessageHandler.Whole</code></a> to the manager.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a> in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> with parameters of type <a href="../MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageHandler.Whole.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/MessageHandler.html b/apidocs/1.20/javax/websocket/class-use/MessageHandler.html
new file mode 100644
index 00000000..ddbca1dc
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/MessageHandler.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.MessageHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.MessageHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageHandler.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.MessageHandler" class="title">Uses of Interface<br>javax.websocket.MessageHandler</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a> in <a href="../package-summary.html">javax.websocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This kind of handler is notified by the implementation as it becomes ready
+ to deliver parts of a whole message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">This kind of handler is notified by the container on arrival of a complete message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return types with arguments of type <a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Session.</span><code><span class="memberNameLink"><a href="../Session.html#getMessageHandlers()">getMessageHandlers</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return an unmodifiable copy of the set of MessageHandlers for this Session.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Session.</span><code><span class="memberNameLink"><a href="../Session.html#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler</a></span>&#8203;(<a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Session.</span><code><span class="memberNameLink"><a href="../Session.html#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler</a></span>&#8203;(<a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Remove the given MessageHandler from the set belonging to this session.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that return types with arguments of type <a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageHandlerManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/MessageHandlerManager.html#getMessageHandlers()">getMessageHandlers</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get all successfully registered <a href="../MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a>s.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html#getMessageHandlers()">getMessageHandlers</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List&lt;java.util.Map.Entry&lt;java.lang.Class&lt;?&gt;,&#8203;<a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageHandlerManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/MessageHandlerManager.html#getOrderedWholeMessageHandlers()">getOrderedWholeMessageHandlers</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageHandlerManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/MessageHandlerManager.html#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler</a></span>&#8203;(<a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Add <a href="../MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a> to the manager.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler</a></span>&#8203;(<a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="../../../org/glassfish/tyrus/core/TyrusSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)"><code>TyrusSession.addMessageHandler(Class, javax.websocket.MessageHandler.Whole)</code></a> or <a href="../../../org/glassfish/tyrus/core/TyrusSession.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)"><code>TyrusSession.addMessageHandler(Class, javax.websocket.MessageHandler.Partial)</code></a></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageHandlerManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/MessageHandlerManager.html#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler</a></span>&#8203;(<a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Remove <a href="../MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a> from the manager.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler</a></span>&#8203;(<a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a> in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> that return types with arguments of type <a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html#getMessageHandlers()">getMessageHandlers</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> with parameters of type <a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler</a></span>&#8203;(<a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler</a></span>&#8203;(<a href="../MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageHandler.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/OnClose.html b/apidocs/1.20/javax/websocket/class-use/OnClose.html
new file mode 100644
index 00000000..e7002b5c
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/OnClose.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.OnClose (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.OnClose (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OnClose.html" title="annotation in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.OnClose" class="title">Uses of Class<br>javax.websocket.OnClose</h2>
+</div>
+<div class="classUseContainer">No usage of javax.websocket.OnClose</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OnClose.html" title="annotation in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/OnError.html b/apidocs/1.20/javax/websocket/class-use/OnError.html
new file mode 100644
index 00000000..f230fc75
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/OnError.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.OnError (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.OnError (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OnError.html" title="annotation in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.OnError" class="title">Uses of Class<br>javax.websocket.OnError</h2>
+</div>
+<div class="classUseContainer">No usage of javax.websocket.OnError</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OnError.html" title="annotation in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/OnMessage.html b/apidocs/1.20/javax/websocket/class-use/OnMessage.html
new file mode 100644
index 00000000..b543b7db
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/OnMessage.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.OnMessage (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.OnMessage (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OnMessage.html" title="annotation in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.OnMessage" class="title">Uses of Class<br>javax.websocket.OnMessage</h2>
+</div>
+<div class="classUseContainer">No usage of javax.websocket.OnMessage</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OnMessage.html" title="annotation in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/OnOpen.html b/apidocs/1.20/javax/websocket/class-use/OnOpen.html
new file mode 100644
index 00000000..13f7f7d2
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/OnOpen.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.OnOpen (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.OnOpen (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OnOpen.html" title="annotation in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.OnOpen" class="title">Uses of Class<br>javax.websocket.OnOpen</h2>
+</div>
+<div class="classUseContainer">No usage of javax.websocket.OnOpen</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OnOpen.html" title="annotation in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/PongMessage.html b/apidocs/1.20/javax/websocket/class-use/PongMessage.html
new file mode 100644
index 00000000..d7799c93
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/PongMessage.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.PongMessage (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.PongMessage (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PongMessage.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.PongMessage" class="title">Uses of Interface<br>javax.websocket.PongMessage</h2>
+</div>
+<div class="classUseContainer">No usage of javax.websocket.PongMessage</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PongMessage.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/RemoteEndpoint.Async.html b/apidocs/1.20/javax/websocket/class-use/RemoteEndpoint.Async.html
new file mode 100644
index 00000000..5a31b49d
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/RemoteEndpoint.Async.html
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.RemoteEndpoint.Async (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.RemoteEndpoint.Async (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.RemoteEndpoint.Async" class="title">Uses of Interface<br>javax.websocket.RemoteEndpoint.Async</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return <a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Session.</span><code><span class="memberNameLink"><a href="../Session.html#getAsyncRemote()">getAsyncRemote</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a reference a RemoteEndpoint object representing the peer of this conversation
+ that is able to send messages asynchronously to the peer.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html#getAsyncRemote()">getAsyncRemote</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a> in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> that return <a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html#getAsyncRemote()">getAsyncRemote</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a reference a <a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket"><code>RemoteEndpoint.Async</code></a> object representing the peer of this conversation
+ that is able to send messages asynchronously to the peer.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/RemoteEndpoint.Basic.html b/apidocs/1.20/javax/websocket/class-use/RemoteEndpoint.Basic.html
new file mode 100644
index 00000000..b6141e95
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/RemoteEndpoint.Basic.html
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.RemoteEndpoint.Basic (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.RemoteEndpoint.Basic (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.RemoteEndpoint.Basic" class="title">Uses of Interface<br>javax.websocket.RemoteEndpoint.Basic</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return <a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Session.</span><code><span class="memberNameLink"><a href="../Session.html#getBasicRemote()">getBasicRemote</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a reference a RemoteEndpoint object representing the peer of this conversation
+ that is able to send messages synchronously to the peer.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html#getBasicRemote()">getBasicRemote</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a> in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> that return <a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html#getBasicRemote()">getBasicRemote</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a reference a <a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket"><code>RemoteEndpoint.Basic</code></a> object representing the peer of this conversation
+ that is able to send messages synchronously to the peer.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/RemoteEndpoint.html b/apidocs/1.20/javax/websocket/class-use/RemoteEndpoint.html
new file mode 100644
index 00000000..64f1b2b0
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/RemoteEndpoint.html
@@ -0,0 +1,238 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.RemoteEndpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.RemoteEndpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RemoteEndpoint.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.RemoteEndpoint" class="title">Uses of Interface<br>javax.websocket.RemoteEndpoint</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a> in <a href="../package-summary.html">javax.websocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></span></code></th>
+<td class="colLast">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></span></code></th>
+<td class="colLast">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages synchronously.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that implement <a href="../RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">TyrusRemoteEndpoint</a></span></code></th>
+<td class="colLast">
+<div class="block">Wraps the <a href="../RemoteEndpoint.html" title="interface in javax.websocket"><code>RemoteEndpoint</code></a> and represents the other side of the websocket connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RemoteEndpoint.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/SendHandler.html b/apidocs/1.20/javax/websocket/class-use/SendHandler.html
new file mode 100644
index 00000000..a2dc0a89
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/SendHandler.html
@@ -0,0 +1,344 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.SendHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.SendHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SendHandler.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.SendHandler" class="title">Uses of Interface<br>javax.websocket.SendHandler</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteEndpoint.Async.</span><code><span class="memberNameLink"><a href="../RemoteEndpoint.Async.html#sendBinary(java.nio.ByteBuffer,javax.websocket.SendHandler)">sendBinary</a></span>&#8203;(java.nio.ByteBuffer&nbsp;data,
+          <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Initiates the asynchronous transmission of a binary message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteEndpoint.Async.</span><code><span class="memberNameLink"><a href="../RemoteEndpoint.Async.html#sendObject(java.lang.Object,javax.websocket.SendHandler)">sendObject</a></span>&#8203;(java.lang.Object&nbsp;data,
+          <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Initiates the asynchronous transmission of a custom developer object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteEndpoint.Async.</span><code><span class="memberNameLink"><a href="../RemoteEndpoint.Async.html#sendText(java.lang.String,javax.websocket.SendHandler)">sendText</a></span>&#8203;(java.lang.String&nbsp;text,
+        <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Initiates the asynchronous transmission of a text message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/ProtocolHandler.html#send(byte%5B%5D,javax.websocket.SendHandler)">send</a></span>&#8203;(byte[]&nbsp;data,
+    <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/ProtocolHandler.html#send(byte%5B%5D,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">send</a></span>&#8203;(byte[]&nbsp;data,
+    <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+    <a href="../../../org/glassfish/tyrus/spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/ProtocolHandler.html#send(java.lang.String,javax.websocket.SendHandler)">send</a></span>&#8203;(java.lang.String&nbsp;data,
+    <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/ProtocolHandler.html#send(java.lang.String,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">send</a></span>&#8203;(java.lang.String&nbsp;data,
+    <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+    <a href="../../../org/glassfish/tyrus/spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusWebSocket.html#sendBinary(byte%5B%5D,javax.websocket.SendHandler)">sendBinary</a></span>&#8203;(byte[]&nbsp;data,
+          <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusWebSocket.html#sendBinary(byte%5B%5D,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">sendBinary</a></span>&#8203;(byte[]&nbsp;data,
+          <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+          <a href="../../../org/glassfish/tyrus/spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Send a binary frame to the remote endpoint.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusWebSocket.html#sendText(java.lang.String,javax.websocket.SendHandler)">sendText</a></span>&#8203;(java.lang.String&nbsp;data,
+        <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusWebSocket.html#sendText(java.lang.String,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">sendText</a></span>&#8203;(java.lang.String&nbsp;data,
+        <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+        <a href="../../../org/glassfish/tyrus/spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Send a text frame to the remote endpoint.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a> in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> with parameters of type <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClusterContext.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/ClusterContext.html#sendBinary(java.lang.String,byte%5B%5D,javax.websocket.SendHandler)">sendBinary</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+          byte[]&nbsp;data,
+          <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;sendHandler)</code></th>
+<td class="colLast">
+<div class="block">Send binary message with <a href="../SendHandler.html" title="interface in javax.websocket"><code>SendHandler</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClusterContext.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/ClusterContext.html#sendText(java.lang.String,java.lang.String,javax.websocket.SendHandler)">sendText</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+        java.lang.String&nbsp;text,
+        <a href="../SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;sendHandler)</code></th>
+<td class="colLast">
+<div class="block">Send text message with <a href="../SendHandler.html" title="interface in javax.websocket"><code>SendHandler</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SendHandler.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/SendResult.html b/apidocs/1.20/javax/websocket/class-use/SendResult.html
new file mode 100644
index 00000000..eab13c17
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/SendResult.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.SendResult (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.SendResult (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SendResult.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.SendResult" class="title">Uses of Class<br>javax.websocket.SendResult</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SendResult.html" title="class in javax.websocket">SendResult</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SendResult.html" title="class in javax.websocket">SendResult</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../SendResult.html" title="class in javax.websocket">SendResult</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SendHandler.</span><code><span class="memberNameLink"><a href="../SendHandler.html#onResult(javax.websocket.SendResult)">onResult</a></span>&#8203;(<a href="../SendResult.html" title="class in javax.websocket">SendResult</a>&nbsp;result)</code></th>
+<td class="colLast">
+<div class="block">Called once the message has been transmitted.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SendResult.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/Session.html b/apidocs/1.20/javax/websocket/class-use/Session.html
new file mode 100644
index 00000000..b6a5d1bb
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/Session.html
@@ -0,0 +1,747 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Session (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.Session (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Session.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.Session" class="title">Uses of Interface<br>javax.websocket.Session</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Session.html" title="interface in javax.websocket">Session</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketContainer.</span><code><span class="memberNameLink"><a href="../WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedEndpointClass,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied annotated endpoint to its server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketContainer.</span><code><span class="memberNameLink"><a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic endpoint to its server with the given 
+ configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketContainer.</span><code><span class="memberNameLink"><a href="../WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Object&nbsp;annotatedEndpointInstance,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied annotated endpoint instance to its server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketContainer.</span><code><span class="memberNameLink"><a href="../WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic client endpoint instance to its server 
+ with the given configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SessionException.</span><code><span class="memberNameLink"><a href="../SessionException.html#getSession()">getSession</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the Session on which the problem occurred.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return types with arguments of type <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Session.</span><code><span class="memberNameLink"><a href="../Session.html#getOpenSessions()">getOpenSessions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a copy of the Set of all the open web socket sessions that represent
+ connections to the same endpoint to which this session represents a connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Endpoint.</span><code><span class="memberNameLink"><a href="../Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)">onClose</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+       <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">This method is called immediately prior to the session with the remote 
+ peer being closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Endpoint.</span><code><span class="memberNameLink"><a href="../Endpoint.html#onError(javax.websocket.Session,java.lang.Throwable)">onError</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+       java.lang.Throwable&nbsp;thr)</code></th>
+<td class="colLast">
+<div class="block">Developers may implement this method when the web socket session
+ creates some kind of error that is not modeled in the web socket protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Endpoint.</span><code><span class="memberNameLink"><a href="../Endpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)">onOpen</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+      <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Developers must implement this method to be notified when a new conversation has
+ just begun.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">javax.websocket</a> with parameters of type <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../SessionException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,javax.websocket.Session)">SessionException</a></span>&#8203;(java.lang.String&nbsp;message,
+                java.lang.Throwable&nbsp;cause,
+                <a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of this exception with the given message,
+ the wrapped cause of the exception and the session with which
+ the problem is associated.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Session.html" title="interface in javax.websocket">Session</a> in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a> that return <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&nbsp;annotatedEndpointClass,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Object&nbsp;obj,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a> that return types with arguments of type <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(java.lang.Class,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedEndpointClass,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, javax.websocket.ClientEndpointConfig,
+ java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(java.lang.Object,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Object&nbsp;obj,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)"><code>WebSocketContainer.connectToServer(Object, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a> with parameters of type <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusClientEngine.ClientHandshakeListener.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html#onSessionCreated(javax.websocket.Session)">onSessionCreated</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Invoked when handshake is completed and provided <a href="../Session.html" title="interface in javax.websocket"><code>Session</code></a> is open and ready to be returned from
+ <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, javax.websocket.ClientEndpointConfig, java.net.URI)</code></a> (and
+ alternatives) call.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Session.html" title="interface in javax.websocket">Session</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that implement <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></span></code></th>
+<td class="colLast">
+<div class="block">Implementation of the <a href="../Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusEndpointWrapper.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#createSessionForRemoteEndpoint(org.glassfish.tyrus.core.TyrusWebSocket,java.lang.String,java.util.List,org.glassfish.tyrus.core.DebugContext)">createSessionForRemoteEndpoint</a></span>&#8203;(<a href="../../../org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket,
+                              java.lang.String&nbsp;subprotocol,
+                              java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions,
+                              <a href="../../../org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a Session based on the <a href="../../../org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a>, subprotocols and extensions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that return types with arguments of type <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>,&#8203;java.util.concurrent.Future&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html#broadcast(java.lang.String)">broadcast</a></span>&#8203;(java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Broadcasts text message to all connected clients.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.Map&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>,&#8203;java.util.concurrent.Future&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html#broadcast(java.nio.ByteBuffer)">broadcast</a></span>&#8203;(java.nio.ByteBuffer&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Broadcasts binary message to all connected clients, including remote sessions (if any).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html#getOpenSessions()">getOpenSessions</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Object</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusEndpointWrapper.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#doEncode(javax.websocket.Session,java.lang.Object)">doEncode</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+        java.lang.Object&nbsp;message)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ComponentProviderService.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html#getCoderInstance(java.lang.Class,javax.websocket.Session,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ErrorCollector)">getCoderInstance</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;c,
+                <a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+                <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;endpointConfig,
+                <a href="../../../org/glassfish/tyrus/core/ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</code></th>
+<td class="colLast">
+<div class="block">Provide an instance of <a href="../Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> or <a href="../Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> descendant which is
+ coupled to <a href="../Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ComponentProviderService.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html#getInstance(java.lang.Class,javax.websocket.Session,org.glassfish.tyrus.core.ErrorCollector)">getInstance</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;c,
+           <a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+           <a href="../../../org/glassfish/tyrus/core/ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</code></th>
+<td class="colLast">
+<div class="block">Provide an instance of class which is coupled to <a href="../Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)">onClose</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+       <a href="../CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html#onError(javax.websocket.Session,java.lang.Throwable)">onError</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+       java.lang.Throwable&nbsp;thr)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)">onOpen</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+      <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ComponentProviderService.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html#removeSession(javax.websocket.Session)">removeSession</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Remove <a href="../Session.html" title="interface in javax.websocket"><code>Session</code></a> from cache.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Session.html" title="interface in javax.websocket">Session</a> in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../Session.html" title="interface in javax.websocket">Session</a> in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></span></code></th>
+<td class="colLast">
+<div class="block">Extended <a href="../Session.html" title="interface in javax.websocket"><code>Session</code></a> which adds distributed properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> that implement <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></span></code></th>
+<td class="colLast">
+<div class="block">Remote session represents session originating from another node.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> that return types with arguments of type <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html#getOpenSessions()">getOpenSessions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> with parameters of type <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html#%3Cinit%3E(java.lang.String,org.glassfish.tyrus.core.cluster.ClusterContext,java.util.Map,org.glassfish.tyrus.core.TyrusEndpointWrapper,javax.websocket.Session)">RemoteSession</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+             <a href="../../../org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+             java.util.Map&lt;<a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>,&#8203;java.lang.Object&gt;&nbsp;distributedPropertyMap,
+             <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+             <a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/SessionEventListener.html#%3Cinit%3E(javax.websocket.Session)">SessionEventListener</a></span>&#8203;(<a href="../Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Session.html" title="interface in javax.websocket">Session</a> in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> that return <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&nbsp;annotatedEndpointClass,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Object&nbsp;annotatedEndpointInstance,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> that return types with arguments of type <a href="../Session.html" title="interface in javax.websocket">Session</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(java.lang.Class,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedEndpointClass,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(java.lang.Object,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Object&nbsp;obj,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)"><code>WebSocketContainer.connectToServer(Object, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html#asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                    <a href="../ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Session.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/SessionException.html b/apidocs/1.20/javax/websocket/class-use/SessionException.html
new file mode 100644
index 00000000..2ec37af2
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/SessionException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.SessionException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.SessionException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SessionException.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.SessionException" class="title">Uses of Class<br>javax.websocket.SessionException</h2>
+</div>
+<div class="classUseContainer">No usage of javax.websocket.SessionException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SessionException.html" title="class in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/class-use/WebSocketContainer.html b/apidocs/1.20/javax/websocket/class-use/WebSocketContainer.html
new file mode 100644
index 00000000..6f5a160d
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/class-use/WebSocketContainer.html
@@ -0,0 +1,520 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.WebSocketContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.WebSocketContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebSocketContainer.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.WebSocketContainer" class="title">Uses of Interface<br>javax.websocket.WebSocketContainer</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.client">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a> in <a href="../package-summary.html">javax.websocket</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket</a> that return <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerProvider.</span><code><span class="memberNameLink"><a href="../ContainerProvider.html#getContainer()">getContainer</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Load the container implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Session.</span><code><span class="memberNameLink"><a href="../Session.html#getContainer()">getContainer</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the container that this session is part of.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerProvider.</span><code><span class="memberNameLink"><a href="../ContainerProvider.html#getWebSocketContainer()">getWebSocketContainer</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Obtain a new instance of a WebSocketContainer.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a> in <a href="../server/package-summary.html">javax.websocket.server</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a> in <a href="../server/package-summary.html">javax.websocket.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../server/ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></span></code></th>
+<td class="colLast">
+<div class="block">The ServerContainer is the specialized view of the WebSocketContainer available
+ in server-side deployments.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a> in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a> that implement <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></span></code></th>
+<td class="colLast">
+<div class="block">ClientManager implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a> with parameters of type <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#createClient(java.lang.String,javax.websocket.WebSocketContainer)">createClient</a></span>&#8203;(java.lang.String&nbsp;containerProviderClassName,
+            <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;webSocketContainer)</code></th>
+<td class="colLast">
+<div class="block">Create new ClientManager instance on top of provided <a href="../WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a> instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/client/ClientManager.html#createClient(javax.websocket.WebSocketContainer)">createClient</a></span>&#8203;(<a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;webSocketContainer)</code></th>
+<td class="colLast">
+<div class="block">Create new ClientManager instance on top of provided <a href="../WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.container.grizzly.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a> in <a href="../../../org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a> that return <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">GrizzlyContainerProvider.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html#getContainer()">getContainer</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a> in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that implement <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></span></code></th>
+<td class="colLast">
+<div class="block">Base WebSocket container.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusSession.html#getContainer()">getContainer</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusWebSocketEngine.html#builder(javax.websocket.WebSocketContainer)">builder</a></span>&#8203;(<a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;webSocketContainer)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</code></a>
+ instance based on passed <a href="../WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#%3Cinit%3E(java.lang.Class,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../../../org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../../../org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for class that extends <a href="../Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#%3Cinit%3E(javax.websocket.Endpoint,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(<a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpoint,
+                    <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../../org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../../../org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../../../org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for <a href="../Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> instance or <a href="../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a> in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> that return <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteSession.</span><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html#getContainer()">getContainer</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="../../../org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a> in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> that implement <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></span></code></th>
+<td class="colLast">
+<div class="block">Server Container Implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a> in <a href="../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a> in <a href="../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP server abstraction.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebSocketContainer.html" title="interface in javax.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/package-summary.html b/apidocs/1.20/javax/websocket/package-summary.html
new file mode 100644
index 00000000..f5e181d5
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/package-summary.html
@@ -0,0 +1,499 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>javax.websocket (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.websocket (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;javax.websocket</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The ClientEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to client endpoints.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a></th>
+<td class="colLast">
+<div class="block">A marker interface for the close codes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Decoder.html" title="interface in javax.websocket">Decoder</a></th>
+<td class="colLast">
+<div class="block">The Decoder interface holds member interfaces that define how a developer can provide
+ the web socket container a way web socket messages into developer defined custom objects.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object (of type T) is decoded from a web socket message in
+ the form of a byte buffer.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object is decoded from a web socket message in
+ the form of a binary stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object is decoded from a web socket message in
+ the form of a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object of type T is decoded from a web socket message in
+ the form of a character stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Encoder.html" title="interface in javax.websocket">Encoder</a></th>
+<td class="colLast">
+<div class="block">The Encoder interface defines how developers can provide a way to convert
+ their custom objects into web socket messages.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a binary message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">This interface may be implemented by encoding algorithms
+ that want to write the encoded object to a binary stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a text message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">This interface may be implemented by encoding algorithms
+ that want to write the encoded object to a character stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The endpoint configuration contains all the information needed during the handshake process
+ for this end point.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Extension.html" title="interface in javax.websocket">Extension</a></th>
+<td class="colLast">
+<div class="block">A simple representation of a websocket extension as a name and map of extension parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></th>
+<td class="colLast">
+<div class="block">This member interface defines a single websocket extension parameter.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></th>
+<td class="colLast">
+<div class="block">The handshake response represents the web socket-defined Http response
+ that is the response to the opening handshake request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="MessageHandler.html" title="interface in javax.websocket">MessageHandler</a></th>
+<td class="colLast">
+<div class="block">Developers implement MessageHandlers in order to receive incoming messages
+ during a web socket conversation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">This kind of handler is notified by the implementation as it becomes ready
+ to deliver parts of a whole message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">This kind of handler is notified by the container on arrival of a complete message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PongMessage.html" title="interface in javax.websocket">PongMessage</a></th>
+<td class="colLast">
+<div class="block">The PongMessage interface represents a web socket pong.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></th>
+<td class="colLast">
+<div class="block">The RemoteEndpoint object is supplied by the container and represents the 
+ 'other end' or peer of the Web Socket conversation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></th>
+<td class="colLast">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></th>
+<td class="colLast">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="SendHandler.html" title="interface in javax.websocket">SendHandler</a></th>
+<td class="colLast">
+<div class="block">A simple callback object for asynchronous sending of web socket messages.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Session.html" title="interface in javax.websocket">Session</a></th>
+<td class="colLast">
+<div class="block">A Web Socket session represents a conversation between two web socket endpoints.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></th>
+<td class="colLast">
+<div class="block">A WebSocketContainer is an implementation provided object that provides applications
+ a view on the container running it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket">ClientEndpointConfig.Builder</a></th>
+<td class="colLast">
+<div class="block">The ClientEndpointConfig.Builder is a class used for creating
+ <a href="ClientEndpointConfig.html" title="interface in javax.websocket"><code>ClientEndpointConfig</code></a> objects for the purposes of
+ deploying a client endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ClientEndpointConfig.Configurator.html" title="class in javax.websocket">ClientEndpointConfig.Configurator</a></th>
+<td class="colLast">
+<div class="block">The Configurator class may be extended by developers who want to
+ provide custom configuration algorithms, such as intercepting the opening handshake, or
+ providing arbitrary methods and algorithms that can be accessed from each endpoint
+ instance configured with this configurator.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="CloseReason.html" title="class in javax.websocket">CloseReason</a></th>
+<td class="colLast">
+<div class="block">A class encapsulating the reason why a web socket has been closed, or why it is being asked to
+ close.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ContainerProvider.html" title="class in javax.websocket">ContainerProvider</a></th>
+<td class="colLast">
+<div class="block">Provider class that allows the developer to get a reference to
+ the implementation of the WebSocketContainer.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Endpoint.html" title="class in javax.websocket">Endpoint</a></th>
+<td class="colLast">
+<div class="block">The Web Socket Endpoint represents an object that can handle websocket conversations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="SendResult.html" title="class in javax.websocket">SendResult</a></th>
+<td class="colLast">
+<div class="block">The result of asynchronously sending a web socket message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="CloseReason.CloseCodes.html" title="enum in javax.websocket">CloseReason.CloseCodes</a></th>
+<td class="colLast">
+<div class="block">An Enumeration of status codes for a web socket close that
+ are defined in the specification.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="DecodeException.html" title="class in javax.websocket">DecodeException</a></th>
+<td class="colLast">
+<div class="block">A general exception that occurs when trying to decode a custom object from a text or binary message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="DeploymentException.html" title="class in javax.websocket">DeploymentException</a></th>
+<td class="colLast">
+<div class="block">Checked exception indicating some kind of failure either to publish
+ an endpoint on its server, or a failure to connect a client to its server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="EncodeException.html" title="class in javax.websocket">EncodeException</a></th>
+<td class="colLast">
+<div class="block">A general exception that occurs when trying to encode a custom object to a string or binary message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="SessionException.html" title="class in javax.websocket">SessionException</a></th>
+<td class="colLast">
+<div class="block">A SessionException represents a general exception type reporting problems
+ occurring on a websocket session.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientEndpoint.html" title="annotation in javax.websocket">ClientEndpoint</a></th>
+<td class="colLast">
+<div class="block">The ClientEndpoint annotation a class level annotation is used to denote that a POJO
+ is a web socket client and can be deployed as such.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="OnClose.html" title="annotation in javax.websocket">OnClose</a></th>
+<td class="colLast">
+<div class="block">This method level annotation can be used to decorate a Java method that wishes 
+ to be called when a web socket session is closing.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="OnError.html" title="annotation in javax.websocket">OnError</a></th>
+<td class="colLast">
+<div class="block">This method level annotation can be used to decorate a Java method that wishes to be called in order
+ to handle errors.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="OnMessage.html" title="annotation in javax.websocket">OnMessage</a></th>
+<td class="colLast">
+<div class="block">This method level annotation can be used to make a Java method receive incoming web socket messages.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="OnOpen.html" title="annotation in javax.websocket">OnOpen</a></th>
+<td class="colLast">
+<div class="block">This method level annotation can be used to decorate a Java method that wishes to be called when a new
+ web socket session is open.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/package-tree.html b/apidocs/1.20/javax/websocket/package-tree.html
new file mode 100644
index 00000000..d06ce200
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/package-tree.html
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>javax.websocket Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.websocket Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package javax.websocket</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">javax.websocket.<a href="ClientEndpointConfig.Builder.html" title="class in javax.websocket"><span class="typeNameLink">ClientEndpointConfig.Builder</span></a></li>
+<li class="circle">javax.websocket.<a href="ClientEndpointConfig.Configurator.html" title="class in javax.websocket"><span class="typeNameLink">ClientEndpointConfig.Configurator</span></a></li>
+<li class="circle">javax.websocket.<a href="CloseReason.html" title="class in javax.websocket"><span class="typeNameLink">CloseReason</span></a></li>
+<li class="circle">javax.websocket.<a href="ContainerProvider.html" title="class in javax.websocket"><span class="typeNameLink">ContainerProvider</span></a></li>
+<li class="circle">javax.websocket.<a href="Endpoint.html" title="class in javax.websocket"><span class="typeNameLink">Endpoint</span></a></li>
+<li class="circle">javax.websocket.<a href="SendResult.html" title="class in javax.websocket"><span class="typeNameLink">SendResult</span></a></li>
+<li class="circle">java.lang.Throwable (implements java.io.Serializable)
+<ul>
+<li class="circle">java.lang.Exception
+<ul>
+<li class="circle">javax.websocket.<a href="DecodeException.html" title="class in javax.websocket"><span class="typeNameLink">DecodeException</span></a></li>
+<li class="circle">javax.websocket.<a href="DeploymentException.html" title="class in javax.websocket"><span class="typeNameLink">DeploymentException</span></a></li>
+<li class="circle">javax.websocket.<a href="EncodeException.html" title="class in javax.websocket"><span class="typeNameLink">EncodeException</span></a></li>
+<li class="circle">javax.websocket.<a href="SessionException.html" title="class in javax.websocket"><span class="typeNameLink">SessionException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.AutoCloseable
+<ul>
+<li class="circle">java.io.Closeable
+<ul>
+<li class="circle">javax.websocket.<a href="Session.html" title="interface in javax.websocket"><span class="typeNameLink">Session</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">javax.websocket.<a href="CloseReason.CloseCode.html" title="interface in javax.websocket"><span class="typeNameLink">CloseReason.CloseCode</span></a></li>
+<li class="circle">javax.websocket.<a href="Decoder.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder</span></a>
+<ul>
+<li class="circle">javax.websocket.<a href="Decoder.Binary.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder.Binary</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="Decoder.BinaryStream.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder.BinaryStream</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="Decoder.Text.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder.Text</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="Decoder.TextStream.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder.TextStream</span></a>&lt;T&gt;</li>
+</ul>
+</li>
+<li class="circle">javax.websocket.<a href="Encoder.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder</span></a>
+<ul>
+<li class="circle">javax.websocket.<a href="Encoder.Binary.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder.Binary</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="Encoder.BinaryStream.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder.BinaryStream</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="Encoder.Text.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder.Text</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="Encoder.TextStream.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder.TextStream</span></a>&lt;T&gt;</li>
+</ul>
+</li>
+<li class="circle">javax.websocket.<a href="EndpointConfig.html" title="interface in javax.websocket"><span class="typeNameLink">EndpointConfig</span></a>
+<ul>
+<li class="circle">javax.websocket.<a href="ClientEndpointConfig.html" title="interface in javax.websocket"><span class="typeNameLink">ClientEndpointConfig</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.websocket.<a href="Extension.html" title="interface in javax.websocket"><span class="typeNameLink">Extension</span></a></li>
+<li class="circle">javax.websocket.<a href="Extension.Parameter.html" title="interface in javax.websocket"><span class="typeNameLink">Extension.Parameter</span></a></li>
+<li class="circle">javax.websocket.<a href="HandshakeResponse.html" title="interface in javax.websocket"><span class="typeNameLink">HandshakeResponse</span></a></li>
+<li class="circle">javax.websocket.<a href="MessageHandler.html" title="interface in javax.websocket"><span class="typeNameLink">MessageHandler</span></a>
+<ul>
+<li class="circle">javax.websocket.<a href="MessageHandler.Partial.html" title="interface in javax.websocket"><span class="typeNameLink">MessageHandler.Partial</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="MessageHandler.Whole.html" title="interface in javax.websocket"><span class="typeNameLink">MessageHandler.Whole</span></a>&lt;T&gt;</li>
+</ul>
+</li>
+<li class="circle">javax.websocket.<a href="PongMessage.html" title="interface in javax.websocket"><span class="typeNameLink">PongMessage</span></a></li>
+<li class="circle">javax.websocket.<a href="RemoteEndpoint.html" title="interface in javax.websocket"><span class="typeNameLink">RemoteEndpoint</span></a>
+<ul>
+<li class="circle">javax.websocket.<a href="RemoteEndpoint.Async.html" title="interface in javax.websocket"><span class="typeNameLink">RemoteEndpoint.Async</span></a></li>
+<li class="circle">javax.websocket.<a href="RemoteEndpoint.Basic.html" title="interface in javax.websocket"><span class="typeNameLink">RemoteEndpoint.Basic</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.websocket.<a href="SendHandler.html" title="interface in javax.websocket"><span class="typeNameLink">SendHandler</span></a></li>
+<li class="circle">javax.websocket.<a href="WebSocketContainer.html" title="interface in javax.websocket"><span class="typeNameLink">WebSocketContainer</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">javax.websocket.<a href="ClientEndpoint.html" title="annotation in javax.websocket"><span class="typeNameLink">ClientEndpoint</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">javax.websocket.<a href="OnClose.html" title="annotation in javax.websocket"><span class="typeNameLink">OnClose</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">javax.websocket.<a href="OnError.html" title="annotation in javax.websocket"><span class="typeNameLink">OnError</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">javax.websocket.<a href="OnMessage.html" title="annotation in javax.websocket"><span class="typeNameLink">OnMessage</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">javax.websocket.<a href="OnOpen.html" title="annotation in javax.websocket"><span class="typeNameLink">OnOpen</span></a> (implements java.lang.annotation.Annotation)</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
+<ul>
+<li class="circle">javax.websocket.<a href="CloseReason.CloseCodes.html" title="enum in javax.websocket"><span class="typeNameLink">CloseReason.CloseCodes</span></a> (implements javax.websocket.<a href="CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a>)</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/package-use.html b/apidocs/1.20/javax/websocket/package-use.html
new file mode 100644
index 00000000..a256ed73
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/package-use.html
@@ -0,0 +1,1030 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package javax.websocket (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../script.js"></script>
+<script type="text/javascript" src="../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package javax.websocket (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package javax.websocket" class="title">Uses of Package<br>javax.websocket</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">javax.websocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket">javax.websocket</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs common to both the client
+ and server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.client">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.extension">org.glassfish.tyrus.core.extension</a></th>
+<td class="colLast">
+<div class="block">WebSocket Extension support.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="javax.websocket">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket</a> used by <a href="package-summary.html">javax.websocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEndpointConfig.html#javax.websocket">ClientEndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The ClientEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to client endpoints.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEndpointConfig.Builder.html#javax.websocket">ClientEndpointConfig.Builder</a></th>
+<td class="colLast">
+<div class="block">The ClientEndpointConfig.Builder is a class used for creating
+ <a href="ClientEndpointConfig.html" title="interface in javax.websocket"><code>ClientEndpointConfig</code></a> objects for the purposes of
+ deploying a client endpoint.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEndpointConfig.Configurator.html#javax.websocket">ClientEndpointConfig.Configurator</a></th>
+<td class="colLast">
+<div class="block">The Configurator class may be extended by developers who want to
+ provide custom configuration algorithms, such as intercepting the opening handshake, or
+ providing arbitrary methods and algorithms that can be accessed from each endpoint
+ instance configured with this configurator.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/CloseReason.html#javax.websocket">CloseReason</a></th>
+<td class="colLast">
+<div class="block">A class encapsulating the reason why a web socket has been closed, or why it is being asked to
+ close.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/CloseReason.CloseCode.html#javax.websocket">CloseReason.CloseCode</a></th>
+<td class="colLast">
+<div class="block">A marker interface for the close codes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/CloseReason.CloseCodes.html#javax.websocket">CloseReason.CloseCodes</a></th>
+<td class="colLast">
+<div class="block">An Enumeration of status codes for a web socket close that
+ are defined in the specification.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/DecodeException.html#javax.websocket">DecodeException</a></th>
+<td class="colLast">
+<div class="block">A general exception that occurs when trying to decode a custom object from a text or binary message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Decoder.html#javax.websocket">Decoder</a></th>
+<td class="colLast">
+<div class="block">The Decoder interface holds member interfaces that define how a developer can provide
+ the web socket container a way web socket messages into developer defined custom objects.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/DeploymentException.html#javax.websocket">DeploymentException</a></th>
+<td class="colLast">
+<div class="block">Checked exception indicating some kind of failure either to publish
+ an endpoint on its server, or a failure to connect a client to its server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/EncodeException.html#javax.websocket">EncodeException</a></th>
+<td class="colLast">
+<div class="block">A general exception that occurs when trying to encode a custom object to a string or binary message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Encoder.html#javax.websocket">Encoder</a></th>
+<td class="colLast">
+<div class="block">The Encoder interface defines how developers can provide a way to convert
+ their custom objects into web socket messages.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Endpoint.html#javax.websocket">Endpoint</a></th>
+<td class="colLast">
+<div class="block">The Web Socket Endpoint represents an object that can handle websocket conversations.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/EndpointConfig.html#javax.websocket">EndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The endpoint configuration contains all the information needed during the handshake process
+ for this end point.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Extension.html#javax.websocket">Extension</a></th>
+<td class="colLast">
+<div class="block">A simple representation of a websocket extension as a name and map of extension parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Extension.Parameter.html#javax.websocket">Extension.Parameter</a></th>
+<td class="colLast">
+<div class="block">This member interface defines a single websocket extension parameter.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/HandshakeResponse.html#javax.websocket">HandshakeResponse</a></th>
+<td class="colLast">
+<div class="block">The handshake response represents the web socket-defined Http response
+ that is the response to the opening handshake request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageHandler.html#javax.websocket">MessageHandler</a></th>
+<td class="colLast">
+<div class="block">Developers implement MessageHandlers in order to receive incoming messages
+ during a web socket conversation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageHandler.Partial.html#javax.websocket">MessageHandler.Partial</a></th>
+<td class="colLast">
+<div class="block">This kind of handler is notified by the implementation as it becomes ready
+ to deliver parts of a whole message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageHandler.Whole.html#javax.websocket">MessageHandler.Whole</a></th>
+<td class="colLast">
+<div class="block">This kind of handler is notified by the container on arrival of a complete message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/RemoteEndpoint.html#javax.websocket">RemoteEndpoint</a></th>
+<td class="colLast">
+<div class="block">The RemoteEndpoint object is supplied by the container and represents the 
+ 'other end' or peer of the Web Socket conversation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RemoteEndpoint.Async.html#javax.websocket">RemoteEndpoint.Async</a></th>
+<td class="colLast">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/RemoteEndpoint.Basic.html#javax.websocket">RemoteEndpoint.Basic</a></th>
+<td class="colLast">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/SendHandler.html#javax.websocket">SendHandler</a></th>
+<td class="colLast">
+<div class="block">A simple callback object for asynchronous sending of web socket messages.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SendResult.html#javax.websocket">SendResult</a></th>
+<td class="colLast">
+<div class="block">The result of asynchronously sending a web socket message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Session.html#javax.websocket">Session</a></th>
+<td class="colLast">
+<div class="block">A Web Socket session represents a conversation between two web socket endpoints.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketContainer.html#javax.websocket">WebSocketContainer</a></th>
+<td class="colLast">
+<div class="block">A WebSocketContainer is an implementation provided object that provides applications
+ a view on the container running it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket</a> used by <a href="server/package-summary.html">javax.websocket.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Decoder.html#javax.websocket.server">Decoder</a></th>
+<td class="colLast">
+<div class="block">The Decoder interface holds member interfaces that define how a developer can provide
+ the web socket container a way web socket messages into developer defined custom objects.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/DeploymentException.html#javax.websocket.server">DeploymentException</a></th>
+<td class="colLast">
+<div class="block">Checked exception indicating some kind of failure either to publish
+ an endpoint on its server, or a failure to connect a client to its server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Encoder.html#javax.websocket.server">Encoder</a></th>
+<td class="colLast">
+<div class="block">The Encoder interface defines how developers can provide a way to convert
+ their custom objects into web socket messages.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Endpoint.html#javax.websocket.server">Endpoint</a></th>
+<td class="colLast">
+<div class="block">The Web Socket Endpoint represents an object that can handle websocket conversations.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/EndpointConfig.html#javax.websocket.server">EndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The endpoint configuration contains all the information needed during the handshake process
+ for this end point.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Extension.html#javax.websocket.server">Extension</a></th>
+<td class="colLast">
+<div class="block">A simple representation of a websocket extension as a name and map of extension parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/HandshakeResponse.html#javax.websocket.server">HandshakeResponse</a></th>
+<td class="colLast">
+<div class="block">The handshake response represents the web socket-defined Http response
+ that is the response to the opening handshake request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketContainer.html#javax.websocket.server">WebSocketContainer</a></th>
+<td class="colLast">
+<div class="block">A WebSocketContainer is an implementation provided object that provides applications
+ a view on the container running it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket</a> used by <a href="../../org/glassfish/tyrus/client/package-summary.html">org.glassfish.tyrus.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEndpointConfig.html#org.glassfish.tyrus.client">ClientEndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The ClientEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to client endpoints.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/CloseReason.html#org.glassfish.tyrus.client">CloseReason</a></th>
+<td class="colLast">
+<div class="block">A class encapsulating the reason why a web socket has been closed, or why it is being asked to
+ close.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/DeploymentException.html#org.glassfish.tyrus.client">DeploymentException</a></th>
+<td class="colLast">
+<div class="block">Checked exception indicating some kind of failure either to publish
+ an endpoint on its server, or a failure to connect a client to its server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Endpoint.html#org.glassfish.tyrus.client">Endpoint</a></th>
+<td class="colLast">
+<div class="block">The Web Socket Endpoint represents an object that can handle websocket conversations.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Extension.html#org.glassfish.tyrus.client">Extension</a></th>
+<td class="colLast">
+<div class="block">A simple representation of a websocket extension as a name and map of extension parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Session.html#org.glassfish.tyrus.client">Session</a></th>
+<td class="colLast">
+<div class="block">A Web Socket session represents a conversation between two web socket endpoints.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketContainer.html#org.glassfish.tyrus.client">WebSocketContainer</a></th>
+<td class="colLast">
+<div class="block">A WebSocketContainer is an implementation provided object that provides applications
+ a view on the container running it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.container.grizzly.client">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket</a> used by <a href="../../org/glassfish/tyrus/container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEndpointConfig.html#org.glassfish.tyrus.container.grizzly.client">ClientEndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The ClientEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to client endpoints.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ContainerProvider.html#org.glassfish.tyrus.container.grizzly.client">ContainerProvider</a></th>
+<td class="colLast">
+<div class="block">Provider class that allows the developer to get a reference to
+ the implementation of the WebSocketContainer.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/DeploymentException.html#org.glassfish.tyrus.container.grizzly.client">DeploymentException</a></th>
+<td class="colLast">
+<div class="block">Checked exception indicating some kind of failure either to publish
+ an endpoint on its server, or a failure to connect a client to its server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketContainer.html#org.glassfish.tyrus.container.grizzly.client">WebSocketContainer</a></th>
+<td class="colLast">
+<div class="block">A WebSocketContainer is an implementation provided object that provides applications
+ a view on the container running it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket</a> used by <a href="../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/CloseReason.html#org.glassfish.tyrus.core">CloseReason</a></th>
+<td class="colLast">
+<div class="block">A class encapsulating the reason why a web socket has been closed, or why it is being asked to
+ close.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/CloseReason.CloseCode.html#org.glassfish.tyrus.core">CloseReason.CloseCode</a></th>
+<td class="colLast">
+<div class="block">A marker interface for the close codes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Decoder.html#org.glassfish.tyrus.core">Decoder</a></th>
+<td class="colLast">
+<div class="block">The Decoder interface holds member interfaces that define how a developer can provide
+ the web socket container a way web socket messages into developer defined custom objects.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/DeploymentException.html#org.glassfish.tyrus.core">DeploymentException</a></th>
+<td class="colLast">
+<div class="block">Checked exception indicating some kind of failure either to publish
+ an endpoint on its server, or a failure to connect a client to its server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/EncodeException.html#org.glassfish.tyrus.core">EncodeException</a></th>
+<td class="colLast">
+<div class="block">A general exception that occurs when trying to encode a custom object to a string or binary message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Encoder.html#org.glassfish.tyrus.core">Encoder</a></th>
+<td class="colLast">
+<div class="block">The Encoder interface defines how developers can provide a way to convert
+ their custom objects into web socket messages.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Endpoint.html#org.glassfish.tyrus.core">Endpoint</a></th>
+<td class="colLast">
+<div class="block">The Web Socket Endpoint represents an object that can handle websocket conversations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/EndpointConfig.html#org.glassfish.tyrus.core">EndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The endpoint configuration contains all the information needed during the handshake process
+ for this end point.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Extension.html#org.glassfish.tyrus.core">Extension</a></th>
+<td class="colLast">
+<div class="block">A simple representation of a websocket extension as a name and map of extension parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Extension.Parameter.html#org.glassfish.tyrus.core">Extension.Parameter</a></th>
+<td class="colLast">
+<div class="block">This member interface defines a single websocket extension parameter.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/HandshakeResponse.html#org.glassfish.tyrus.core">HandshakeResponse</a></th>
+<td class="colLast">
+<div class="block">The handshake response represents the web socket-defined Http response
+ that is the response to the opening handshake request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageHandler.html#org.glassfish.tyrus.core">MessageHandler</a></th>
+<td class="colLast">
+<div class="block">Developers implement MessageHandlers in order to receive incoming messages
+ during a web socket conversation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageHandler.Partial.html#org.glassfish.tyrus.core">MessageHandler.Partial</a></th>
+<td class="colLast">
+<div class="block">This kind of handler is notified by the implementation as it becomes ready
+ to deliver parts of a whole message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageHandler.Whole.html#org.glassfish.tyrus.core">MessageHandler.Whole</a></th>
+<td class="colLast">
+<div class="block">This kind of handler is notified by the container on arrival of a complete message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RemoteEndpoint.html#org.glassfish.tyrus.core">RemoteEndpoint</a></th>
+<td class="colLast">
+<div class="block">The RemoteEndpoint object is supplied by the container and represents the 
+ 'other end' or peer of the Web Socket conversation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/RemoteEndpoint.Async.html#org.glassfish.tyrus.core">RemoteEndpoint.Async</a></th>
+<td class="colLast">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RemoteEndpoint.Basic.html#org.glassfish.tyrus.core">RemoteEndpoint.Basic</a></th>
+<td class="colLast">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SendHandler.html#org.glassfish.tyrus.core">SendHandler</a></th>
+<td class="colLast">
+<div class="block">A simple callback object for asynchronous sending of web socket messages.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Session.html#org.glassfish.tyrus.core">Session</a></th>
+<td class="colLast">
+<div class="block">A Web Socket session represents a conversation between two web socket endpoints.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketContainer.html#org.glassfish.tyrus.core">WebSocketContainer</a></th>
+<td class="colLast">
+<div class="block">A WebSocketContainer is an implementation provided object that provides applications
+ a view on the container running it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket</a> used by <a href="../../org/glassfish/tyrus/core/cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/CloseReason.html#org.glassfish.tyrus.core.cluster">CloseReason</a></th>
+<td class="colLast">
+<div class="block">A class encapsulating the reason why a web socket has been closed, or why it is being asked to
+ close.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Extension.html#org.glassfish.tyrus.core.cluster">Extension</a></th>
+<td class="colLast">
+<div class="block">A simple representation of a websocket extension as a name and map of extension parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageHandler.html#org.glassfish.tyrus.core.cluster">MessageHandler</a></th>
+<td class="colLast">
+<div class="block">Developers implement MessageHandlers in order to receive incoming messages
+ during a web socket conversation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageHandler.Partial.html#org.glassfish.tyrus.core.cluster">MessageHandler.Partial</a></th>
+<td class="colLast">
+<div class="block">This kind of handler is notified by the implementation as it becomes ready
+ to deliver parts of a whole message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageHandler.Whole.html#org.glassfish.tyrus.core.cluster">MessageHandler.Whole</a></th>
+<td class="colLast">
+<div class="block">This kind of handler is notified by the container on arrival of a complete message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/RemoteEndpoint.Async.html#org.glassfish.tyrus.core.cluster">RemoteEndpoint.Async</a></th>
+<td class="colLast">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RemoteEndpoint.Basic.html#org.glassfish.tyrus.core.cluster">RemoteEndpoint.Basic</a></th>
+<td class="colLast">
+<div class="block">This representation of the peer of a web socket conversation has the ability
+ to send messages synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SendHandler.html#org.glassfish.tyrus.core.cluster">SendHandler</a></th>
+<td class="colLast">
+<div class="block">A simple callback object for asynchronous sending of web socket messages.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Session.html#org.glassfish.tyrus.core.cluster">Session</a></th>
+<td class="colLast">
+<div class="block">A Web Socket session represents a conversation between two web socket endpoints.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketContainer.html#org.glassfish.tyrus.core.cluster">WebSocketContainer</a></th>
+<td class="colLast">
+<div class="block">A WebSocketContainer is an implementation provided object that provides applications
+ a view on the container running it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.coder">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket</a> used by <a href="../../org/glassfish/tyrus/core/coder/package-summary.html">org.glassfish.tyrus.core.coder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/DecodeException.html#org.glassfish.tyrus.core.coder">DecodeException</a></th>
+<td class="colLast">
+<div class="block">A general exception that occurs when trying to decode a custom object from a text or binary message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Decoder.html#org.glassfish.tyrus.core.coder">Decoder</a></th>
+<td class="colLast">
+<div class="block">The Decoder interface holds member interfaces that define how a developer can provide
+ the web socket container a way web socket messages into developer defined custom objects.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Decoder.Binary.html#org.glassfish.tyrus.core.coder">Decoder.Binary</a></th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object (of type T) is decoded from a web socket message in
+ the form of a byte buffer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Decoder.Text.html#org.glassfish.tyrus.core.coder">Decoder.Text</a></th>
+<td class="colLast">
+<div class="block">This interface defines how a custom object is decoded from a web socket message in
+ the form of a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/EncodeException.html#org.glassfish.tyrus.core.coder">EncodeException</a></th>
+<td class="colLast">
+<div class="block">A general exception that occurs when trying to encode a custom object to a string or binary message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Encoder.html#org.glassfish.tyrus.core.coder">Encoder</a></th>
+<td class="colLast">
+<div class="block">The Encoder interface defines how developers can provide a way to convert
+ their custom objects into web socket messages.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Encoder.Binary.html#org.glassfish.tyrus.core.coder">Encoder.Binary</a></th>
+<td class="colLast">
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a binary message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Encoder.Text.html#org.glassfish.tyrus.core.coder">Encoder.Text</a></th>
+<td class="colLast">
+<div class="block">This interface defines how to provide a way to convert a custom
+ object into a text message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/EndpointConfig.html#org.glassfish.tyrus.core.coder">EndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The endpoint configuration contains all the information needed during the handshake process
+ for this end point.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.extension">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket</a> used by <a href="../../org/glassfish/tyrus/core/extension/package-summary.html">org.glassfish.tyrus.core.extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Extension.html#org.glassfish.tyrus.core.extension">Extension</a></th>
+<td class="colLast">
+<div class="block">A simple representation of a websocket extension as a name and map of extension parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Extension.Parameter.html#org.glassfish.tyrus.core.extension">Extension.Parameter</a></th>
+<td class="colLast">
+<div class="block">This member interface defines a single websocket extension parameter.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.frame">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket</a> used by <a href="../../org/glassfish/tyrus/core/frame/package-summary.html">org.glassfish.tyrus.core.frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/CloseReason.html#org.glassfish.tyrus.core.frame">CloseReason</a></th>
+<td class="colLast">
+<div class="block">A class encapsulating the reason why a web socket has been closed, or why it is being asked to
+ close.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket</a> used by <a href="../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEndpointConfig.html#org.glassfish.tyrus.server">ClientEndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The ClientEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to client endpoints.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/DeploymentException.html#org.glassfish.tyrus.server">DeploymentException</a></th>
+<td class="colLast">
+<div class="block">Checked exception indicating some kind of failure either to publish
+ an endpoint on its server, or a failure to connect a client to its server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Endpoint.html#org.glassfish.tyrus.server">Endpoint</a></th>
+<td class="colLast">
+<div class="block">The Web Socket Endpoint represents an object that can handle websocket conversations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Extension.html#org.glassfish.tyrus.server">Extension</a></th>
+<td class="colLast">
+<div class="block">A simple representation of a websocket extension as a name and map of extension parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Session.html#org.glassfish.tyrus.server">Session</a></th>
+<td class="colLast">
+<div class="block">A Web Socket session represents a conversation between two web socket endpoints.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketContainer.html#org.glassfish.tyrus.server">WebSocketContainer</a></th>
+<td class="colLast">
+<div class="block">A WebSocketContainer is an implementation provided object that provides applications
+ a view on the container running it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket</a> used by <a href="../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEndpointConfig.html#org.glassfish.tyrus.spi">ClientEndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The ClientEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to client endpoints.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/CloseReason.html#org.glassfish.tyrus.spi">CloseReason</a></th>
+<td class="colLast">
+<div class="block">A class encapsulating the reason why a web socket has been closed, or why it is being asked to
+ close.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/DeploymentException.html#org.glassfish.tyrus.spi">DeploymentException</a></th>
+<td class="colLast">
+<div class="block">Checked exception indicating some kind of failure either to publish
+ an endpoint on its server, or a failure to connect a client to its server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/HandshakeResponse.html#org.glassfish.tyrus.spi">HandshakeResponse</a></th>
+<td class="colLast">
+<div class="block">The handshake response represents the web socket-defined Http response
+ that is the response to the opening handshake request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketContainer.html#org.glassfish.tyrus.spi">WebSocketContainer</a></th>
+<td class="colLast">
+<div class="block">A WebSocketContainer is an implementation provided object that provides applications
+ a view on the container running it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../index-all.html">Index</a></li>
+<li><a href="../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/HandshakeRequest.html b/apidocs/1.20/javax/websocket/server/HandshakeRequest.html
new file mode 100644
index 00000000..f7e837a8
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/HandshakeRequest.html
@@ -0,0 +1,522 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>HandshakeRequest (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="HandshakeRequest (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HandshakeRequest.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket.server</a></div>
+<h2 title="Interface HandshakeRequest" class="title">Interface HandshakeRequest</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../../org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></code>, <code><a href="../../../org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">HandshakeRequest</span></pre>
+<div class="block">The handshake request represents the web socket defined Http GET request 
+ for the opening handshake of a web socket session.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SEC_WEBSOCKET_EXTENSIONS">SEC_WEBSOCKET_EXTENSIONS</a></span></code></th>
+<td class="colLast">
+<div class="block">The Sec-WebSocket-Extensions header name</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SEC_WEBSOCKET_KEY">SEC_WEBSOCKET_KEY</a></span></code></th>
+<td class="colLast">
+<div class="block">The Sec-WebSocket-Key header name</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SEC_WEBSOCKET_PROTOCOL">SEC_WEBSOCKET_PROTOCOL</a></span></code></th>
+<td class="colLast">
+<div class="block">The Sec-WebSocket-Protocol header name</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SEC_WEBSOCKET_VERSION">SEC_WEBSOCKET_VERSION</a></span></code></th>
+<td class="colLast">
+<div class="block">The Sec-WebSocket-Version header name</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the read only Map of Http Headers that came with the handshake request.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.Object</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHttpSession()">getHttpSession</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a reference to the HttpSession that the web socket handshake that 
+ started this conversation was part of, if the implementation
+ is part of a Java EE web container.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameterMap()">getParameterMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the request parameters associated with the request.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueryString()">getQueryString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the query string associated with the request.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.net.URI</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestURI()">getRequestURI</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the request URI of the handshake request.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>java.security.Principal</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUserPrincipal()">getUserPrincipal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the authenticated user or <code>null</code> if no user is authenticated 
+ for this handshake.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isUserInRole(java.lang.String)">isUserInRole</a></span>&#8203;(java.lang.String&nbsp;role)</code></th>
+<td class="colLast">
+<div class="block">Checks whether the current user is in the given role.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="SEC_WEBSOCKET_KEY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SEC_WEBSOCKET_KEY</h4>
+<pre>static final&nbsp;java.lang.String SEC_WEBSOCKET_KEY</pre>
+<div class="block">The Sec-WebSocket-Key header name</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#javax.websocket.server.HandshakeRequest.SEC_WEBSOCKET_KEY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SEC_WEBSOCKET_PROTOCOL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SEC_WEBSOCKET_PROTOCOL</h4>
+<pre>static final&nbsp;java.lang.String SEC_WEBSOCKET_PROTOCOL</pre>
+<div class="block">The Sec-WebSocket-Protocol header name</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#javax.websocket.server.HandshakeRequest.SEC_WEBSOCKET_PROTOCOL">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SEC_WEBSOCKET_VERSION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SEC_WEBSOCKET_VERSION</h4>
+<pre>static final&nbsp;java.lang.String SEC_WEBSOCKET_VERSION</pre>
+<div class="block">The Sec-WebSocket-Version header name</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#javax.websocket.server.HandshakeRequest.SEC_WEBSOCKET_VERSION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SEC_WEBSOCKET_EXTENSIONS">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SEC_WEBSOCKET_EXTENSIONS</h4>
+<pre>static final&nbsp;java.lang.String SEC_WEBSOCKET_EXTENSIONS</pre>
+<div class="block">The Sec-WebSocket-Extensions header name</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#javax.websocket.server.HandshakeRequest.SEC_WEBSOCKET_EXTENSIONS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature">java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;&nbsp;getHeaders()</pre>
+<div class="block">Return the read only Map of Http Headers that came with the handshake request. The header names
+ are case insensitive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list of headers.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUserPrincipal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPrincipal</h4>
+<pre class="methodSignature">java.security.Principal&nbsp;getUserPrincipal()</pre>
+<div class="block">Return the authenticated user or <code>null</code> if no user is authenticated 
+ for this handshake.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the user principal.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestURI()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestURI</h4>
+<pre class="methodSignature">java.net.URI&nbsp;getRequestURI()</pre>
+<div class="block">Return the request URI of the handshake request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the request uri of the handshake request.</dd>
+</dl>
+</li>
+</ul>
+<a id="isUserInRole(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isUserInRole</h4>
+<pre class="methodSignature">boolean&nbsp;isUserInRole&#8203;(java.lang.String&nbsp;role)</pre>
+<div class="block">Checks whether the current user is in the given role.  Roles and role 
+ membership can be defined using deployment descriptors of the containing
+ WAR file, if running in a Java EE web container. If the user has 
+ not been authenticated, the method returns <code>false</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>role</code> - the role being checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether the authenticated user is in the role, or false if the user has not
+ been authenticated.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHttpSession()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHttpSession</h4>
+<pre class="methodSignature">java.lang.Object&nbsp;getHttpSession()</pre>
+<div class="block">Return a reference to the HttpSession that the web socket handshake that 
+ started this conversation was part of, if the implementation
+ is part of a Java EE web container.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the http session or <code>null</code> if either the websocket
+ implementation is not part of a Java EE web container, or there is
+ no HttpSession associated with the opening handshake request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getParameterMap()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameterMap</h4>
+<pre class="methodSignature">java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;&nbsp;getParameterMap()</pre>
+<div class="block">Return the request parameters associated with the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the unmodifiable map of the request parameters.</dd>
+</dl>
+</li>
+</ul>
+<a id="getQueryString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getQueryString</h4>
+<pre class="methodSignature">java.lang.String&nbsp;getQueryString()</pre>
+<div class="block">Return the query string associated with the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the query string.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HandshakeRequest.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/PathParam.html b/apidocs/1.20/javax/websocket/server/PathParam.html
new file mode 100644
index 00000000..dc7a498e
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/PathParam.html
@@ -0,0 +1,287 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PathParam (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PathParam (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket.server</a></div>
+<h2 title="Annotation Type PathParam" class="title">Annotation Type PathParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>@Retention(RUNTIME)
+@Target(PARAMETER)
+public @interface <span class="memberNameLabel">PathParam</span></pre>
+<div class="block">This annotation may be used to annotate method parameters on server endpoints
+ where a URI-template has been used in the path-mapping of the <a href="ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>
+ annotation. The method parameter may be of type String, any Java primitive
+ type or any boxed version thereof. If a client URI matches the URI-template,
+ but the requested path parameter cannot be decoded, then the websocket's error
+ handler will be called.
+
+ <p>For example:-
+ <pre><code>
+ &#64;ServerEndpoint("/bookings/{guest-id}")
+ public class BookingServer {
+ 
+     &#64;OnMessage
+     public void processBookingRequest(@PathParam("guest-id") String guestID, String message, Session session) {
+         // process booking from the given guest here
+     }
+ }
+ </code></pre>
+ 
+ <p>For example:-
+ <pre><code>
+ &#64;ServerEndpoint("/rewards/{vip-level}")
+ public class RewardServer {
+ 
+     &#64;OnMessage
+     public void processReward(@PathParam("vip-level") Integer vipLevel, String message, Session session) {
+         // process reward here
+     }
+ }
+ </code></pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">The name of the variable used in the URI-template.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre>java.lang.String&nbsp;value</pre>
+<div class="block">The name of the variable used in the URI-template. If the name does
+ not match a path variable in the URI-template, the value of the method parameter
+ this annotation annotates is <code>null</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the name of the variable used in the URI-template.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathParam.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/ServerApplicationConfig.html b/apidocs/1.20/javax/websocket/server/ServerApplicationConfig.html
new file mode 100644
index 00000000..28c330a2
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/ServerApplicationConfig.html
@@ -0,0 +1,312 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerApplicationConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServerApplicationConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerApplicationConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket.server</a></div>
+<h2 title="Interface ServerApplicationConfig" class="title">Interface ServerApplicationConfig</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../../org/glassfish/tyrus/server/TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server">TyrusServerConfiguration</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ServerApplicationConfig</span></pre>
+<div class="block">Developers include implementations of ServerApplicationConfig in an archive containing
+ websocket endpoints (WAR file, or JAR file within the WAR file) in order to specify the websocket 
+ endpoints within the archive the implementation must deploy. There is a separate
+ method for programmatic endpoints and for annotated endpoints.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAnnotatedEndpointClasses(java.util.Set)">getAnnotatedEndpointClasses</a></span>&#8203;(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;scanned)</code></th>
+<td class="colLast">
+<div class="block">Return a set of annotated endpoint classes that the server container
+ must deploy.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEndpointConfigs(java.util.Set)">getEndpointConfigs</a></span>&#8203;(java.util.Set&lt;java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&gt;&nbsp;endpointClasses)</code></th>
+<td class="colLast">
+<div class="block">Return a set of ServerEndpointConfig instances that the server container
+ will use to deploy the programmatic endpoints.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getEndpointConfigs(java.util.Set)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEndpointConfigs</h4>
+<pre class="methodSignature">java.util.Set&lt;<a href="ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&gt;&nbsp;getEndpointConfigs&#8203;(java.util.Set&lt;java.lang.Class&lt;? extends <a href="../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&gt;&nbsp;endpointClasses)</pre>
+<div class="block">Return a set of ServerEndpointConfig instances that the server container
+ will use to deploy the programmatic endpoints. The set of Endpoint classes passed in to this method is
+ the set obtained by scanning the archive containing the implementation
+ of this ServerApplicationConfig. This set passed in
+ may be used the build the set of ServerEndpointConfig instances
+ to return to the container for deployment.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClasses</code> - the set of all the Endpoint classes in the archive containing
+                the implementation of this interface.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the non-null set of ServerEndpointConfig s to deploy on the server, using the empty set to
+ indicate none.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAnnotatedEndpointClasses(java.util.Set)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getAnnotatedEndpointClasses</h4>
+<pre class="methodSignature">java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;getAnnotatedEndpointClasses&#8203;(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;scanned)</pre>
+<div class="block">Return a set of annotated endpoint classes that the server container
+ must deploy. The set of classes passed in to this method is
+ the set obtained by scanning the archive containing the implementation
+ of this interface. Therefore, this set passed in contains all the annotated endpoint classes
+ in the JAR or WAR file containing the implementation of this interface. This set passed in
+ may be used the build the set to return to the container for deployment.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>scanned</code> - the set of all the annotated endpoint classes in the archive containing
+                the implementation of this interface.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the non-null set of annotated endpoint classes to deploy on the server, using the empty
+ set to indicate none.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerApplicationConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/ServerContainer.html b/apidocs/1.20/javax/websocket/server/ServerContainer.html
new file mode 100644
index 00000000..72614b7b
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/ServerContainer.html
@@ -0,0 +1,334 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServerContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket.server</a></div>
+<h2 title="Interface ServerContainer" class="title">Interface ServerContainer</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="../../../org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../../../org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ServerContainer</span>
+extends <a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></pre>
+<div class="block">The ServerContainer is the specialized view of the WebSocketContainer available
+ in server-side deployments. There is one ServerContainer instance per
+ websocket application. The ServerContainer holds the methods to be able to
+ register server endpoints during the initialization phase of the application.
+ <p>For websocket enabled web containers, developers may
+ obtain a reference to the ServerContainer instance by retrieving it as an
+ attribute named <code>javax.websocket.server.ServerContainer</code> on the 
+ ServletContext. This way, the registration methods held on this interface
+ may be called to register server endpoints from a ServletContextListener 
+ during the deployment of the WAR file containing the endpoint. 
+ </p>
+ <p>WebSocket
+ implementations that run outside the web container may have other means
+ by which to provide a ServerContainer instance to the developer at application
+ deployment time. 
+ </p>
+ <p>Once the 
+ application deployment phase is complete, and the websocket application has
+ begun accepting incoming connections, the registration methods may no
+ longer be called.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addEndpoint(java.lang.Class)">addEndpoint</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass)</code></th>
+<td class="colLast">
+<div class="block">Deploys the given annotated endpoint into this ServerContainer during the
+ initialization phase of deploying the application.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addEndpoint(javax.websocket.server.ServerEndpointConfig)">addEndpoint</a></span>&#8203;(<a href="ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverConfig)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.WebSocketContainer">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></h3>
+<code><a href="../WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a>, <a href="../WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a>, <a href="../WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a>, <a href="../WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a>, <a href="../WebSocketContainer.html#getDefaultAsyncSendTimeout()">getDefaultAsyncSendTimeout</a>, <a href="../WebSocketContainer.html#getDefaultMaxBinaryMessageBufferSize()">getDefaultMaxBinaryMessageBufferSize</a>, <a href="../WebSocketContainer.html#getDefaultMaxSessionIdleTimeout()">getDefaultMaxSessionIdleTimeout</a>, <a href="../WebSocketContainer.html#getDefaultMaxTextMessageBufferSize()">getDefaultMaxTextMessageBufferSize</a>, <a href="../WebSocketContainer.html#getInstalledExtensions()">getInstalledExtensions</a>, <a href="../WebSocketContainer.html#setAsyncSendTimeout(long)">setAsyncSendTimeout</a>, <a href="../WebSocketContainer.html#setDefaultMaxBinaryMessageBufferSize(int)">setDefaultMaxBinaryMessageBufferSize</a>, <a href="../WebSocketContainer.html#setDefaultMaxSessionIdleTimeout(long)">setDefaultMaxSessionIdleTimeout</a>, <a href="../WebSocketContainer.html#setDefaultMaxTextMessageBufferSize(int)">setDefaultMaxTextMessageBufferSize</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="addEndpoint(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addEndpoint</h4>
+<pre class="methodSignature">void&nbsp;addEndpoint&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass)
+          throws <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Deploys the given annotated endpoint into this ServerContainer during the
+ initialization phase of deploying the application.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - the class of the annotated endpoint</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the annotated endpoint was badly formed.</dd>
+<dd><code>java.lang.IllegalStateException</code> - if the containing websocket application has already
+ been deployed.</dd>
+</dl>
+</li>
+</ul>
+<a id="addEndpoint(javax.websocket.server.ServerEndpointConfig)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>addEndpoint</h4>
+<pre class="methodSignature">void&nbsp;addEndpoint&#8203;(<a href="ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverConfig)
+          throws <a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serverConfig</code> - the configuration instance representing the logical endpoint
+ that will be registered.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the endpoint was badly formed.</dd>
+<dd><code>java.lang.IllegalStateException</code> - if the containing websocket application has already
+ been deployed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/ServerEndpoint.html b/apidocs/1.20/javax/websocket/server/ServerEndpoint.html
new file mode 100644
index 00000000..ac6591cb
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/ServerEndpoint.html
@@ -0,0 +1,434 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerEndpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServerEndpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket.server</a></div>
+<h2 title="Annotation Type ServerEndpoint" class="title">Annotation Type ServerEndpoint</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>@Retention(RUNTIME)
+@Target(TYPE)
+public @interface <span class="memberNameLabel">ServerEndpoint</span></pre>
+<div class="block">This class level annotation declares that the class it decorates
+ is a web socket endpoint that will be deployed and made available in the URI-space
+ of a web socket server. The annotation allows the developer to
+ define the URL (or URI template) which this endpoint will be published, and other
+ important properties of the endpoint to the websocket runtime, such as the encoders
+ it uses to send messages.
+
+ <p>The annotated class
+ must have a public no-arg constructor.
+
+ <p>For example:
+ <pre><code>
+ &#64;ServerEndpoint("/hello");
+ public class HelloServer {
+
+     &#64;OnMessage
+     public void processGreeting(String message, Session session) {
+         System.out.println("Greeting received:" + message);
+     }
+
+ }
+ </code></pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI or URI-template, level-1 (<a href="http://http://tools.ietf.org/html/rfc6570">See RFC 6570</a>) where the endpoint will be deployed.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.optional.element.summary">
+<!--   -->
+</a>
+<h3>Optional Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Optional Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configurator()">configurator</a></span></code></th>
+<td class="colLast">
+<div class="block">The optional custom configurator class that the developer would like to use
+ to further configure new instances of this endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decoders()">decoders</a></span></code></th>
+<td class="colLast">
+<div class="block">The ordered array of decoder classes this endpoint will use.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encoders()">encoders</a></span></code></th>
+<td class="colLast">
+<div class="block">The ordered array of encoder classes this endpoint will use.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.String[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#subprotocols()">subprotocols</a></span></code></th>
+<td class="colLast">
+<div class="block">The ordered array of web socket protocols this endpoint supports.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre>java.lang.String&nbsp;value</pre>
+<div class="block">The URI or URI-template, level-1 (<a href="http://http://tools.ietf.org/html/rfc6570">See RFC 6570</a>) where the endpoint will be deployed. The URI us relative to the
+ root of the web socket container and must begin with a leading "/". Trailing "/"'s are ignored. Examples:
+ <pre><code>
+ &#64;ServerEndpoint("/chat")
+ &#64;ServerEndpoint("/chat/{user}")
+ &#64;ServerEndpoint("/booking/{privilege-level}")
+ </code></pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI or URI-template</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="subprotocols()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>subprotocols</h4>
+<pre>java.lang.String[]&nbsp;subprotocols</pre>
+<div class="block">The ordered array of web socket protocols this endpoint supports.
+ For example, {"superchat", "chat"}.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the subprotocols.</dd>
+</dl>
+<dl>
+<dt>Default:</dt>
+<dd>{}</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="decoders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decoders</h4>
+<pre>java.lang.Class&lt;? extends <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;[]&nbsp;decoders</pre>
+<div class="block">The ordered array of decoder classes this endpoint will use. For example,
+ if the developer has provided a MysteryObject decoder, this endpoint will be able to
+ receive MysteryObjects as web socket messages. The websocket runtime will use the first
+ decoder in the list able to decode a message, ignoring the remaining decoders.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoders.</dd>
+</dl>
+<dl>
+<dt>Default:</dt>
+<dd>{}</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="encoders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encoders</h4>
+<pre>java.lang.Class&lt;? extends <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;[]&nbsp;encoders</pre>
+<div class="block">The ordered array of encoder classes this endpoint will use. For example,
+ if the developer has provided a MysteryObject encoder, this class will be able to
+ send web socket messages in the form of MysteryObjects. The websocket runtime will use the first
+ encoder in the list able to encode a message, ignoring the remaining encoders.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the encoders.</dd>
+</dl>
+<dl>
+<dt>Default:</dt>
+<dd>{}</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="configurator()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>configurator</h4>
+<pre>java.lang.Class&lt;? extends <a href="ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&gt;&nbsp;configurator</pre>
+<div class="block">The optional custom configurator class that the developer would like to use
+ to further configure new instances of this endpoint. If no configurator
+ class is provided, the implementation uses its own.  The implementation
+ creates a new instance of the configurator per logical endpoint.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the custom configuration class, or ServerEndpointConfig.Configurator.class
+ if none was set in the annotation.</dd>
+</dl>
+<dl>
+<dt>Default:</dt>
+<dd>javax.websocket.server.ServerEndpointConfig.Configurator.class</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/ServerEndpointConfig.Builder.html b/apidocs/1.20/javax/websocket/server/ServerEndpointConfig.Builder.html
new file mode 100644
index 00000000..8d5ddee5
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/ServerEndpointConfig.Builder.html
@@ -0,0 +1,453 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerEndpointConfig.Builder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServerEndpointConfig.Builder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerEndpointConfig.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket.server</a></div>
+<h2 title="Class ServerEndpointConfig.Builder" class="title">Class ServerEndpointConfig.Builder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.server.ServerEndpointConfig.Builder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></dd>
+</dl>
+<hr>
+<pre>public static final class <span class="typeNameLabel">ServerEndpointConfig.Builder</span>
+extends java.lang.Object</pre>
+<div class="block">The ServerEndpointConfig.Builder is a class used for creating
+ <a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Builder</code></a> objects for the purposes of
+ deploying a server endpoint.
+
+ <p>Here are some examples:
+
+ <p>Building a plain configuration for an endpoint with just a path.
+ <pre><code>
+ ServerEndpointConfig config = ServerEndpointConfig.Builder.create(ProgrammaticEndpoint.class, "/foo").build();
+ </code></pre>
+ 
+ <p>Building a configuration with no subprotocols and a custom configurator.
+ <pre><code>
+ ServerEndpointConfig config = ServerEndpointConfig.Builder.create(ProgrammaticEndpoint.class, "/bar")
+         .subprotocols(subprotocols)
+         .configurator(new MyServerConfigurator())
+         .build();
+ </code></pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builds the configuration object using the current attributes
+ that have been set on this builder object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configurator(javax.websocket.server.ServerEndpointConfig.Configurator)">configurator</a></span>&#8203;(<a href="ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;serverEndpointConfigurator)</code></th>
+<td class="colLast">
+<div class="block">Sets the custom configurator to use on the configuration
+ object built by this builder.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(java.lang.Class,java.lang.String)">create</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass,
+      java.lang.String&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Creates the builder with the mandatory information of the endpoint class 
+ (programmatic or annotated), the relative URI or URI-template to use,
+ and with no subprotocols, extensions, encoders, decoders or custom
+ configurator.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decoders(java.util.List)">decoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoders)</code></th>
+<td class="colLast">
+<div class="block">Sets the decoder implementation classes to use in the configuration.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encoders(java.util.List)">encoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;&nbsp;encoders)</code></th>
+<td class="colLast">
+<div class="block">Sets the list of encoder implementation classes for this builder.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#extensions(java.util.List)">extensions</a></span>&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Sets the extensions to use in the configuration.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#subprotocols(java.util.List)">subprotocols</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;subprotocols)</code></th>
+<td class="colLast">
+<div class="block">Sets the subprotocols to use in the configuration.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="create(java.lang.Class,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a>&nbsp;create&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass,
+                                                  java.lang.String&nbsp;path)</pre>
+<div class="block">Creates the builder with the mandatory information of the endpoint class 
+ (programmatic or annotated), the relative URI or URI-template to use,
+ and with no subprotocols, extensions, encoders, decoders or custom
+ configurator.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - the class of the endpoint to configure</dd>
+<dd><code>path</code> - The URI or URI template where the endpoint will be deployed.
+ A trailing "/" will be ignored and the path must begin with /.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new instance of ServerEndpointConfig.Builder</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public&nbsp;<a href="ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;build()</pre>
+<div class="block">Builds the configuration object using the current attributes
+ that have been set on this builder object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new ServerEndpointConfig object.</dd>
+</dl>
+</li>
+</ul>
+<a id="encoders(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encoders</h4>
+<pre class="methodSignature">public&nbsp;<a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a>&nbsp;encoders&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;&nbsp;encoders)</pre>
+<div class="block">Sets the list of encoder implementation classes for this builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>encoders</code> - the encoders</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder instance</dd>
+</dl>
+</li>
+</ul>
+<a id="decoders(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decoders</h4>
+<pre class="methodSignature">public&nbsp;<a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a>&nbsp;decoders&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoders)</pre>
+<div class="block">Sets the decoder implementation classes to use in the configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decoders</code> - the decoders</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="subprotocols(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>subprotocols</h4>
+<pre class="methodSignature">public&nbsp;<a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a>&nbsp;subprotocols&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;subprotocols)</pre>
+<div class="block">Sets the subprotocols to use in the configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>subprotocols</code> - the subprotocols.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder instance</dd>
+</dl>
+</li>
+</ul>
+<a id="extensions(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>extensions</h4>
+<pre class="methodSignature">public&nbsp;<a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a>&nbsp;extensions&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</pre>
+<div class="block">Sets the extensions to use in the configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>extensions</code> - the extensions to use.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="configurator(javax.websocket.server.ServerEndpointConfig.Configurator)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>configurator</h4>
+<pre class="methodSignature">public&nbsp;<a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a>&nbsp;configurator&#8203;(<a href="ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;serverEndpointConfigurator)</pre>
+<div class="block">Sets the custom configurator to use on the configuration
+ object built by this builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serverEndpointConfigurator</code> - the configurator</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder instance</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerEndpointConfig.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/ServerEndpointConfig.Configurator.html b/apidocs/1.20/javax/websocket/server/ServerEndpointConfig.Configurator.html
new file mode 100644
index 00000000..de70118e
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/ServerEndpointConfig.Configurator.html
@@ -0,0 +1,493 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerEndpointConfig.Configurator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServerEndpointConfig.Configurator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerEndpointConfig.Configurator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket.server</a></div>
+<h2 title="Class ServerEndpointConfig.Configurator" class="title">Class ServerEndpointConfig.Configurator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.server.ServerEndpointConfig.Configurator</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="../../../org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfigurator</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">ServerEndpointConfig.Configurator</span>
+extends java.lang.Object</pre>
+<div class="block">The ServerEndpointConfig.Configurator class may be extended by developers who want to
+ provide custom configuration algorithms, such as intercepting the opening handshake, or
+ providing arbitrary methods and algorithms that can be accessed from each endpoint
+ instance configured with this configurator.
+ 
+ The implementation must provide a platform default configurator loading using the service
+ loader.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Configurator</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkOrigin(java.lang.String)">checkOrigin</a></span>&#8203;(java.lang.String&nbsp;originHeaderValue)</code></th>
+<td class="colLast">
+<div class="block">Check the value of the Origin header (<a href="http://tools.ietf.org/html/rfc6454">See Origin Header</a>) the client passed during the opening
+ handshake.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEndpointInstance(java.lang.Class)">getEndpointInstance</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;endpointClass)</code></th>
+<td class="colLast">
+<div class="block">This method is called by the container each time a new client
+ connects to the logical endpoint this configurator configures.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNegotiatedExtensions(java.util.List,java.util.List)">getNegotiatedExtensions</a></span>&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;installed,
+                       java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;requested)</code></th>
+<td class="colLast">
+<div class="block">Return the ordered list of extensions that t server endpoint will support 
+ given the requested extension list passed in, the empty list if none.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNegotiatedSubprotocol(java.util.List,java.util.List)">getNegotiatedSubprotocol</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;supported,
+                        java.util.List&lt;java.lang.String&gt;&nbsp;requested)</code></th>
+<td class="colLast">
+<div class="block">Return the subprotocol the server endpoint has chosen from the requested
+ list supplied by a client who wishes to connect, or none if there wasn't one
+ this server endpoint liked.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">modifyHandshake</a></span>&#8203;(<a href="ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;sec,
+               <a href="HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a>&nbsp;request,
+               <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Called by the container after it has formulated a handshake response resulting from
+ a well-formed handshake request.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Configurator</h4>
+<pre>public&nbsp;Configurator()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getNegotiatedSubprotocol(java.util.List,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNegotiatedSubprotocol</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getNegotiatedSubprotocol&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;supported,
+                                                 java.util.List&lt;java.lang.String&gt;&nbsp;requested)</pre>
+<div class="block">Return the subprotocol the server endpoint has chosen from the requested
+ list supplied by a client who wishes to connect, or none if there wasn't one
+ this server endpoint liked. See
+ <a href="http://tools.ietf.org/html/rfc6455#section-4.2.2">Sending the 
+ Server's Opening Handshake</a>. Subclasses may provide custom algorithms 
+ based on other factors.
+
+ <p>The default platform implementation of this method returns the first
+ subprotocol in the list sent by the client that the server supports, 
+ or the empty string if there isn't one.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requested</code> - the requested subprotocols from the client endpoint</dd>
+<dd><code>supported</code> - the subprotocols supported by the server endpoint</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the negotiated subprotocol or the empty string if there isn't one.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNegotiatedExtensions(java.util.List,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNegotiatedExtensions</h4>
+<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;getNegotiatedExtensions&#8203;(java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;installed,
+                                                         java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;requested)</pre>
+<div class="block">Return the ordered list of extensions that t server endpoint will support 
+ given the requested extension list passed in, the empty list if none. See 
+ <a href="http://tools.ietf.org/html/rfc6455#section-9.1">Negotiating Extensions</a>
+
+ <p>The default platform implementation of this method returns a list
+ containing all of the requested extensions passed to this method that 
+ it supports, using the order in the requested extensions, the empty 
+ list if none.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>installed</code> - the installed extensions on the implementation.</dd>
+<dd><code>requested</code> - the requested extensions, in the order they were 
+ requested by the client</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list of extensions negotiated, the empty list if none.</dd>
+</dl>
+</li>
+</ul>
+<a id="checkOrigin(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkOrigin</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;checkOrigin&#8203;(java.lang.String&nbsp;originHeaderValue)</pre>
+<div class="block">Check the value of the Origin header (<a href="http://tools.ietf.org/html/rfc6454">See Origin Header</a>) the client passed during the opening
+ handshake.
+
+ <p>The platform default implementation of this method makes a check of the
+ validity of the Origin header sent along with 
+ the opening handshake following the recommendation at: 
+ <a href="http://tools.ietf.org/html/rfc6455#section-4.2">Sending 
+ the Server's Opening Handshake</a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>originHeaderValue</code> - the value of the origin header passed
+ by the client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether the check passed or not</dd>
+</dl>
+</li>
+</ul>
+<a id="modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>modifyHandshake</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;modifyHandshake&#8203;(<a href="ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;sec,
+                            <a href="HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a>&nbsp;request,
+                            <a href="../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>&nbsp;response)</pre>
+<div class="block">Called by the container after it has formulated a handshake response resulting from
+ a well-formed handshake request. The container has already 
+ checked that this configuration has a matching URI, determined the 
+ validity of the origin using the checkOrigin method, and filled
+ out the negotiated subprotocols and extensions based on this configuration.
+ Custom configurations may override this method in order to inspect
+ the request parameters and modify the handshake response that the server has formulated.
+ and the URI checking also.
+
+ <p>If the developer does not override this method, no further
+ modification of the request and response are made by the implementation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sec</code> - the configuration object involved in the handshake</dd>
+<dd><code>request</code> - the opening handshake request.</dd>
+<dd><code>response</code> - the proposed opening handshake response</dd>
+</dl>
+</li>
+</ul>
+<a id="getEndpointInstance(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEndpointInstance</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getEndpointInstance&#8203;(java.lang.Class&lt;T&gt;&nbsp;endpointClass)
+                          throws java.lang.InstantiationException</pre>
+<div class="block">This method is called by the container each time a new client
+ connects to the logical endpoint this configurator configures.
+ Developers may override this method to control instantiation of
+ endpoint instances in order to customize the initialization
+ of the endpoint instance, or manage them in some other way.
+ If the developer overrides this method, services like
+ dependency injection that are otherwise supported, for example, when
+ the implementation is part of the Java EE platform
+ may not be available. 
+ The platform default implementation of this method returns a new
+ endpoint instance per call, thereby ensuring that there is one
+ endpoint instance per client, the default deployment cardinality.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the endpoint</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - the class of the endpoint</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an instance of the endpoint that will handle all
+ interactions from a new client.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.InstantiationException</code> - if there was an error producing the
+ endpoint instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerEndpointConfig.Configurator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/ServerEndpointConfig.html b/apidocs/1.20/javax/websocket/server/ServerEndpointConfig.html
new file mode 100644
index 00000000..c5165600
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/ServerEndpointConfig.html
@@ -0,0 +1,415 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerEndpointConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServerEndpointConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerEndpointConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.websocket.server</a></div>
+<h2 title="Interface ServerEndpointConfig" class="title">Interface ServerEndpointConfig</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="../../../org/glassfish/tyrus/core/TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ServerEndpointConfig</span>
+extends <a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></pre>
+<div class="block">The ServerEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to server endpoints. For developers
+ deploying programmatic endpoints, ServerEndpointConfig objects
+ can be created using a <a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Builder</code></a>. Certain configuration
+ operations can be customized by providing a <a href="ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Configurator</code></a></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">The ServerEndpointConfig.Builder is a class used for creating
+ <a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Builder</code></a> objects for the purposes of
+ deploying a server endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></span></code></th>
+<td class="colLast">
+<div class="block">The ServerEndpointConfig.Configurator class may be extended by developers who want to
+ provide custom configuration algorithms, such as intercepting the opening handshake, or
+ providing arbitrary methods and algorithms that can be accessed from each endpoint
+ instance configured with this configurator.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfigurator()">getConfigurator</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the <a href="ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Configurator</code></a> this configuration
+ is using.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.Class&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEndpointClass()">getEndpointClass</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the Class of the endpoint this configuration is configuring.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExtensions()">getExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the websocket extensions configured.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPath()">getPath</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the path for this endpoint configuration.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.util.List&lt;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSubprotocols()">getSubprotocols</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the websocket subprotocols configured.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.EndpointConfig">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></h3>
+<code><a href="../EndpointConfig.html#getDecoders()">getDecoders</a>, <a href="../EndpointConfig.html#getEncoders()">getEncoders</a>, <a href="../EndpointConfig.html#getUserProperties()">getUserProperties</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getEndpointClass()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEndpointClass</h4>
+<pre class="methodSignature">java.lang.Class&lt;?&gt;&nbsp;getEndpointClass()</pre>
+<div class="block">Returns the Class of the endpoint this configuration is configuring. If 
+ the endpoint is an annotated endpoint, the value is the class of the Java class
+ annotated with @ServerEndpoint. if the endpoint is a programmatic, the value
+ is the class of the subclass of Endpoint.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the class of the endpoint, annotated or programmatic.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPath</h4>
+<pre class="methodSignature">java.lang.String&nbsp;getPath()</pre>
+<div class="block">Return the path for this endpoint configuration. The path is the URI or 
+ URI-template (level 1) relative to the websocket root of the server to which the 
+ endpoint using this configuration will be mapped. The path is always non-null
+ and always begins with a leading "/".</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the relative path for this configuration.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSubprotocols()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSubprotocols</h4>
+<pre class="methodSignature">java.util.List&lt;java.lang.String&gt;&nbsp;getSubprotocols()</pre>
+<div class="block">Return the websocket subprotocols configured.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list of subprotocols, the empty list if none</dd>
+</dl>
+</li>
+</ul>
+<a id="getExtensions()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExtensions</h4>
+<pre class="methodSignature">java.util.List&lt;<a href="../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;getExtensions()</pre>
+<div class="block">Return the websocket extensions configured.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list of extensions, the empty list if none.</dd>
+</dl>
+</li>
+</ul>
+<a id="getConfigurator()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConfigurator</h4>
+<pre class="methodSignature"><a href="ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;getConfigurator()</pre>
+<div class="block">Return the <a href="ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Configurator</code></a> this configuration
+ is using. If none was set by calling 
+ <a href="ServerEndpointConfig.Builder.html#configurator(javax.websocket.server.ServerEndpointConfig.Configurator)"><code>ServerEndpointConfig.Builder.configurator(javax.websocket.server.ServerEndpointConfig.Configurator)</code></a>
+ this methods returns the platform default configurator.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the configurator in use.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerEndpointConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/class-use/HandshakeRequest.html b/apidocs/1.20/javax/websocket/server/class-use/HandshakeRequest.html
new file mode 100644
index 00000000..bc0a2172
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/class-use/HandshakeRequest.html
@@ -0,0 +1,279 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.server.HandshakeRequest (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.server.HandshakeRequest (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HandshakeRequest.html" title="interface in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.server.HandshakeRequest" class="title">Uses of Interface<br>javax.websocket.server.HandshakeRequest</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a> in <a href="../package-summary.html">javax.websocket.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket.server</a> with parameters of type <a href="../HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Configurator.</span><code><span class="memberNameLink"><a href="../ServerEndpointConfig.Configurator.html#modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">modifyHandshake</a></span>&#8203;(<a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;sec,
+               <a href="../HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a>&nbsp;request,
+               <a href="../../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Called by the container after it has formulated a handshake response resulting from
+ a well-formed handshake request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a> in <a href="../../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> that implement <a href="../HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></span></code></th>
+<td class="colLast">
+<div class="block">Implementation of all possible request interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfigurator.</span><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html#modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">modifyHandshake</a></span>&#8203;(<a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;sec,
+               <a href="../HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a>&nbsp;request,
+               <a href="../../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a> in <a href="../../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a> that implement <a href="../HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></span></code></th>
+<td class="colLast">
+<div class="block">Abstraction for a HTTP upgrade request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HandshakeRequest.html" title="interface in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/class-use/PathParam.html b/apidocs/1.20/javax/websocket/server/class-use/PathParam.html
new file mode 100644
index 00000000..07644bd6
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/class-use/PathParam.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.server.PathParam (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.server.PathParam (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathParam.html" title="annotation in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.server.PathParam" class="title">Uses of Class<br>javax.websocket.server.PathParam</h2>
+</div>
+<div class="classUseContainer">No usage of javax.websocket.server.PathParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathParam.html" title="annotation in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/class-use/ServerApplicationConfig.html b/apidocs/1.20/javax/websocket/server/class-use/ServerApplicationConfig.html
new file mode 100644
index 00000000..64e2bda4
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/class-use/ServerApplicationConfig.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.server.ServerApplicationConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.server.ServerApplicationConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerApplicationConfig.html" title="interface in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.server.ServerApplicationConfig" class="title">Uses of Interface<br>javax.websocket.server.ServerApplicationConfig</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a> in <a href="../../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> that implement <a href="../ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/server/TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server">TyrusServerConfiguration</a></span></code></th>
+<td class="colLast">
+<div class="block">Container for either deployed <a href="../ServerApplicationConfig.html" title="interface in javax.websocket.server"><code>ServerApplicationConfig</code></a>s, if any, or deployed classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> with parameters of type <a href="../ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/server/TyrusServerContainer.html#%3Cinit%3E(javax.websocket.server.ServerApplicationConfig)">TyrusServerContainer</a></span>&#8203;(<a href="../ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a>&nbsp;serverApplicationConfig)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../../../../org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerContainer</code></a> using already created <a href="../ServerApplicationConfig.html" title="interface in javax.websocket.server"><code>ServerApplicationConfig</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerApplicationConfig.html" title="interface in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/class-use/ServerContainer.html b/apidocs/1.20/javax/websocket/server/class-use/ServerContainer.html
new file mode 100644
index 00000000..4c645175
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/class-use/ServerContainer.html
@@ -0,0 +1,228 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.server.ServerContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.server.ServerContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerContainer.html" title="interface in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.server.ServerContainer" class="title">Uses of Interface<br>javax.websocket.server.ServerContainer</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a> in <a href="../../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> that implement <a href="../ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></span></code></th>
+<td class="colLast">
+<div class="block">Server Container Implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a> in <a href="../../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a> in <a href="../../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP server abstraction.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerContainer.html" title="interface in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/class-use/ServerEndpoint.html b/apidocs/1.20/javax/websocket/server/class-use/ServerEndpoint.html
new file mode 100644
index 00000000..066a05b1
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/class-use/ServerEndpoint.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.server.ServerEndpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.server.ServerEndpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerEndpoint.html" title="annotation in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.server.ServerEndpoint" class="title">Uses of Class<br>javax.websocket.server.ServerEndpoint</h2>
+</div>
+<div class="classUseContainer">No usage of javax.websocket.server.ServerEndpoint</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerEndpoint.html" title="annotation in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/class-use/ServerEndpointConfig.Builder.html b/apidocs/1.20/javax/websocket/server/class-use/ServerEndpointConfig.Builder.html
new file mode 100644
index 00000000..580b1bcf
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/class-use/ServerEndpointConfig.Builder.html
@@ -0,0 +1,239 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.server.ServerEndpointConfig.Builder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.server.ServerEndpointConfig.Builder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.server.ServerEndpointConfig.Builder" class="title">Uses of Class<br>javax.websocket.server.ServerEndpointConfig.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a> in <a href="../package-summary.html">javax.websocket.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket.server</a> that return <a href="../ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ServerEndpointConfig.Builder.html#configurator(javax.websocket.server.ServerEndpointConfig.Configurator)">configurator</a></span>&#8203;(<a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;serverEndpointConfigurator)</code></th>
+<td class="colLast">
+<div class="block">Sets the custom configurator to use on the configuration
+ object built by this builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ServerEndpointConfig.Builder.html#create(java.lang.Class,java.lang.String)">create</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass,
+      java.lang.String&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Creates the builder with the mandatory information of the endpoint class 
+ (programmatic or annotated), the relative URI or URI-template to use,
+ and with no subprotocols, extensions, encoders, decoders or custom
+ configurator.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ServerEndpointConfig.Builder.html#decoders(java.util.List)">decoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../../Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoders)</code></th>
+<td class="colLast">
+<div class="block">Sets the decoder implementation classes to use in the configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ServerEndpointConfig.Builder.html#encoders(java.util.List)">encoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../../Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;&nbsp;encoders)</code></th>
+<td class="colLast">
+<div class="block">Sets the list of encoder implementation classes for this builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ServerEndpointConfig.Builder.html#extensions(java.util.List)">extensions</a></span>&#8203;(java.util.List&lt;<a href="../../Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Sets the extensions to use in the configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ServerEndpointConfig.Builder.html#subprotocols(java.util.List)">subprotocols</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;subprotocols)</code></th>
+<td class="colLast">
+<div class="block">Sets the subprotocols to use in the configuration.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/class-use/ServerEndpointConfig.Configurator.html b/apidocs/1.20/javax/websocket/server/class-use/ServerEndpointConfig.Configurator.html
new file mode 100644
index 00000000..d4f892ed
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/class-use/ServerEndpointConfig.Configurator.html
@@ -0,0 +1,323 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.server.ServerEndpointConfig.Configurator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.websocket.server.ServerEndpointConfig.Configurator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.websocket.server.ServerEndpointConfig.Configurator" class="title">Uses of Class<br>javax.websocket.server.ServerEndpointConfig.Configurator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a> in <a href="../package-summary.html">javax.websocket.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket.server</a> that return <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.</span><code><span class="memberNameLink"><a href="../ServerEndpointConfig.html#getConfigurator()">getConfigurator</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Configurator</code></a> this configuration
+ is using.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket.server</a> that return types with arguments of type <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ServerEndpoint.html#configurator()">configurator</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The optional custom configurator class that the developer would like to use
+ to further configure new instances of this endpoint.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket.server</a> with parameters of type <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ServerEndpointConfig.Builder.html#configurator(javax.websocket.server.ServerEndpointConfig.Configurator)">configurator</a></span>&#8203;(<a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;serverEndpointConfigurator)</code></th>
+<td class="colLast">
+<div class="block">Sets the custom configurator to use on the configuration
+ object built by this builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a> in <a href="../../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a> in <a href="../../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfigurator</a></span></code></th>
+<td class="colLast">
+<div class="block">Tyrus' implementation of <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Configurator</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html#configurator(javax.websocket.server.ServerEndpointConfig.Configurator)">configurator</a></span>&#8203;(<a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;serverEndpointConfigurator)</code></th>
+<td class="colLast">
+<div class="block">Sets the custom configurator to use on the configuration
+ object built by this builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#%3Cinit%3E(java.lang.Class,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../../../org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../../../../org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../../../../org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for class that extends <a href="../../Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html#%3Cinit%3E(javax.websocket.Endpoint,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(<a href="../../Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpoint,
+                    <a href="../../EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../../../org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../../WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../../../../org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../../../../org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../../org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for <a href="../../Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> instance or <a href="../../../../org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/class-use/ServerEndpointConfig.html b/apidocs/1.20/javax/websocket/server/class-use/ServerEndpointConfig.html
new file mode 100644
index 00000000..949e5aa0
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/class-use/ServerEndpointConfig.html
@@ -0,0 +1,378 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.server.ServerEndpointConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.websocket.server.ServerEndpointConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.websocket.server.ServerEndpointConfig" class="title">Uses of Interface<br>javax.websocket.server.ServerEndpointConfig</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a> in <a href="../package-summary.html">javax.websocket.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket.server</a> that return <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../ServerEndpointConfig.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builds the configuration object using the current attributes
+ that have been set on this builder object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket.server</a> that return types with arguments of type <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerApplicationConfig.</span><code><span class="memberNameLink"><a href="../ServerApplicationConfig.html#getEndpointConfigs(java.util.Set)">getEndpointConfigs</a></span>&#8203;(java.util.Set&lt;java.lang.Class&lt;? extends <a href="../../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&gt;&nbsp;endpointClasses)</code></th>
+<td class="colLast">
+<div class="block">Return a set of ServerEndpointConfig instances that the server container
+ will use to deploy the programmatic endpoints.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">javax.websocket.server</a> with parameters of type <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerContainer.</span><code><span class="memberNameLink"><a href="../ServerContainer.html#addEndpoint(javax.websocket.server.ServerEndpointConfig)">addEndpoint</a></span>&#8203;(<a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverConfig)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerEndpointConfig.Configurator.</span><code><span class="memberNameLink"><a href="../ServerEndpointConfig.Configurator.html#modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">modifyHandshake</a></span>&#8203;(<a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;sec,
+               <a href="../HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a>&nbsp;request,
+               <a href="../../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Called by the container after it has formulated a handshake response resulting from
+ a well-formed handshake request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a> in <a href="../../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a> in <a href="../../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/core/TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a></span></code></th>
+<td class="colLast">
+<div class="block">Configuration <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> enhanced
+ to offer tyrus specific attributes like maxSessions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfigurator.</span><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html#modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">modifyHandshake</a></span>&#8203;(<a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;sec,
+               <a href="../HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a>&nbsp;request,
+               <a href="../../HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.</span><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/core/TyrusWebSocketEngine.html#register(javax.websocket.server.ServerEndpointConfig,java.lang.String)">register</a></span>&#8203;(<a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverConfig,
+        java.lang.String&nbsp;contextPath)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a> in <a href="../../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> that return types with arguments of type <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerConfiguration.</span><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/server/TyrusServerConfiguration.html#getEndpointConfigs(java.util.Set)">getEndpointConfigs</a></span>&#8203;(java.util.Set&lt;java.lang.Class&lt;? extends <a href="../../Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&gt;&nbsp;scanned)</code></th>
+<td class="colLast">
+<div class="block">Gets all the <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> classes which should be deployed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a> with parameters of type <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/server/TyrusServerContainer.html#addEndpoint(javax.websocket.server.ServerEndpointConfig)">addEndpoint</a></span>&#8203;(<a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverEndpointConfig)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/server/TyrusServerContainer.html#register(javax.websocket.server.ServerEndpointConfig)">register</a></span>&#8203;(<a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverEndpointConfig)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a> in <a href="../../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a> with parameters of type <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketEngine.</span><code><span class="memberNameLink"><a href="../../../../org/glassfish/tyrus/spi/WebSocketEngine.html#register(javax.websocket.server.ServerEndpointConfig,java.lang.String)">register</a></span>&#8203;(<a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverConfig,
+        java.lang.String&nbsp;contextPath)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerEndpointConfig.html" title="interface in javax.websocket.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/package-summary.html b/apidocs/1.20/javax/websocket/server/package-summary.html
new file mode 100644
index 00000000..257fbf72
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/package-summary.html
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>javax.websocket.server (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.websocket.server (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;javax.websocket.server</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></th>
+<td class="colLast">
+<div class="block">The handshake request represents the web socket defined Http GET request 
+ for the opening handshake of a web socket session.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a></th>
+<td class="colLast">
+<div class="block">Developers include implementations of ServerApplicationConfig in an archive containing
+ websocket endpoints (WAR file, or JAR file within the WAR file) in order to specify the websocket 
+ endpoints within the archive the implementation must deploy.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></th>
+<td class="colLast">
+<div class="block">The ServerContainer is the specialized view of the WebSocketContainer available
+ in server-side deployments.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The ServerEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to server endpoints.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server">ServerEndpointConfig.Builder</a></th>
+<td class="colLast">
+<div class="block">The ServerEndpointConfig.Builder is a class used for creating
+ <a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Builder</code></a> objects for the purposes of
+ deploying a server endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></th>
+<td class="colLast">
+<div class="block">The ServerEndpointConfig.Configurator class may be extended by developers who want to
+ provide custom configuration algorithms, such as intercepting the opening handshake, or
+ providing arbitrary methods and algorithms that can be accessed from each endpoint
+ instance configured with this configurator.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PathParam.html" title="annotation in javax.websocket.server">PathParam</a></th>
+<td class="colLast">
+<div class="block">This annotation may be used to annotate method parameters on server endpoints
+ where a URI-template has been used in the path-mapping of the <a href="ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>
+ annotation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ServerEndpoint.html" title="annotation in javax.websocket.server">ServerEndpoint</a></th>
+<td class="colLast">
+<div class="block">This class level annotation declares that the class it decorates
+ is a web socket endpoint that will be deployed and made available in the URI-space
+ of a web socket server.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/package-tree.html b/apidocs/1.20/javax/websocket/server/package-tree.html
new file mode 100644
index 00000000..aeef7035
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/package-tree.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>javax.websocket.server Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.websocket.server Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package javax.websocket.server</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">javax.websocket.server.<a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server"><span class="typeNameLink">ServerEndpointConfig.Builder</span></a></li>
+<li class="circle">javax.websocket.server.<a href="ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><span class="typeNameLink">ServerEndpointConfig.Configurator</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">javax.websocket.<a href="../EndpointConfig.html" title="interface in javax.websocket"><span class="typeNameLink">EndpointConfig</span></a>
+<ul>
+<li class="circle">javax.websocket.server.<a href="ServerEndpointConfig.html" title="interface in javax.websocket.server"><span class="typeNameLink">ServerEndpointConfig</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.websocket.server.<a href="HandshakeRequest.html" title="interface in javax.websocket.server"><span class="typeNameLink">HandshakeRequest</span></a></li>
+<li class="circle">javax.websocket.server.<a href="ServerApplicationConfig.html" title="interface in javax.websocket.server"><span class="typeNameLink">ServerApplicationConfig</span></a></li>
+<li class="circle">javax.websocket.<a href="../WebSocketContainer.html" title="interface in javax.websocket"><span class="typeNameLink">WebSocketContainer</span></a>
+<ul>
+<li class="circle">javax.websocket.server.<a href="ServerContainer.html" title="interface in javax.websocket.server"><span class="typeNameLink">ServerContainer</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">javax.websocket.server.<a href="PathParam.html" title="annotation in javax.websocket.server"><span class="typeNameLink">PathParam</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">javax.websocket.server.<a href="ServerEndpoint.html" title="annotation in javax.websocket.server"><span class="typeNameLink">ServerEndpoint</span></a> (implements java.lang.annotation.Annotation)</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/javax/websocket/server/package-use.html b/apidocs/1.20/javax/websocket/server/package-use.html
new file mode 100644
index 00000000..19d73043
--- /dev/null
+++ b/apidocs/1.20/javax/websocket/server/package-use.html
@@ -0,0 +1,338 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package javax.websocket.server (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package javax.websocket.server (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package javax.websocket.server" class="title">Uses of Package<br>javax.websocket.server</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">javax.websocket.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.websocket.server">javax.websocket.server</a></th>
+<td class="colLast">
+<div class="block">This package contains all the WebSocket APIs used only by server side
+ applications.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="javax.websocket.server">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket.server</a> used by <a href="package-summary.html">javax.websocket.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/HandshakeRequest.html#javax.websocket.server">HandshakeRequest</a></th>
+<td class="colLast">
+<div class="block">The handshake request represents the web socket defined Http GET request 
+ for the opening handshake of a web socket session.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerEndpointConfig.html#javax.websocket.server">ServerEndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The ServerEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to server endpoints.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerEndpointConfig.Builder.html#javax.websocket.server">ServerEndpointConfig.Builder</a></th>
+<td class="colLast">
+<div class="block">The ServerEndpointConfig.Builder is a class used for creating
+ <a href="ServerEndpointConfig.Builder.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Builder</code></a> objects for the purposes of
+ deploying a server endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerEndpointConfig.Configurator.html#javax.websocket.server">ServerEndpointConfig.Configurator</a></th>
+<td class="colLast">
+<div class="block">The ServerEndpointConfig.Configurator class may be extended by developers who want to
+ provide custom configuration algorithms, such as intercepting the opening handshake, or
+ providing arbitrary methods and algorithms that can be accessed from each endpoint
+ instance configured with this configurator.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket.server</a> used by <a href="../../../org/glassfish/tyrus/core/package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/HandshakeRequest.html#org.glassfish.tyrus.core">HandshakeRequest</a></th>
+<td class="colLast">
+<div class="block">The handshake request represents the web socket defined Http GET request 
+ for the opening handshake of a web socket session.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerEndpointConfig.html#org.glassfish.tyrus.core">ServerEndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The ServerEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to server endpoints.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerEndpointConfig.Configurator.html#org.glassfish.tyrus.core">ServerEndpointConfig.Configurator</a></th>
+<td class="colLast">
+<div class="block">The ServerEndpointConfig.Configurator class may be extended by developers who want to
+ provide custom configuration algorithms, such as intercepting the opening handshake, or
+ providing arbitrary methods and algorithms that can be accessed from each endpoint
+ instance configured with this configurator.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket.server</a> used by <a href="../../../org/glassfish/tyrus/server/package-summary.html">org.glassfish.tyrus.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerApplicationConfig.html#org.glassfish.tyrus.server">ServerApplicationConfig</a></th>
+<td class="colLast">
+<div class="block">Developers include implementations of ServerApplicationConfig in an archive containing
+ websocket endpoints (WAR file, or JAR file within the WAR file) in order to specify the websocket 
+ endpoints within the archive the implementation must deploy.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerContainer.html#org.glassfish.tyrus.server">ServerContainer</a></th>
+<td class="colLast">
+<div class="block">The ServerContainer is the specialized view of the WebSocketContainer available
+ in server-side deployments.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerEndpointConfig.html#org.glassfish.tyrus.server">ServerEndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The ServerEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to server endpoints.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">javax.websocket.server</a> used by <a href="../../../org/glassfish/tyrus/spi/package-summary.html">org.glassfish.tyrus.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/HandshakeRequest.html#org.glassfish.tyrus.spi">HandshakeRequest</a></th>
+<td class="colLast">
+<div class="block">The handshake request represents the web socket defined Http GET request 
+ for the opening handshake of a web socket session.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerContainer.html#org.glassfish.tyrus.spi">ServerContainer</a></th>
+<td class="colLast">
+<div class="block">The ServerContainer is the specialized view of the WebSocketContainer available
+ in server-side deployments.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerEndpointConfig.html#org.glassfish.tyrus.spi">ServerEndpointConfig</a></th>
+<td class="colLast">
+<div class="block">The ServerEndpointConfig is a special kind of endpoint configuration object that contains
+ web socket configuration information specific only to server endpoints.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/jquery/external/jquery/jquery.js b/apidocs/1.20/jquery/external/jquery/jquery.js
new file mode 100644
index 00000000..9b5206bc
--- /dev/null
+++ b/apidocs/1.20/jquery/external/jquery/jquery.js
@@ -0,0 +1,10364 @@
+/*!
+ * jQuery JavaScript Library v3.3.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2018-01-20T17:24Z
+ */
+( function( global, factory ) {
+
+	"use strict";
+
+	if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+		// For CommonJS and CommonJS-like environments where a proper `window`
+		// is present, execute the factory and get jQuery.
+		// For environments that do not have a `window` with a `document`
+		// (such as Node.js), expose a factory as module.exports.
+		// This accentuates the need for the creation of a real `window`.
+		// e.g. var jQuery = require("jquery")(window);
+		// See ticket #14549 for more info.
+		module.exports = global.document ?
+			factory( global, true ) :
+			function( w ) {
+				if ( !w.document ) {
+					throw new Error( "jQuery requires a window with a document" );
+				}
+				return factory( w );
+			};
+	} else {
+		factory( global );
+	}
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+var isFunction = function isFunction( obj ) {
+
+      // Support: Chrome <=57, Firefox <=52
+      // In some browsers, typeof returns "function" for HTML <object> elements
+      // (i.e., `typeof document.createElement( "object" ) === "function"`).
+      // We don't want to classify *any* DOM node as a function.
+      return typeof obj === "function" && typeof obj.nodeType !== "number";
+  };
+
+
+var isWindow = function isWindow( obj ) {
+		return obj != null && obj === obj.window;
+	};
+
+
+
+
+	var preservedScriptAttributes = {
+		type: true,
+		src: true,
+		noModule: true
+	};
+
+	function DOMEval( code, doc, node ) {
+		doc = doc || document;
+
+		var i,
+			script = doc.createElement( "script" );
+
+		script.text = code;
+		if ( node ) {
+			for ( i in preservedScriptAttributes ) {
+				if ( node[ i ] ) {
+					script[ i ] = node[ i ];
+				}
+			}
+		}
+		doc.head.appendChild( script ).parentNode.removeChild( script );
+	}
+
+
+function toType( obj ) {
+	if ( obj == null ) {
+		return obj + "";
+	}
+
+	// Support: Android <=2.3 only (functionish RegExp)
+	return typeof obj === "object" || typeof obj === "function" ?
+		class2type[ toString.call( obj ) ] || "object" :
+		typeof obj;
+}
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+	version = "3.3.1",
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
+
+	// Support: Android <=4.0 only
+	// Make sure we trim BOM and NBSP
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
+
+jQuery.fn = jQuery.prototype = {
+
+	// The current version of jQuery being used
+	jquery: version,
+
+	constructor: jQuery,
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+
+		// Return all the elements in a clean array
+		if ( num == null ) {
+			return slice.call( this );
+		}
+
+		// Return just the one element from the set
+		return num < 0 ? this[ num + this.length ] : this[ num ];
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	each: function( callback ) {
+		return jQuery.each( this, callback );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map( this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		} ) );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor();
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: arr.sort,
+	splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[ 0 ] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+
+		// Skip the boolean and the target
+		target = arguments[ i ] || {};
+		i++;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !isFunction( target ) ) {
+		target = {};
+	}
+
+	// Extend jQuery itself if only one argument is passed
+	if ( i === length ) {
+		target = this;
+		i--;
+	}
+
+	for ( ; i < length; i++ ) {
+
+		// Only deal with non-null/undefined values
+		if ( ( options = arguments[ i ] ) != null ) {
+
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+					( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && Array.isArray( src ) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend( {
+
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+	// Assume jQuery is ready without the ready module
+	isReady: true,
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	noop: function() {},
+
+	isPlainObject: function( obj ) {
+		var proto, Ctor;
+
+		// Detect obvious negatives
+		// Use toString instead of jQuery.type to catch host objects
+		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+			return false;
+		}
+
+		proto = getProto( obj );
+
+		// Objects with no prototype (e.g., `Object.create( null )`) are plain
+		if ( !proto ) {
+			return true;
+		}
+
+		// Objects with prototype are plain iff they were constructed by a global Object function
+		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+	},
+
+	isEmptyObject: function( obj ) {
+
+		/* eslint-disable no-unused-vars */
+		// See https://github.com/eslint/eslint/issues/6125
+		var name;
+
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		DOMEval( code );
+	},
+
+	each: function( obj, callback ) {
+		var length, i = 0;
+
+		if ( isArrayLike( obj ) ) {
+			length = obj.length;
+			for ( ; i < length; i++ ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		} else {
+			for ( i in obj ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Support: Android <=4.0 only
+	trim: function( text ) {
+		return text == null ?
+			"" :
+			( text + "" ).replace( rtrim, "" );
+	},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArrayLike( Object( arr ) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		return arr == null ? -1 : indexOf.call( arr, elem, i );
+	},
+
+	// Support: Android <=4.0 only, PhantomJS 1 only
+	// push.apply(_, arraylike) throws on ancient WebKit
+	merge: function( first, second ) {
+		var len = +second.length,
+			j = 0,
+			i = first.length;
+
+		for ( ; j < len; j++ ) {
+			first[ i++ ] = second[ j ];
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
+			}
+		}
+
+		return matches;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var length, value,
+			i = 0,
+			ret = [];
+
+		// Go through the array, translating each of the items to their new values
+		if ( isArrayLike( elems ) ) {
+			length = elems.length;
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+	// Support: real iOS 8.2 only (not reproducible in simulator)
+	// `in` check used to prevent JIT error (gh-2145)
+	// hasOwn isn't used here due to false negatives
+	// regarding Nodelist length in IE
+	var length = !!obj && "length" in obj && obj.length,
+		type = toType( obj );
+
+	if ( isFunction( obj ) || isWindow( obj ) ) {
+		return false;
+	}
+
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+	support,
+	Expr,
+	getText,
+	isXML,
+	tokenize,
+	compile,
+	select,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
+
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	// Instance-specific data
+	expando = "sizzle" + 1 * new Date(),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
+	},
+
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf as it's faster than native
+	// https://jsperf.com/thor-indexof-vs-for/5
+	indexOf = function( list, elem ) {
+		var i = 0,
+			len = list.length;
+		for ( ; i < len; i++ ) {
+			if ( list[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+	// Regular expressions
+
+	// http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+
+	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+		// Operator (capture 2)
+		"*([*^$|!~]?=)" + whitespace +
+		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+		"*\\]",
+
+	pseudos = ":(" + identifier + ")(?:\\((" +
+		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+		// 1. quoted (capture 3; capture 4 or capture 5)
+		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+		// 2. simple (capture 6)
+		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+		// 3. anything else (capture 2)
+		".*" +
+		")\\)|)",
+
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rwhitespace = new RegExp( whitespace + "+", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + identifier + ")" ),
+		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+
+	// CSS escapes
+	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox<24
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				// BMP codepoint
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	},
+
+	// CSS string/identifier serialization
+	// https://drafts.csswg.org/cssom/#common-serializing-idioms
+	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+	fcssescape = function( ch, asCodePoint ) {
+		if ( asCodePoint ) {
+
+			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+			if ( ch === "\0" ) {
+				return "\uFFFD";
+			}
+
+			// Control characters and (dependent upon position) numbers get escaped as code points
+			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+		}
+
+		// Other potentially-special ASCII characters get backslash-escaped
+		return "\\" + ch;
+	},
+
+	// Used for iframes
+	// See setDocument()
+	// Removing the function wrapper causes a "Permission Denied"
+	// error in IE
+	unloadHandler = function() {
+		setDocument();
+	},
+
+	disabledAncestor = addCombinator(
+		function( elem ) {
+			return elem.disabled === true && ("form" in elem || "label" in elem);
+		},
+		{ dir: "parentNode", next: "legend" }
+	);
+
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
+}
+
+function Sizzle( selector, context, results, seed ) {
+	var m, i, elem, nid, match, groups, newSelector,
+		newContext = context && context.ownerDocument,
+
+		// nodeType defaults to 9, since context defaults to document
+		nodeType = context ? context.nodeType : 9;
+
+	results = results || [];
+
+	// Return early from calls with invalid selector or context
+	if ( typeof selector !== "string" || !selector ||
+		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+		return results;
+	}
+
+	// Try to shortcut find operations (as opposed to filters) in HTML documents
+	if ( !seed ) {
+
+		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+			setDocument( context );
+		}
+		context = context || document;
+
+		if ( documentIsHTML ) {
+
+			// If the selector is sufficiently simple, try using a "get*By*" DOM method
+			// (excepting DocumentFragment context, where the methods don't exist)
+			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+				// ID selector
+				if ( (m = match[1]) ) {
+
+					// Document context
+					if ( nodeType === 9 ) {
+						if ( (elem = context.getElementById( m )) ) {
+
+							// Support: IE, Opera, Webkit
+							// TODO: identify versions
+							// getElementById can match elements by name instead of ID
+							if ( elem.id === m ) {
+								results.push( elem );
+								return results;
+							}
+						} else {
+							return results;
+						}
+
+					// Element context
+					} else {
+
+						// Support: IE, Opera, Webkit
+						// TODO: identify versions
+						// getElementById can match elements by name instead of ID
+						if ( newContext && (elem = newContext.getElementById( m )) &&
+							contains( context, elem ) &&
+							elem.id === m ) {
+
+							results.push( elem );
+							return results;
+						}
+					}
+
+				// Type selector
+				} else if ( match[2] ) {
+					push.apply( results, context.getElementsByTagName( selector ) );
+					return results;
+
+				// Class selector
+				} else if ( (m = match[3]) && support.getElementsByClassName &&
+					context.getElementsByClassName ) {
+
+					push.apply( results, context.getElementsByClassName( m ) );
+					return results;
+				}
+			}
+
+			// Take advantage of querySelectorAll
+			if ( support.qsa &&
+				!compilerCache[ selector + " " ] &&
+				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+				if ( nodeType !== 1 ) {
+					newContext = context;
+					newSelector = selector;
+
+				// qSA looks outside Element context, which is not what we want
+				// Thanks to Andrew Dupont for this workaround technique
+				// Support: IE <=8
+				// Exclude object elements
+				} else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+					// Capture the context ID, setting it first if necessary
+					if ( (nid = context.getAttribute( "id" )) ) {
+						nid = nid.replace( rcssescape, fcssescape );
+					} else {
+						context.setAttribute( "id", (nid = expando) );
+					}
+
+					// Prefix every selector in the list
+					groups = tokenize( selector );
+					i = groups.length;
+					while ( i-- ) {
+						groups[i] = "#" + nid + " " + toSelector( groups[i] );
+					}
+					newSelector = groups.join( "," );
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
+				}
+
+				if ( newSelector ) {
+					try {
+						push.apply( results,
+							newContext.querySelectorAll( newSelector )
+						);
+						return results;
+					} catch ( qsaError ) {
+					} finally {
+						if ( nid === expando ) {
+							context.removeAttribute( "id" );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+	var el = document.createElement("fieldset");
+
+	try {
+		return !!fn( el );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( el.parentNode ) {
+			el.parentNode.removeChild( el );
+		}
+		// release memory in IE
+		el = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = arr.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			a.sourceIndex - b.sourceIndex;
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+	return function( elem ) {
+
+		// Only certain elements can match :enabled or :disabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+		if ( "form" in elem ) {
+
+			// Check for inherited disabledness on relevant non-disabled elements:
+			// * listed form-associated elements in a disabled fieldset
+			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+			// * option elements in a disabled optgroup
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+			// All such elements have a "form" property.
+			if ( elem.parentNode && elem.disabled === false ) {
+
+				// Option elements defer to a parent optgroup if present
+				if ( "label" in elem ) {
+					if ( "label" in elem.parentNode ) {
+						return elem.parentNode.disabled === disabled;
+					} else {
+						return elem.disabled === disabled;
+					}
+				}
+
+				// Support: IE 6 - 11
+				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
+				return elem.isDisabled === disabled ||
+
+					// Where there is no isDisabled, check manually
+					/* jshint -W018 */
+					elem.isDisabled !== !disabled &&
+						disabledAncestor( elem ) === disabled;
+			}
+
+			return elem.disabled === disabled;
+
+		// Try to winnow out elements that can't be disabled before trusting the disabled property.
+		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+		// even exist on them, let alone have a boolean value.
+		} else if ( "label" in elem ) {
+			return elem.disabled === disabled;
+		}
+
+		// Remaining elements are neither :enabled nor :disabled
+		return false;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+	return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var hasCompare, subWindow,
+		doc = node ? node.ownerDocument || node : preferredDoc;
+
+	// Return early if doc is invalid or already selected
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	// Update global variables
+	document = doc;
+	docElem = document.documentElement;
+	documentIsHTML = !isXML( document );
+
+	// Support: IE 9-11, Edge
+	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+	if ( preferredDoc !== document &&
+		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+		// Support: IE 11, Edge
+		if ( subWindow.addEventListener ) {
+			subWindow.addEventListener( "unload", unloadHandler, false );
+
+		// Support: IE 9 - 10 only
+		} else if ( subWindow.attachEvent ) {
+			subWindow.attachEvent( "onunload", unloadHandler );
+		}
+	}
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties
+	// (excepting IE8 booleans)
+	support.attributes = assert(function( el ) {
+		el.className = "i";
+		return !el.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( el ) {
+		el.appendChild( document.createComment("") );
+		return !el.getElementsByTagName("*").length;
+	});
+
+	// Support: IE<9
+	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programmatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( el ) {
+		docElem.appendChild( el ).id = expando;
+		return !document.getElementsByName || !document.getElementsByName( expando ).length;
+	});
+
+	// ID filter and find
+	if ( support.getById ) {
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var elem = context.getElementById( id );
+				return elem ? [ elem ] : [];
+			}
+		};
+	} else {
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== "undefined" &&
+					elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+
+		// Support: IE 6 - 7 only
+		// getElementById is not reliable as a find shortcut
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var node, i, elems,
+					elem = context.getElementById( id );
+
+				if ( elem ) {
+
+					// Verify the id attribute
+					node = elem.getAttributeNode("id");
+					if ( node && node.value === id ) {
+						return [ elem ];
+					}
+
+					// Fall back on getElementsByName
+					elems = context.getElementsByName( id );
+					i = 0;
+					while ( (elem = elems[i++]) ) {
+						node = elem.getAttributeNode("id");
+						if ( node && node.value === id ) {
+							return [ elem ];
+						}
+					}
+				}
+
+				return [];
+			}
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( tag );
+
+			// DocumentFragment nodes don't have gEBTN
+			} else if ( support.qsa ) {
+				return context.querySelectorAll( tag );
+			}
+		} :
+
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+	// QSA and matchesSelector support
+
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See https://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( el ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// https://bugs.jquery.com/ticket/12359
+			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
+				"<option selected=''></option></select>";
+
+			// Support: IE8, Opera 11-12.16
+			// Nothing should be selected when empty strings follow ^= or $= or *=
+			// The test attribute must be unknown in Opera but "safe" for WinRT
+			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !el.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+				rbuggyQSA.push("~=");
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !el.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+
+			// Support: Safari 8+, iOS 8+
+			// https://bugs.webkit.org/show_bug.cgi?id=136851
+			// In-page `selector#id sibling-combinator selector` fails
+			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+				rbuggyQSA.push(".#.+[+~]");
+			}
+		});
+
+		assert(function( el ) {
+			el.innerHTML = "<a href='' disabled='disabled'></a>" +
+				"<select disabled='disabled'><option/></select>";
+
+			// Support: Windows 8 Native Apps
+			// The type and name attributes are restricted during .innerHTML assignment
+			var input = document.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			el.appendChild( input ).setAttribute( "name", "D" );
+
+			// Support: IE8
+			// Enforce case-sensitivity of name attribute
+			if ( el.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( el.querySelectorAll(":enabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Support: IE9-11+
+			// IE's :disabled selector does not pick up the children of disabled fieldsets
+			docElem.appendChild( el ).disabled = true;
+			if ( el.querySelectorAll(":disabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			el.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+		docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( el ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( el, "*" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( el, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+	// Element contains another
+	// Purposefully self-exclusive
+	// As in, an element does not contain itself
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	// Document order sorting
+	sortOrder = hasCompare ?
+	function( a, b ) {
+
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		// Sort on method existence if only one input has compareDocumentPosition
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		// Calculate position if both inputs belong to the same document
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			// Otherwise we know they are disconnected
+			1;
+
+		// Disconnected nodes
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			// Choose the first element that is related to our preferred document
+			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			// Maintain original order
+			return sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Parentless nodes are either documents or disconnected
+		if ( !aup || !bup ) {
+			return a === document ? -1 :
+				b === document ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
+
+	if ( support.matchesSelector && documentIsHTML &&
+		!compilerCache[ expr + " " ] &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+		try {
+			var ret = matches.call( elem, expr );
+
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch (e) {}
+	}
+
+	return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
+};
+
+Sizzle.escape = function( sel ) {
+	return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	// Clear input after sorting to release objects
+	// See https://github.com/jquery/sizzle/pull/225
+	sortInput = null;
+
+	return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		while ( (node = elem[i++]) ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (jQuery #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
+
+	return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+	// Can be adjusted by the user
+	cacheLength: 50,
+
+	createPseudo: markFunction,
+
+	match: matchExpr,
+
+	attrHandle: {},
+
+	find: {},
+
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
+
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[6] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			// Accept quoted arguments as-is
+			if ( match[3] ) {
+				match[2] = match[4] || match[5] || "";
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, uniqueCache, outerCache, node, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType,
+						diff = false;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) {
+
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+
+							// Seek `elem` from a previously-cached index
+
+							// ...in a gzip-friendly way
+							node = parent;
+							outerCache = node[ expando ] || (node[ expando ] = {});
+
+							// Support: IE <9 only
+							// Defend against cloned attroperties (jQuery gh-1709)
+							uniqueCache = outerCache[ node.uniqueID ] ||
+								(outerCache[ node.uniqueID ] = {});
+
+							cache = uniqueCache[ type ] || [];
+							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+							diff = nodeIndex && cache[ 2 ];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						} else {
+							// Use previously-cached element index if available
+							if ( useCache ) {
+								// ...in a gzip-friendly way
+								node = elem;
+								outerCache = node[ expando ] || (node[ expando ] = {});
+
+								// Support: IE <9 only
+								// Defend against cloned attroperties (jQuery gh-1709)
+								uniqueCache = outerCache[ node.uniqueID ] ||
+									(outerCache[ node.uniqueID ] = {});
+
+								cache = uniqueCache[ type ] || [];
+								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+								diff = nodeIndex;
+							}
+
+							// xml :nth-child(...)
+							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
+							if ( diff === false ) {
+								// Use the same loop as above to seek `elem` from the start
+								while ( (node = ++nodeIndex && node && node[ dir ] ||
+									(diff = nodeIndex = 0) || start.pop()) ) {
+
+									if ( ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) &&
+										++diff ) {
+
+										// Cache the index of each encountered element
+										if ( useCache ) {
+											outerCache = node[ expando ] || (node[ expando ] = {});
+
+											// Support: IE <9 only
+											// Defend against cloned attroperties (jQuery gh-1709)
+											uniqueCache = outerCache[ node.uniqueID ] ||
+												(outerCache[ node.uniqueID ] = {});
+
+											uniqueCache[ type ] = [ dirruns, diff ];
+										}
+
+										if ( node === elem ) {
+											break;
+										}
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					// Don't keep the element (issue #299)
+					input[0] = null;
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			text = text.replace( runescape, funescape );
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": createDisabledPseudo( false ),
+		"disabled": createDisabledPseudo( true ),
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+			//   but not by others (comment: 8; processing instruction: 7; etc.)
+			// nodeType < 6 works because attributes (2) do not appear as children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				// Support: IE<8
+				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( (tokens = []) );
+		}
+
+		matched = false;
+
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		skip = combinator.next,
+		key = skip || dir,
+		checkNonElements = base && key === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+			return false;
+		} :
+
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var oldCache, uniqueCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+						// Support: IE <9 only
+						// Defend against cloned attroperties (jQuery gh-1709)
+						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+						if ( skip && skip === elem.nodeName.toLowerCase() ) {
+							elem = elem[ dir ] || elem;
+						} else if ( (oldCache = uniqueCache[ key ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							// Assign to newCache so results back-propagate to previous elements
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							// Reuse newcache so results back-propagate to previous elements
+							uniqueCache[ key ] = newCache;
+
+							// A match means we're done; a fail means we have to keep checking
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+			return false;
+		};
+}
+
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		// Add elements to results, through postFinder if defined
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
+}
+
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+			// Avoid hanging onto element (issue #299)
+			checkContext = null;
+			return ret;
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				// We must always have either seed elements or outermost context
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
+
+			if ( outermost ) {
+				outermostContext = context === document || context || outermost;
+			}
+
+			// Add elements passing elementMatchers directly to results
+			// Support: IE<9, Safari
+			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					if ( !context && elem.ownerDocument !== document ) {
+						setDocument( elem );
+						xml = !documentIsHTML;
+					}
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context || document, xml) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
+
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			// `i` is now the count of elements visited above, and adding it to `matchedCount`
+			// makes the latter nonnegative.
+			matchedCount += i;
+
+			// Apply set filters to unmatched elements
+			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+			// no element matchers and no seed.
+			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
+			// numerically zero.
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !match ) {
+			match = tokenize( selector );
+		}
+		i = match.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( match[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+		// Save selector and tokenization
+		cached.selector = selector;
+	}
+	return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		compiled = typeof selector === "function" && selector,
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+	results = results || [];
+
+	// Try to minimize operations if there is only one selector in the list and no seed
+	// (the latter of which guarantees us context)
+	if ( match.length === 1 ) {
+
+		// Reduce context if the leading compound selector is an ID
+		tokens = match[0] = match[0].slice( 0 );
+		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			if ( !context ) {
+				return results;
+
+			// Precompiled matchers will still verify ancestry, so step up a level
+			} else if ( compiled ) {
+				context = context.parentNode;
+			}
+
+			selector = selector.slice( tokens.shift().value.length );
+		}
+
+		// Fetch a seed set for right-to-left matching
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		while ( i-- ) {
+			token = tokens[i];
+
+			// Abort if we hit a combinator
+			if ( Expr.relative[ (type = token.type) ] ) {
+				break;
+			}
+			if ( (find = Expr.find[ type ]) ) {
+				// Search, expanding context for leading sibling combinators
+				if ( (seed = find(
+					token.matches[0].replace( runescape, funescape ),
+					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+				)) ) {
+
+					// If seed is empty or no tokens remain, we can return early
+					tokens.splice( i, 1 );
+					selector = seed.length && toSelector( tokens );
+					if ( !selector ) {
+						push.apply( results, seed );
+						return results;
+					}
+
+					break;
+				}
+			}
+		}
+	}
+
+	// Compile and execute a filtering function if one is not provided
+	// Provide `match` to avoid retokenization if we modified the selector above
+	( compiled || compile( selector, match ) )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+	// Should return 1, but returns 4 (following)
+	return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+	el.innerHTML = "<a href='#'></a>";
+	return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+	el.innerHTML = "<input/>";
+	el.firstChild.setAttribute( "value", "" );
+	return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+	return el.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+	var matched = [],
+		truncate = until !== undefined;
+
+	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+		if ( elem.nodeType === 1 ) {
+			if ( truncate && jQuery( elem ).is( until ) ) {
+				break;
+			}
+			matched.push( elem );
+		}
+	}
+	return matched;
+};
+
+
+var siblings = function( n, elem ) {
+	var matched = [];
+
+	for ( ; n; n = n.nextSibling ) {
+		if ( n.nodeType === 1 && n !== elem ) {
+			matched.push( n );
+		}
+	}
+
+	return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+
+
+function nodeName( elem, name ) {
+
+  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+};
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			return !!qualifier.call( elem, i, elem ) !== not;
+		} );
+	}
+
+	// Single element
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
+		} );
+	}
+
+	// Arraylike of elements (jQuery, arguments, Array)
+	if ( typeof qualifier !== "string" ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+		} );
+	}
+
+	// Filtered directly for both simple and complex selectors
+	return jQuery.filter( qualifier, elements, not );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+	var elem = elems[ 0 ];
+
+	if ( not ) {
+		expr = ":not(" + expr + ")";
+	}
+
+	if ( elems.length === 1 && elem.nodeType === 1 ) {
+		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+	}
+
+	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+		return elem.nodeType === 1;
+	} ) );
+};
+
+jQuery.fn.extend( {
+	find: function( selector ) {
+		var i, ret,
+			len = this.length,
+			self = this;
+
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter( function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			} ) );
+		}
+
+		ret = this.pushStack( [] );
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+	},
+	filter: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], false ) );
+	},
+	not: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], true ) );
+	},
+	is: function( selector ) {
+		return !!winnow(
+			this,
+
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	}
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	// Shortcut simple #id case for speed
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+	init = jQuery.fn.init = function( selector, context, root ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Method init() accepts an alternate rootjQuery
+		// so migrate can support jQuery.sub (gh-2101)
+		root = root || rootjQuery;
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector[ 0 ] === "<" &&
+				selector[ selector.length - 1 ] === ">" &&
+				selector.length >= 3 ) {
+
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = rquickExpr.exec( selector );
+			}
+
+			// Match html or make sure no context is specified for #id
+			if ( match && ( match[ 1 ] || !context ) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[ 1 ] ) {
+					context = context instanceof jQuery ? context[ 0 ] : context;
+
+					// Option to run scripts is true for back-compat
+					// Intentionally let the error be thrown if parseHTML is not present
+					jQuery.merge( this, jQuery.parseHTML(
+						match[ 1 ],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+
+							// Properties of context are called as methods if possible
+							if ( isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
+							}
+						}
+					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[ 2 ] );
+
+					if ( elem ) {
+
+						// Inject the element directly into the jQuery object
+						this[ 0 ] = elem;
+						this.length = 1;
+					}
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || root ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this[ 0 ] = selector;
+			this.length = 1;
+			return this;
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( isFunction( selector ) ) {
+			return root.ready !== undefined ?
+				root.ready( selector ) :
+
+				// Execute immediately if ready is not present
+				selector( jQuery );
+		}
+
+		return jQuery.makeArray( selector, this );
+	};
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+	// Methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend( {
+	has: function( target ) {
+		var targets = jQuery( target, this ),
+			l = targets.length;
+
+		return this.filter( function() {
+			var i = 0;
+			for ( ; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[ i ] ) ) {
+					return true;
+				}
+			}
+		} );
+	},
+
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			matched = [],
+			targets = typeof selectors !== "string" && jQuery( selectors );
+
+		// Positional selectors never match, since there's no _selection_ context
+		if ( !rneedsContext.test( selectors ) ) {
+			for ( ; i < l; i++ ) {
+				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+					// Always skip document fragments
+					if ( cur.nodeType < 11 && ( targets ?
+						targets.index( cur ) > -1 :
+
+						// Don't pass non-elements to Sizzle
+						cur.nodeType === 1 &&
+							jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+						matched.push( cur );
+						break;
+					}
+				}
+			}
+		}
+
+		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+	},
+
+	// Determine the position of an element within the set
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+		}
+
+		// Index in selector
+		if ( typeof elem === "string" ) {
+			return indexOf.call( jQuery( elem ), this[ 0 ] );
+		}
+
+		// Locate the position of the desired element
+		return indexOf.call( this,
+
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[ 0 ] : elem
+		);
+	},
+
+	add: function( selector, context ) {
+		return this.pushStack(
+			jQuery.uniqueSort(
+				jQuery.merge( this.get(), jQuery( selector, context ) )
+			)
+		);
+	},
+
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	}
+} );
+
+function sibling( cur, dir ) {
+	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+	return cur;
+}
+
+jQuery.each( {
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return siblings( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return siblings( elem.firstChild );
+	},
+	contents: function( elem ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
+
+        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+        // Treat the template element as a regular one in browsers that
+        // don't support it.
+        if ( nodeName( elem, "template" ) ) {
+            elem = elem.content || elem;
+        }
+
+        return jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var matched = jQuery.map( this, fn, until );
+
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			matched = jQuery.filter( selector, matched );
+		}
+
+		if ( this.length > 1 ) {
+
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				jQuery.uniqueSort( matched );
+			}
+
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				matched.reverse();
+			}
+		}
+
+		return this.pushStack( matched );
+	};
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+	var object = {};
+	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	} );
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		createOptions( options ) :
+		jQuery.extend( {}, options );
+
+	var // Flag to know if list is currently firing
+		firing,
+
+		// Last fire value for non-forgettable lists
+		memory,
+
+		// Flag to know if list was already fired
+		fired,
+
+		// Flag to prevent firing
+		locked,
+
+		// Actual callback list
+		list = [],
+
+		// Queue of execution data for repeatable lists
+		queue = [],
+
+		// Index of currently firing callback (modified by add/remove as needed)
+		firingIndex = -1,
+
+		// Fire callbacks
+		fire = function() {
+
+			// Enforce single-firing
+			locked = locked || options.once;
+
+			// Execute callbacks for all pending executions,
+			// respecting firingIndex overrides and runtime changes
+			fired = firing = true;
+			for ( ; queue.length; firingIndex = -1 ) {
+				memory = queue.shift();
+				while ( ++firingIndex < list.length ) {
+
+					// Run callback and check for early termination
+					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+						options.stopOnFalse ) {
+
+						// Jump to end and forget the data so .add doesn't re-fire
+						firingIndex = list.length;
+						memory = false;
+					}
+				}
+			}
+
+			// Forget the data if we're done with it
+			if ( !options.memory ) {
+				memory = false;
+			}
+
+			firing = false;
+
+			// Clean up if we're done firing for good
+			if ( locked ) {
+
+				// Keep an empty list if we have data for future add calls
+				if ( memory ) {
+					list = [];
+
+				// Otherwise, this object is spent
+				} else {
+					list = "";
+				}
+			}
+		},
+
+		// Actual Callbacks object
+		self = {
+
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+
+					// If we have memory from a past run, we should fire after adding
+					if ( memory && !firing ) {
+						firingIndex = list.length - 1;
+						queue.push( memory );
+					}
+
+					( function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							if ( isFunction( arg ) ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && toType( arg ) !== "string" ) {
+
+								// Inspect recursively
+								add( arg );
+							}
+						} );
+					} )( arguments );
+
+					if ( memory && !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Remove a callback from the list
+			remove: function() {
+				jQuery.each( arguments, function( _, arg ) {
+					var index;
+					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+						list.splice( index, 1 );
+
+						// Handle firing indexes
+						if ( index <= firingIndex ) {
+							firingIndex--;
+						}
+					}
+				} );
+				return this;
+			},
+
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ?
+					jQuery.inArray( fn, list ) > -1 :
+					list.length > 0;
+			},
+
+			// Remove all callbacks from the list
+			empty: function() {
+				if ( list ) {
+					list = [];
+				}
+				return this;
+			},
+
+			// Disable .fire and .add
+			// Abort any current/pending executions
+			// Clear all callbacks and values
+			disable: function() {
+				locked = queue = [];
+				list = memory = "";
+				return this;
+			},
+			disabled: function() {
+				return !list;
+			},
+
+			// Disable .fire
+			// Also disable .add unless we have memory (since it would have no effect)
+			// Abort any pending executions
+			lock: function() {
+				locked = queue = [];
+				if ( !memory && !firing ) {
+					list = memory = "";
+				}
+				return this;
+			},
+			locked: function() {
+				return !!locked;
+			},
+
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( !locked ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					queue.push( args );
+					if ( !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+
+
+function Identity( v ) {
+	return v;
+}
+function Thrower( ex ) {
+	throw ex;
+}
+
+function adoptValue( value, resolve, reject, noValue ) {
+	var method;
+
+	try {
+
+		// Check for promise aspect first to privilege synchronous behavior
+		if ( value && isFunction( ( method = value.promise ) ) ) {
+			method.call( value ).done( resolve ).fail( reject );
+
+		// Other thenables
+		} else if ( value && isFunction( ( method = value.then ) ) ) {
+			method.call( value, resolve, reject );
+
+		// Other non-thenables
+		} else {
+
+			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
+			// * false: [ value ].slice( 0 ) => resolve( value )
+			// * true: [ value ].slice( 1 ) => resolve()
+			resolve.apply( undefined, [ value ].slice( noValue ) );
+		}
+
+	// For Promises/A+, convert exceptions into rejections
+	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+	// Deferred#then to conditionally suppress rejection.
+	} catch ( value ) {
+
+		// Support: Android 4.0 only
+		// Strict mode functions invoked without .call/.apply get global-object context
+		reject.apply( undefined, [ value ] );
+	}
+}
+
+jQuery.extend( {
+
+	Deferred: function( func ) {
+		var tuples = [
+
+				// action, add listener, callbacks,
+				// ... .then handlers, argument index, [final state]
+				[ "notify", "progress", jQuery.Callbacks( "memory" ),
+					jQuery.Callbacks( "memory" ), 2 ],
+				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				"catch": function( fn ) {
+					return promise.then( null, fn );
+				},
+
+				// Keep pipe for back-compat
+				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+
+					return jQuery.Deferred( function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+
+							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
+							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+							// deferred.progress(function() { bind to newDefer or newDefer.notify })
+							// deferred.done(function() { bind to newDefer or newDefer.resolve })
+							// deferred.fail(function() { bind to newDefer or newDefer.reject })
+							deferred[ tuple[ 1 ] ]( function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && isFunction( returned.promise ) ) {
+									returned.promise()
+										.progress( newDefer.notify )
+										.done( newDefer.resolve )
+										.fail( newDefer.reject );
+								} else {
+									newDefer[ tuple[ 0 ] + "With" ](
+										this,
+										fn ? [ returned ] : arguments
+									);
+								}
+							} );
+						} );
+						fns = null;
+					} ).promise();
+				},
+				then: function( onFulfilled, onRejected, onProgress ) {
+					var maxDepth = 0;
+					function resolve( depth, deferred, handler, special ) {
+						return function() {
+							var that = this,
+								args = arguments,
+								mightThrow = function() {
+									var returned, then;
+
+									// Support: Promises/A+ section 2.3.3.3.3
+									// https://promisesaplus.com/#point-59
+									// Ignore double-resolution attempts
+									if ( depth < maxDepth ) {
+										return;
+									}
+
+									returned = handler.apply( that, args );
+
+									// Support: Promises/A+ section 2.3.1
+									// https://promisesaplus.com/#point-48
+									if ( returned === deferred.promise() ) {
+										throw new TypeError( "Thenable self-resolution" );
+									}
+
+									// Support: Promises/A+ sections 2.3.3.1, 3.5
+									// https://promisesaplus.com/#point-54
+									// https://promisesaplus.com/#point-75
+									// Retrieve `then` only once
+									then = returned &&
+
+										// Support: Promises/A+ section 2.3.4
+										// https://promisesaplus.com/#point-64
+										// Only check objects and functions for thenability
+										( typeof returned === "object" ||
+											typeof returned === "function" ) &&
+										returned.then;
+
+									// Handle a returned thenable
+									if ( isFunction( then ) ) {
+
+										// Special processors (notify) just wait for resolution
+										if ( special ) {
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special )
+											);
+
+										// Normal processors (resolve) also hook into progress
+										} else {
+
+											// ...and disregard older resolution values
+											maxDepth++;
+
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special ),
+												resolve( maxDepth, deferred, Identity,
+													deferred.notifyWith )
+											);
+										}
+
+									// Handle all other returned values
+									} else {
+
+										// Only substitute handlers pass on context
+										// and multiple values (non-spec behavior)
+										if ( handler !== Identity ) {
+											that = undefined;
+											args = [ returned ];
+										}
+
+										// Process the value(s)
+										// Default process is resolve
+										( special || deferred.resolveWith )( that, args );
+									}
+								},
+
+								// Only normal processors (resolve) catch and reject exceptions
+								process = special ?
+									mightThrow :
+									function() {
+										try {
+											mightThrow();
+										} catch ( e ) {
+
+											if ( jQuery.Deferred.exceptionHook ) {
+												jQuery.Deferred.exceptionHook( e,
+													process.stackTrace );
+											}
+
+											// Support: Promises/A+ section 2.3.3.3.4.1
+											// https://promisesaplus.com/#point-61
+											// Ignore post-resolution exceptions
+											if ( depth + 1 >= maxDepth ) {
+
+												// Only substitute handlers pass on context
+												// and multiple values (non-spec behavior)
+												if ( handler !== Thrower ) {
+													that = undefined;
+													args = [ e ];
+												}
+
+												deferred.rejectWith( that, args );
+											}
+										}
+									};
+
+							// Support: Promises/A+ section 2.3.3.3.1
+							// https://promisesaplus.com/#point-57
+							// Re-resolve promises immediately to dodge false rejection from
+							// subsequent errors
+							if ( depth ) {
+								process();
+							} else {
+
+								// Call an optional hook to record the stack, in case of exception
+								// since it's otherwise lost when execution goes async
+								if ( jQuery.Deferred.getStackHook ) {
+									process.stackTrace = jQuery.Deferred.getStackHook();
+								}
+								window.setTimeout( process );
+							}
+						};
+					}
+
+					return jQuery.Deferred( function( newDefer ) {
+
+						// progress_handlers.add( ... )
+						tuples[ 0 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onProgress ) ?
+									onProgress :
+									Identity,
+								newDefer.notifyWith
+							)
+						);
+
+						// fulfilled_handlers.add( ... )
+						tuples[ 1 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onFulfilled ) ?
+									onFulfilled :
+									Identity
+							)
+						);
+
+						// rejected_handlers.add( ... )
+						tuples[ 2 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onRejected ) ?
+									onRejected :
+									Thrower
+							)
+						);
+					} ).promise();
+				},
+
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
+				}
+			},
+			deferred = {};
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 5 ];
+
+			// promise.progress = list.add
+			// promise.done = list.add
+			// promise.fail = list.add
+			promise[ tuple[ 1 ] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add(
+					function() {
+
+						// state = "resolved" (i.e., fulfilled)
+						// state = "rejected"
+						state = stateString;
+					},
+
+					// rejected_callbacks.disable
+					// fulfilled_callbacks.disable
+					tuples[ 3 - i ][ 2 ].disable,
+
+					// rejected_handlers.disable
+					// fulfilled_handlers.disable
+					tuples[ 3 - i ][ 3 ].disable,
+
+					// progress_callbacks.lock
+					tuples[ 0 ][ 2 ].lock,
+
+					// progress_handlers.lock
+					tuples[ 0 ][ 3 ].lock
+				);
+			}
+
+			// progress_handlers.fire
+			// fulfilled_handlers.fire
+			// rejected_handlers.fire
+			list.add( tuple[ 3 ].fire );
+
+			// deferred.notify = function() { deferred.notifyWith(...) }
+			// deferred.resolve = function() { deferred.resolveWith(...) }
+			// deferred.reject = function() { deferred.rejectWith(...) }
+			deferred[ tuple[ 0 ] ] = function() {
+				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+				return this;
+			};
+
+			// deferred.notifyWith = list.fireWith
+			// deferred.resolveWith = list.fireWith
+			// deferred.rejectWith = list.fireWith
+			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+		} );
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( singleValue ) {
+		var
+
+			// count of uncompleted subordinates
+			remaining = arguments.length,
+
+			// count of unprocessed arguments
+			i = remaining,
+
+			// subordinate fulfillment data
+			resolveContexts = Array( i ),
+			resolveValues = slice.call( arguments ),
+
+			// the master Deferred
+			master = jQuery.Deferred(),
+
+			// subordinate callback factory
+			updateFunc = function( i ) {
+				return function( value ) {
+					resolveContexts[ i ] = this;
+					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+					if ( !( --remaining ) ) {
+						master.resolveWith( resolveContexts, resolveValues );
+					}
+				};
+			};
+
+		// Single- and empty arguments are adopted like Promise.resolve
+		if ( remaining <= 1 ) {
+			adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+				!remaining );
+
+			// Use .then() to unwrap secondary thenables (cf. gh-3000)
+			if ( master.state() === "pending" ||
+				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+				return master.then();
+			}
+		}
+
+		// Multiple arguments are aggregated like Promise.all array elements
+		while ( i-- ) {
+			adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+		}
+
+		return master.promise();
+	}
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+	// Support: IE 8 - 9 only
+	// Console exists when dev tools are open, which can happen at any time
+	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+	}
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+	window.setTimeout( function() {
+		throw error;
+	} );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+	readyList
+		.then( fn )
+
+		// Wrap jQuery.readyException in a function so that the lookup
+		// happens at the time of error handling instead of callback
+		// registration.
+		.catch( function( error ) {
+			jQuery.readyException( error );
+		} );
+
+	return this;
+};
+
+jQuery.extend( {
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
+		}
+
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
+		}
+
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
+	}
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+	document.removeEventListener( "DOMContentLoaded", completed );
+	window.removeEventListener( "load", completed );
+	jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+	// Handle it asynchronously to allow scripts the opportunity to delay ready
+	window.setTimeout( jQuery.ready );
+
+} else {
+
+	// Use the handy event callback
+	document.addEventListener( "DOMContentLoaded", completed );
+
+	// A fallback to window.onload, that will always work
+	window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+	var i = 0,
+		len = elems.length,
+		bulk = key == null;
+
+	// Sets many values
+	if ( toType( key ) === "object" ) {
+		chainable = true;
+		for ( i in key ) {
+			access( elems, fn, i, key[ i ], true, emptyGet, raw );
+		}
+
+	// Sets one value
+	} else if ( value !== undefined ) {
+		chainable = true;
+
+		if ( !isFunction( value ) ) {
+			raw = true;
+		}
+
+		if ( bulk ) {
+
+			// Bulk operations run against the entire set
+			if ( raw ) {
+				fn.call( elems, value );
+				fn = null;
+
+			// ...except when executing function values
+			} else {
+				bulk = fn;
+				fn = function( elem, key, value ) {
+					return bulk.call( jQuery( elem ), value );
+				};
+			}
+		}
+
+		if ( fn ) {
+			for ( ; i < len; i++ ) {
+				fn(
+					elems[ i ], key, raw ?
+					value :
+					value.call( elems[ i ], i, fn( elems[ i ], key ) )
+				);
+			}
+		}
+	}
+
+	if ( chainable ) {
+		return elems;
+	}
+
+	// Gets
+	if ( bulk ) {
+		return fn.call( elems );
+	}
+
+	return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+
+
+// Matches dashed string for camelizing
+var rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([a-z])/g;
+
+// Used by camelCase as callback to replace()
+function fcamelCase( all, letter ) {
+	return letter.toUpperCase();
+}
+
+// Convert dashed to camelCase; used by the css and data modules
+// Support: IE <=9 - 11, Edge 12 - 15
+// Microsoft forgot to hump their vendor prefix (#9572)
+function camelCase( string ) {
+	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+}
+var acceptData = function( owner ) {
+
+	// Accepts only:
+	//  - Node
+	//    - Node.ELEMENT_NODE
+	//    - Node.DOCUMENT_NODE
+	//  - Object
+	//    - Any
+	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+	this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+	cache: function( owner ) {
+
+		// Check if the owner object already has a cache
+		var value = owner[ this.expando ];
+
+		// If not, create one
+		if ( !value ) {
+			value = {};
+
+			// We can accept data for non-element nodes in modern browsers,
+			// but we should not, see #8335.
+			// Always return an empty object.
+			if ( acceptData( owner ) ) {
+
+				// If it is a node unlikely to be stringify-ed or looped over
+				// use plain assignment
+				if ( owner.nodeType ) {
+					owner[ this.expando ] = value;
+
+				// Otherwise secure it in a non-enumerable property
+				// configurable must be true to allow the property to be
+				// deleted when data is removed
+				} else {
+					Object.defineProperty( owner, this.expando, {
+						value: value,
+						configurable: true
+					} );
+				}
+			}
+		}
+
+		return value;
+	},
+	set: function( owner, data, value ) {
+		var prop,
+			cache = this.cache( owner );
+
+		// Handle: [ owner, key, value ] args
+		// Always use camelCase key (gh-2257)
+		if ( typeof data === "string" ) {
+			cache[ camelCase( data ) ] = value;
+
+		// Handle: [ owner, { properties } ] args
+		} else {
+
+			// Copy the properties one-by-one to the cache object
+			for ( prop in data ) {
+				cache[ camelCase( prop ) ] = data[ prop ];
+			}
+		}
+		return cache;
+	},
+	get: function( owner, key ) {
+		return key === undefined ?
+			this.cache( owner ) :
+
+			// Always use camelCase key (gh-2257)
+			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
+	},
+	access: function( owner, key, value ) {
+
+		// In cases where either:
+		//
+		//   1. No key was specified
+		//   2. A string key was specified, but no value provided
+		//
+		// Take the "read" path and allow the get method to determine
+		// which value to return, respectively either:
+		//
+		//   1. The entire cache object
+		//   2. The data stored at the key
+		//
+		if ( key === undefined ||
+				( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+			return this.get( owner, key );
+		}
+
+		// When the key is not a string, or both a key and value
+		// are specified, set or extend (existing objects) with either:
+		//
+		//   1. An object of properties
+		//   2. A key and value
+		//
+		this.set( owner, key, value );
+
+		// Since the "set" path can have two possible entry points
+		// return the expected data based on which path was taken[*]
+		return value !== undefined ? value : key;
+	},
+	remove: function( owner, key ) {
+		var i,
+			cache = owner[ this.expando ];
+
+		if ( cache === undefined ) {
+			return;
+		}
+
+		if ( key !== undefined ) {
+
+			// Support array or space separated string of keys
+			if ( Array.isArray( key ) ) {
+
+				// If key is an array of keys...
+				// We always set camelCase keys, so remove that.
+				key = key.map( camelCase );
+			} else {
+				key = camelCase( key );
+
+				// If a key with the spaces exists, use it.
+				// Otherwise, create an array by matching non-whitespace
+				key = key in cache ?
+					[ key ] :
+					( key.match( rnothtmlwhite ) || [] );
+			}
+
+			i = key.length;
+
+			while ( i-- ) {
+				delete cache[ key[ i ] ];
+			}
+		}
+
+		// Remove the expando if there's no more data
+		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+			// Support: Chrome <=35 - 45
+			// Webkit & Blink performance suffers when deleting properties
+			// from DOM nodes, so set to undefined instead
+			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+			if ( owner.nodeType ) {
+				owner[ this.expando ] = undefined;
+			} else {
+				delete owner[ this.expando ];
+			}
+		}
+	},
+	hasData: function( owner ) {
+		var cache = owner[ this.expando ];
+		return cache !== undefined && !jQuery.isEmptyObject( cache );
+	}
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+//	Implementation Summary
+//
+//	1. Enforce API surface and semantic compatibility with 1.9.x branch
+//	2. Improve the module's maintainability by reducing the storage
+//		paths to a single mechanism.
+//	3. Use the same single mechanism to support "private" and "user" data.
+//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//	5. Avoid exposing implementation details on user objects (eg. expando properties)
+//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+	rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+	if ( data === "true" ) {
+		return true;
+	}
+
+	if ( data === "false" ) {
+		return false;
+	}
+
+	if ( data === "null" ) {
+		return null;
+	}
+
+	// Only convert to a number if it doesn't change the string
+	if ( data === +data + "" ) {
+		return +data;
+	}
+
+	if ( rbrace.test( data ) ) {
+		return JSON.parse( data );
+	}
+
+	return data;
+}
+
+function dataAttr( elem, key, data ) {
+	var name;
+
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = getData( data );
+			} catch ( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			dataUser.set( elem, key, data );
+		} else {
+			data = undefined;
+		}
+	}
+	return data;
+}
+
+jQuery.extend( {
+	hasData: function( elem ) {
+		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+	},
+
+	data: function( elem, name, data ) {
+		return dataUser.access( elem, name, data );
+	},
+
+	removeData: function( elem, name ) {
+		dataUser.remove( elem, name );
+	},
+
+	// TODO: Now that all calls to _data and _removeData have been replaced
+	// with direct calls to dataPriv methods, these can be deprecated.
+	_data: function( elem, name, data ) {
+		return dataPriv.access( elem, name, data );
+	},
+
+	_removeData: function( elem, name ) {
+		dataPriv.remove( elem, name );
+	}
+} );
+
+jQuery.fn.extend( {
+	data: function( key, value ) {
+		var i, name, data,
+			elem = this[ 0 ],
+			attrs = elem && elem.attributes;
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = dataUser.get( elem );
+
+				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+					i = attrs.length;
+					while ( i-- ) {
+
+						// Support: IE 11 only
+						// The attrs elements can be null (#14894)
+						if ( attrs[ i ] ) {
+							name = attrs[ i ].name;
+							if ( name.indexOf( "data-" ) === 0 ) {
+								name = camelCase( name.slice( 5 ) );
+								dataAttr( elem, name, data[ name ] );
+							}
+						}
+					}
+					dataPriv.set( elem, "hasDataAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each( function() {
+				dataUser.set( this, key );
+			} );
+		}
+
+		return access( this, function( value ) {
+			var data;
+
+			// The calling jQuery object (element matches) is not empty
+			// (and therefore has an element appears at this[ 0 ]) and the
+			// `value` parameter was not undefined. An empty jQuery object
+			// will result in `undefined` for elem = this[ 0 ] which will
+			// throw an exception if an attempt to read a data cache is made.
+			if ( elem && value === undefined ) {
+
+				// Attempt to get data from the cache
+				// The key will always be camelCased in Data
+				data = dataUser.get( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// Attempt to "discover" the data in
+				// HTML5 custom data-* attrs
+				data = dataAttr( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// We tried really hard, but the data doesn't exist.
+				return;
+			}
+
+			// Set the data...
+			this.each( function() {
+
+				// We always store the camelCased key
+				dataUser.set( this, key, value );
+			} );
+		}, null, value, arguments.length > 1, null, true );
+	},
+
+	removeData: function( key ) {
+		return this.each( function() {
+			dataUser.remove( this, key );
+		} );
+	}
+} );
+
+
+jQuery.extend( {
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = dataPriv.get( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || Array.isArray( data ) ) {
+					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			// Clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
+		}
+
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
+		}
+	},
+
+	// Not public - generate a queueHooks object, or return the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+			empty: jQuery.Callbacks( "once memory" ).add( function() {
+				dataPriv.remove( elem, [ type + "queue", key ] );
+			} )
+		} );
+	}
+} );
+
+jQuery.fn.extend( {
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[ 0 ], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each( function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// Ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			} );
+	},
+	dequeue: function( type ) {
+		return this.each( function() {
+			jQuery.dequeue( this, type );
+		} );
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
+
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
+
+		while ( i-- ) {
+			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( obj );
+	}
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+		// isHiddenWithinTree might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+
+		// Inline style trumps all
+		return elem.style.display === "none" ||
+			elem.style.display === "" &&
+
+			// Otherwise, check computed style
+			// Support: Firefox <=43 - 45
+			// Disconnected elements can have computed display: none, so first confirm that elem is
+			// in the document.
+			jQuery.contains( elem.ownerDocument, elem ) &&
+
+			jQuery.css( elem, "display" ) === "none";
+	};
+
+var swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+	var adjusted, scale,
+		maxIterations = 20,
+		currentValue = tween ?
+			function() {
+				return tween.cur();
+			} :
+			function() {
+				return jQuery.css( elem, prop, "" );
+			},
+		initial = currentValue(),
+		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+		// Starting value computation is required for potential unit mismatches
+		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+			rcssNum.exec( jQuery.css( elem, prop ) );
+
+	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+		// Support: Firefox <=54
+		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
+		initial = initial / 2;
+
+		// Trust units reported by jQuery.css
+		unit = unit || initialInUnit[ 3 ];
+
+		// Iteratively approximate from a nonzero starting point
+		initialInUnit = +initial || 1;
+
+		while ( maxIterations-- ) {
+
+			// Evaluate and update our best guess (doubling guesses that zero out).
+			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
+			jQuery.style( elem, prop, initialInUnit + unit );
+			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
+				maxIterations = 0;
+			}
+			initialInUnit = initialInUnit / scale;
+
+		}
+
+		initialInUnit = initialInUnit * 2;
+		jQuery.style( elem, prop, initialInUnit + unit );
+
+		// Make sure we update the tween properties later on
+		valueParts = valueParts || [];
+	}
+
+	if ( valueParts ) {
+		initialInUnit = +initialInUnit || +initial || 0;
+
+		// Apply relative offset (+=/-=) if specified
+		adjusted = valueParts[ 1 ] ?
+			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+			+valueParts[ 2 ];
+		if ( tween ) {
+			tween.unit = unit;
+			tween.start = initialInUnit;
+			tween.end = adjusted;
+		}
+	}
+	return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+	var temp,
+		doc = elem.ownerDocument,
+		nodeName = elem.nodeName,
+		display = defaultDisplayMap[ nodeName ];
+
+	if ( display ) {
+		return display;
+	}
+
+	temp = doc.body.appendChild( doc.createElement( nodeName ) );
+	display = jQuery.css( temp, "display" );
+
+	temp.parentNode.removeChild( temp );
+
+	if ( display === "none" ) {
+		display = "block";
+	}
+	defaultDisplayMap[ nodeName ] = display;
+
+	return display;
+}
+
+function showHide( elements, show ) {
+	var display, elem,
+		values = [],
+		index = 0,
+		length = elements.length;
+
+	// Determine new display value for elements that need to change
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+
+		display = elem.style.display;
+		if ( show ) {
+
+			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+			// check is required in this first loop unless we have a nonempty display value (either
+			// inline or about-to-be-restored)
+			if ( display === "none" ) {
+				values[ index ] = dataPriv.get( elem, "display" ) || null;
+				if ( !values[ index ] ) {
+					elem.style.display = "";
+				}
+			}
+			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+				values[ index ] = getDefaultDisplay( elem );
+			}
+		} else {
+			if ( display !== "none" ) {
+				values[ index ] = "none";
+
+				// Remember what we're overwriting
+				dataPriv.set( elem, "display", display );
+			}
+		}
+	}
+
+	// Set the display of the elements in a second loop to avoid constant reflow
+	for ( index = 0; index < length; index++ ) {
+		if ( values[ index ] != null ) {
+			elements[ index ].style.display = values[ index ];
+		}
+	}
+
+	return elements;
+}
+
+jQuery.fn.extend( {
+	show: function() {
+		return showHide( this, true );
+	},
+	hide: function() {
+		return showHide( this );
+	},
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each( function() {
+			if ( isHiddenWithinTree( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		} );
+	}
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+	// Support: IE <=9 only
+	option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+	// XHTML parsers do not magically insert elements in the
+	// same way that tag soup parsers do. So we cannot shorten
+	// this by omitting <tbody> or other required elements.
+	thead: [ 1, "<table>", "</table>" ],
+	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+	_default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+	// Support: IE <=9 - 11 only
+	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
+	var ret;
+
+	if ( typeof context.getElementsByTagName !== "undefined" ) {
+		ret = context.getElementsByTagName( tag || "*" );
+
+	} else if ( typeof context.querySelectorAll !== "undefined" ) {
+		ret = context.querySelectorAll( tag || "*" );
+
+	} else {
+		ret = [];
+	}
+
+	if ( tag === undefined || tag && nodeName( context, tag ) ) {
+		return jQuery.merge( [ context ], ret );
+	}
+
+	return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		dataPriv.set(
+			elems[ i ],
+			"globalEval",
+			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
+		);
+	}
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+	var elem, tmp, tag, wrap, contains, j,
+		fragment = context.createDocumentFragment(),
+		nodes = [],
+		i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		elem = elems[ i ];
+
+		if ( elem || elem === 0 ) {
+
+			// Add nodes directly
+			if ( toType( elem ) === "object" ) {
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+			// Convert non-html into a text node
+			} else if ( !rhtml.test( elem ) ) {
+				nodes.push( context.createTextNode( elem ) );
+
+			// Convert html into DOM nodes
+			} else {
+				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+				// Deserialize a standard representation
+				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+				wrap = wrapMap[ tag ] || wrapMap._default;
+				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+				// Descend through wrappers to the right content
+				j = wrap[ 0 ];
+				while ( j-- ) {
+					tmp = tmp.lastChild;
+				}
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, tmp.childNodes );
+
+				// Remember the top-level container
+				tmp = fragment.firstChild;
+
+				// Ensure the created nodes are orphaned (#12392)
+				tmp.textContent = "";
+			}
+		}
+	}
+
+	// Remove wrapper from fragment
+	fragment.textContent = "";
+
+	i = 0;
+	while ( ( elem = nodes[ i++ ] ) ) {
+
+		// Skip elements already in the context collection (trac-4087)
+		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+			if ( ignored ) {
+				ignored.push( elem );
+			}
+			continue;
+		}
+
+		contains = jQuery.contains( elem.ownerDocument, elem );
+
+		// Append to fragment
+		tmp = getAll( fragment.appendChild( elem ), "script" );
+
+		// Preserve script evaluation history
+		if ( contains ) {
+			setGlobalEval( tmp );
+		}
+
+		// Capture executables
+		if ( scripts ) {
+			j = 0;
+			while ( ( elem = tmp[ j++ ] ) ) {
+				if ( rscriptType.test( elem.type || "" ) ) {
+					scripts.push( elem );
+				}
+			}
+		}
+	}
+
+	return fragment;
+}
+
+
+( function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Android 4.0 - 4.3 only
+	// Check state lost if the name is set (#11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (#14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Android <=4.1 only
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE <=11 only
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+	var origFn, type;
+
+	// Types can be a map of types/handlers
+	if ( typeof types === "object" ) {
+
+		// ( types-Object, selector, data )
+		if ( typeof selector !== "string" ) {
+
+			// ( types-Object, data )
+			data = data || selector;
+			selector = undefined;
+		}
+		for ( type in types ) {
+			on( elem, type, selector, data, types[ type ], one );
+		}
+		return elem;
+	}
+
+	if ( data == null && fn == null ) {
+
+		// ( types, fn )
+		fn = selector;
+		data = selector = undefined;
+	} else if ( fn == null ) {
+		if ( typeof selector === "string" ) {
+
+			// ( types, selector, fn )
+			fn = data;
+			data = undefined;
+		} else {
+
+			// ( types, data, fn )
+			fn = data;
+			data = selector;
+			selector = undefined;
+		}
+	}
+	if ( fn === false ) {
+		fn = returnFalse;
+	} else if ( !fn ) {
+		return elem;
+	}
+
+	if ( one === 1 ) {
+		origFn = fn;
+		fn = function( event ) {
+
+			// Can use an empty set, since event contains the info
+			jQuery().off( event );
+			return origFn.apply( this, arguments );
+		};
+
+		// Use same guid so caller can remove using origFn
+		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+	}
+	return elem.each( function() {
+		jQuery.event.add( this, types, fn, data, selector );
+	} );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	global: {},
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var handleObjIn, eventHandle, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.get( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Ensure that invalid selectors throw exceptions at attach time
+		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
+		if ( selector ) {
+			jQuery.find.matchesSelector( documentElement, selector );
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		if ( !( events = elemData.events ) ) {
+			events = elemData.events = {};
+		}
+		if ( !( eventHandle = elemData.handle ) ) {
+			eventHandle = elemData.handle = function( e ) {
+
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+			};
+		}
+
+		// Handle multiple events separated by a space
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend( {
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join( "." )
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			if ( !( handlers = events[ type ] ) ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener if the special events handler returns false
+				if ( !special.setup ||
+					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+	},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var j, origCount, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+		if ( !elemData || !( events = elemData.events ) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[ 2 ] &&
+				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector ||
+						selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
+
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown ||
+					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove data and the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			dataPriv.remove( elem, "handle events" );
+		}
+	},
+
+	dispatch: function( nativeEvent ) {
+
+		// Make a writable jQuery.Event from the native event object
+		var event = jQuery.event.fix( nativeEvent );
+
+		var i, j, ret, matched, handleObj, handlerQueue,
+			args = new Array( arguments.length ),
+			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[ 0 ] = event;
+
+		for ( i = 1; i < arguments.length; i++ ) {
+			args[ i ] = arguments[ i ];
+		}
+
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
+
+			j = 0;
+			while ( ( handleObj = matched.handlers[ j++ ] ) &&
+				!event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
+				// a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+						handleObj.handler ).apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( ( event.result = ret ) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	handlers: function( event, handlers ) {
+		var i, handleObj, sel, matchedHandlers, matchedSelectors,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
+
+		// Find delegate handlers
+		if ( delegateCount &&
+
+			// Support: IE <=9
+			// Black-hole SVG <use> instance trees (trac-13180)
+			cur.nodeType &&
+
+			// Support: Firefox <=42
+			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+			// Support: IE 11 only
+			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+			!( event.type === "click" && event.button >= 1 ) ) {
+
+			for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+				// Don't check non-elements (#13208)
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+					matchedHandlers = [];
+					matchedSelectors = {};
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matchedSelectors[ sel ] === undefined ) {
+							matchedSelectors[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) > -1 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matchedSelectors[ sel ] ) {
+							matchedHandlers.push( handleObj );
+						}
+					}
+					if ( matchedHandlers.length ) {
+						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		cur = this;
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+		}
+
+		return handlerQueue;
+	},
+
+	addProp: function( name, hook ) {
+		Object.defineProperty( jQuery.Event.prototype, name, {
+			enumerable: true,
+			configurable: true,
+
+			get: isFunction( hook ) ?
+				function() {
+					if ( this.originalEvent ) {
+							return hook( this.originalEvent );
+					}
+				} :
+				function() {
+					if ( this.originalEvent ) {
+							return this.originalEvent[ name ];
+					}
+				},
+
+			set: function( value ) {
+				Object.defineProperty( this, name, {
+					enumerable: true,
+					configurable: true,
+					writable: true,
+					value: value
+				} );
+			}
+		} );
+	},
+
+	fix: function( originalEvent ) {
+		return originalEvent[ jQuery.expando ] ?
+			originalEvent :
+			new jQuery.Event( originalEvent );
+	},
+
+	special: {
+		load: {
+
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+		focus: {
+
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
+				}
+			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
+					this.click();
+					return false;
+				}
+			},
+
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return nodeName( event.target, "a" );
+			}
+		},
+
+		beforeunload: {
+			postDispatch: function( event ) {
+
+				// Support: Firefox 20+
+				// Firefox doesn't alert if the returnValue field is not set.
+				if ( event.result !== undefined && event.originalEvent ) {
+					event.originalEvent.returnValue = event.result;
+				}
+			}
+		}
+	}
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+	// This "if" is needed for plain objects
+	if ( elem.removeEventListener ) {
+		elem.removeEventListener( type, handle );
+	}
+};
+
+jQuery.Event = function( src, props ) {
+
+	// Allow instantiation without the 'new' keyword
+	if ( !( this instanceof jQuery.Event ) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = src.defaultPrevented ||
+				src.defaultPrevented === undefined &&
+
+				// Support: Android <=2.3 only
+				src.returnValue === false ?
+			returnTrue :
+			returnFalse;
+
+		// Create target properties
+		// Support: Safari <=6 - 7 only
+		// Target should not be a text node (#504, #13143)
+		this.target = ( src.target && src.target.nodeType === 3 ) ?
+			src.target.parentNode :
+			src.target;
+
+		this.currentTarget = src.currentTarget;
+		this.relatedTarget = src.relatedTarget;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || Date.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	constructor: jQuery.Event,
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
+	isSimulated: false,
+
+	preventDefault: function() {
+		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.preventDefault();
+		}
+	},
+	stopPropagation: function() {
+		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopPropagation();
+		}
+	},
+	stopImmediatePropagation: function() {
+		var e = this.originalEvent;
+
+		this.isImmediatePropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopImmediatePropagation();
+		}
+
+		this.stopPropagation();
+	}
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+	altKey: true,
+	bubbles: true,
+	cancelable: true,
+	changedTouches: true,
+	ctrlKey: true,
+	detail: true,
+	eventPhase: true,
+	metaKey: true,
+	pageX: true,
+	pageY: true,
+	shiftKey: true,
+	view: true,
+	"char": true,
+	charCode: true,
+	key: true,
+	keyCode: true,
+	button: true,
+	buttons: true,
+	clientX: true,
+	clientY: true,
+	offsetX: true,
+	offsetY: true,
+	pointerId: true,
+	pointerType: true,
+	screenX: true,
+	screenY: true,
+	targetTouches: true,
+	toElement: true,
+	touches: true,
+
+	which: function( event ) {
+		var button = event.button;
+
+		// Add which for key events
+		if ( event.which == null && rkeyEvent.test( event.type ) ) {
+			return event.charCode != null ? event.charCode : event.keyCode;
+		}
+
+		// Add which for click: 1 === left; 2 === middle; 3 === right
+		if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+			if ( button & 1 ) {
+				return 1;
+			}
+
+			if ( button & 2 ) {
+				return 3;
+			}
+
+			if ( button & 4 ) {
+				return 2;
+			}
+
+			return 0;
+		}
+
+		return event.which;
+	}
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+	mouseenter: "mouseover",
+	mouseleave: "mouseout",
+	pointerenter: "pointerover",
+	pointerleave: "pointerout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mouseenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+} );
+
+jQuery.fn.extend( {
+
+	on: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn );
+	},
+	one: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ?
+					handleObj.origType + "." + handleObj.namespace :
+					handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each( function() {
+			jQuery.event.remove( this, types, fn, selector );
+		} );
+	}
+} );
+
+
+var
+
+	/* eslint-disable max-len */
+
+	// See https://github.com/eslint/eslint/issues/3229
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+	/* eslint-enable */
+
+	// Support: IE <=10 - 11, Edge 12 - 13 only
+	// In IE/Edge using regex groups here causes severe slowdowns.
+	// See https://connect.microsoft.com/IE/feedback/details/1736512/
+	rnoInnerhtml = /<script|<style|<link/i,
+
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Prefer a tbody over its parent table for containing new rows
+function manipulationTarget( elem, content ) {
+	if ( nodeName( elem, "table" ) &&
+		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
+	}
+
+	return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
+		elem.type = elem.type.slice( 5 );
+	} else {
+		elem.removeAttribute( "type" );
+	}
+
+	return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// 1. Copy private data: events, handlers, etc.
+	if ( dataPriv.hasData( src ) ) {
+		pdataOld = dataPriv.access( src );
+		pdataCur = dataPriv.set( dest, pdataOld );
+		events = pdataOld.events;
+
+		if ( events ) {
+			delete pdataCur.handle;
+			pdataCur.events = {};
+
+			for ( type in events ) {
+				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+					jQuery.event.add( dest, type, events[ type ][ i ] );
+				}
+			}
+		}
+	}
+
+	// 2. Copy user data
+	if ( dataUser.hasData( src ) ) {
+		udataOld = dataUser.access( src );
+		udataCur = jQuery.extend( {}, udataOld );
+
+		dataUser.set( dest, udataCur );
+	}
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+	var nodeName = dest.nodeName.toLowerCase();
+
+	// Fails to persist the checked state of a cloned checkbox or radio button.
+	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+		dest.checked = src.checked;
+
+	// Fails to return the selected option to the default selected state when cloning options
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+	// Flatten any nested arrays
+	args = concat.apply( [], args );
+
+	var fragment, first, scripts, hasScripts, node, doc,
+		i = 0,
+		l = collection.length,
+		iNoClone = l - 1,
+		value = args[ 0 ],
+		valueIsFunction = isFunction( value );
+
+	// We can't cloneNode fragments that contain checked, in WebKit
+	if ( valueIsFunction ||
+			( l > 1 && typeof value === "string" &&
+				!support.checkClone && rchecked.test( value ) ) ) {
+		return collection.each( function( index ) {
+			var self = collection.eq( index );
+			if ( valueIsFunction ) {
+				args[ 0 ] = value.call( this, index, self.html() );
+			}
+			domManip( self, args, callback, ignored );
+		} );
+	}
+
+	if ( l ) {
+		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+		first = fragment.firstChild;
+
+		if ( fragment.childNodes.length === 1 ) {
+			fragment = first;
+		}
+
+		// Require either new content or an interest in ignored elements to invoke the callback
+		if ( first || ignored ) {
+			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+			hasScripts = scripts.length;
+
+			// Use the original fragment for the last item
+			// instead of the first because it can end up
+			// being emptied incorrectly in certain situations (#8070).
+			for ( ; i < l; i++ ) {
+				node = fragment;
+
+				if ( i !== iNoClone ) {
+					node = jQuery.clone( node, true, true );
+
+					// Keep references to cloned scripts for later restoration
+					if ( hasScripts ) {
+
+						// Support: Android <=4.0 only, PhantomJS 1 only
+						// push.apply(_, arraylike) throws on ancient WebKit
+						jQuery.merge( scripts, getAll( node, "script" ) );
+					}
+				}
+
+				callback.call( collection[ i ], node, i );
+			}
+
+			if ( hasScripts ) {
+				doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+				// Reenable scripts
+				jQuery.map( scripts, restoreScript );
+
+				// Evaluate executable scripts on first document insertion
+				for ( i = 0; i < hasScripts; i++ ) {
+					node = scripts[ i ];
+					if ( rscriptType.test( node.type || "" ) &&
+						!dataPriv.access( node, "globalEval" ) &&
+						jQuery.contains( doc, node ) ) {
+
+						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
+
+							// Optional AJAX dependency, but won't run scripts if not present
+							if ( jQuery._evalUrl ) {
+								jQuery._evalUrl( node.src );
+							}
+						} else {
+							DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return collection;
+}
+
+function remove( elem, selector, keepData ) {
+	var node,
+		nodes = selector ? jQuery.filter( selector, elem ) : elem,
+		i = 0;
+
+	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+		if ( !keepData && node.nodeType === 1 ) {
+			jQuery.cleanData( getAll( node ) );
+		}
+
+		if ( node.parentNode ) {
+			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+				setGlobalEval( getAll( node, "script" ) );
+			}
+			node.parentNode.removeChild( node );
+		}
+	}
+
+	return elem;
+}
+
+jQuery.extend( {
+	htmlPrefilter: function( html ) {
+		return html.replace( rxhtmlTag, "<$1></$2>" );
+	},
+
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var i, l, srcElements, destElements,
+			clone = elem.cloneNode( true ),
+			inPage = jQuery.contains( elem.ownerDocument, elem );
+
+		// Fix IE cloning issues
+		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+				!jQuery.isXMLDoc( elem ) ) {
+
+			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
+
+			for ( i = 0, l = srcElements.length; i < l; i++ ) {
+				fixInput( srcElements[ i ], destElements[ i ] );
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
+
+				for ( i = 0, l = srcElements.length; i < l; i++ ) {
+					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+				}
+			} else {
+				cloneCopyEvent( elem, clone );
+			}
+		}
+
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+		}
+
+		// Return the cloned set
+		return clone;
+	},
+
+	cleanData: function( elems ) {
+		var data, elem, type,
+			special = jQuery.event.special,
+			i = 0;
+
+		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+			if ( acceptData( elem ) ) {
+				if ( ( data = elem[ dataPriv.expando ] ) ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
+
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
+							}
+						}
+					}
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataPriv.expando ] = undefined;
+				}
+				if ( elem[ dataUser.expando ] ) {
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataUser.expando ] = undefined;
+				}
+			}
+		}
+	}
+} );
+
+jQuery.fn.extend( {
+	detach: function( selector ) {
+		return remove( this, selector, true );
+	},
+
+	remove: function( selector ) {
+		return remove( this, selector );
+	},
+
+	text: function( value ) {
+		return access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().each( function() {
+					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+						this.textContent = value;
+					}
+				} );
+		}, null, value, arguments.length );
+	},
+
+	append: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		} );
+	},
+
+	prepend: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		} );
+	},
+
+	before: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		} );
+	},
+
+	after: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			}
+		} );
+	},
+
+	empty: function() {
+		var elem,
+			i = 0;
+
+		for ( ; ( elem = this[ i ] ) != null; i++ ) {
+			if ( elem.nodeType === 1 ) {
+
+				// Prevent memory leaks
+				jQuery.cleanData( getAll( elem, false ) );
+
+				// Remove any remaining nodes
+				elem.textContent = "";
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function() {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		} );
+	},
+
+	html: function( value ) {
+		return access( this, function( value ) {
+			var elem = this[ 0 ] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined && elem.nodeType === 1 ) {
+				return elem.innerHTML;
+			}
+
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+				value = jQuery.htmlPrefilter( value );
+
+				try {
+					for ( ; i < l; i++ ) {
+						elem = this[ i ] || {};
+
+						// Remove element nodes and prevent memory leaks
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch ( e ) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function() {
+		var ignored = [];
+
+		// Make the changes, replacing each non-ignored context element with the new content
+		return domManip( this, arguments, function( elem ) {
+			var parent = this.parentNode;
+
+			if ( jQuery.inArray( this, ignored ) < 0 ) {
+				jQuery.cleanData( getAll( this ) );
+				if ( parent ) {
+					parent.replaceChild( elem, this );
+				}
+			}
+
+		// Force callback invocation
+		}, ignored );
+	}
+} );
+
+jQuery.each( {
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1,
+			i = 0;
+
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone( true );
+			jQuery( insert[ i ] )[ original ]( elems );
+
+			// Support: Android <=4.0 only, PhantomJS 1 only
+			// .get() because push.apply(_, arraylike) throws on ancient WebKit
+			push.apply( ret, elems.get() );
+		}
+
+		return this.pushStack( ret );
+	};
+} );
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+		// IE throws on elements created in popups
+		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+		var view = elem.ownerDocument.defaultView;
+
+		if ( !view || !view.opener ) {
+			view = window;
+		}
+
+		return view.getComputedStyle( elem );
+	};
+
+var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
+
+
+
+( function() {
+
+	// Executing both pixelPosition & boxSizingReliable tests require only one layout
+	// so they're executed at the same time to save the second computation.
+	function computeStyleTests() {
+
+		// This is a singleton, we need to execute it only once
+		if ( !div ) {
+			return;
+		}
+
+		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
+			"margin-top:1px;padding:0;border:0";
+		div.style.cssText =
+			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
+			"margin:auto;border:1px;padding:1px;" +
+			"width:60%;top:1%";
+		documentElement.appendChild( container ).appendChild( div );
+
+		var divStyle = window.getComputedStyle( div );
+		pixelPositionVal = divStyle.top !== "1%";
+
+		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
+
+		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
+		// Some styles come back with percentage values, even though they shouldn't
+		div.style.right = "60%";
+		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
+
+		// Support: IE 9 - 11 only
+		// Detect misreporting of content dimensions for box-sizing:border-box elements
+		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
+
+		// Support: IE 9 only
+		// Detect overflow:scroll screwiness (gh-3699)
+		div.style.position = "absolute";
+		scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
+
+		documentElement.removeChild( container );
+
+		// Nullify the div so it wouldn't be stored in the memory and
+		// it will also be a sign that checks already performed
+		div = null;
+	}
+
+	function roundPixelMeasures( measure ) {
+		return Math.round( parseFloat( measure ) );
+	}
+
+	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
+		reliableMarginLeftVal,
+		container = document.createElement( "div" ),
+		div = document.createElement( "div" );
+
+	// Finish early in limited (non-browser) environments
+	if ( !div.style ) {
+		return;
+	}
+
+	// Support: IE <=9 - 11 only
+	// Style of cloned element affects source element cloned (#8908)
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+	jQuery.extend( support, {
+		boxSizingReliable: function() {
+			computeStyleTests();
+			return boxSizingReliableVal;
+		},
+		pixelBoxStyles: function() {
+			computeStyleTests();
+			return pixelBoxStylesVal;
+		},
+		pixelPosition: function() {
+			computeStyleTests();
+			return pixelPositionVal;
+		},
+		reliableMarginLeft: function() {
+			computeStyleTests();
+			return reliableMarginLeftVal;
+		},
+		scrollboxSize: function() {
+			computeStyleTests();
+			return scrollboxSizeVal;
+		}
+	} );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+	var width, minWidth, maxWidth, ret,
+
+		// Support: Firefox 51+
+		// Retrieving style before computed somehow
+		// fixes an issue with getting wrong values
+		// on detached elements
+		style = elem.style;
+
+	computed = computed || getStyles( elem );
+
+	// getPropertyValue is needed for:
+	//   .css('filter') (IE 9 only, #12537)
+	//   .css('--customProperty) (#3144)
+	if ( computed ) {
+		ret = computed.getPropertyValue( name ) || computed[ name ];
+
+		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+			ret = jQuery.style( elem, name );
+		}
+
+		// A tribute to the "awesome hack by Dean Edwards"
+		// Android Browser returns percentage for some values,
+		// but width seems to be reliably pixels.
+		// This is against the CSSOM draft spec:
+		// https://drafts.csswg.org/cssom/#resolved-values
+		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
+
+			// Remember the original values
+			width = style.width;
+			minWidth = style.minWidth;
+			maxWidth = style.maxWidth;
+
+			// Put in the new values to get a computed value out
+			style.minWidth = style.maxWidth = style.width = ret;
+			ret = computed.width;
+
+			// Revert the changed values
+			style.width = width;
+			style.minWidth = minWidth;
+			style.maxWidth = maxWidth;
+		}
+	}
+
+	return ret !== undefined ?
+
+		// Support: IE <=9 - 11 only
+		// IE returns zIndex value as an integer.
+		ret + "" :
+		ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+	// Define the hook, we'll check on the first run if it's really needed.
+	return {
+		get: function() {
+			if ( conditionFn() ) {
+
+				// Hook not needed (or it's not possible to use it due
+				// to missing dependency), remove it.
+				delete this.get;
+				return;
+			}
+
+			// Hook needed; redefine it so that the support test is not executed again.
+			return ( this.get = hookFn ).apply( this, arguments );
+		}
+	};
+}
+
+
+var
+
+	// Swappable if display is none or starts with table
+	// except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	rcustomProp = /^--/,
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	},
+
+	cssPrefixes = [ "Webkit", "Moz", "ms" ],
+	emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+	// Shortcut for names that are not vendor prefixed
+	if ( name in emptyStyle ) {
+		return name;
+	}
+
+	// Check for vendor prefixed names
+	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+		i = cssPrefixes.length;
+
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in emptyStyle ) {
+			return name;
+		}
+	}
+}
+
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
+function finalPropName( name ) {
+	var ret = jQuery.cssProps[ name ];
+	if ( !ret ) {
+		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+	}
+	return ret;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+	// Any relative (+/-) values have already been
+	// normalized at this point
+	var matches = rcssNum.exec( value );
+	return matches ?
+
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+		value;
+}
+
+function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
+	var i = dimension === "width" ? 1 : 0,
+		extra = 0,
+		delta = 0;
+
+	// Adjustment may not be necessary
+	if ( box === ( isBorderBox ? "border" : "content" ) ) {
+		return 0;
+	}
+
+	for ( ; i < 4; i += 2 ) {
+
+		// Both box models exclude margin
+		if ( box === "margin" ) {
+			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
+		}
+
+		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
+		if ( !isBorderBox ) {
+
+			// Add padding
+			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// For "border" or "margin", add border
+			if ( box !== "padding" ) {
+				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+
+			// But still keep track of it otherwise
+			} else {
+				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+
+		// If we get here with a border-box (content + padding + border), we're seeking "content" or
+		// "padding" or "margin"
+		} else {
+
+			// For "content", subtract padding
+			if ( box === "content" ) {
+				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
+
+			// For "content" or "padding", subtract border
+			if ( box !== "margin" ) {
+				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		}
+	}
+
+	// Account for positive content-box scroll gutter when requested by providing computedVal
+	if ( !isBorderBox && computedVal >= 0 ) {
+
+		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
+		// Assuming integer scroll gutter, subtract the rest and round down
+		delta += Math.max( 0, Math.ceil(
+			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+			computedVal -
+			delta -
+			extra -
+			0.5
+		) );
+	}
+
+	return delta;
+}
+
+function getWidthOrHeight( elem, dimension, extra ) {
+
+	// Start with computed style
+	var styles = getStyles( elem ),
+		val = curCSS( elem, dimension, styles ),
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+		valueIsBorderBox = isBorderBox;
+
+	// Support: Firefox <=54
+	// Return a confounding non-pixel value or feign ignorance, as appropriate.
+	if ( rnumnonpx.test( val ) ) {
+		if ( !extra ) {
+			return val;
+		}
+		val = "auto";
+	}
+
+	// Check for style in case a browser which returns unreliable values
+	// for getComputedStyle silently falls back to the reliable elem.style
+	valueIsBorderBox = valueIsBorderBox &&
+		( support.boxSizingReliable() || val === elem.style[ dimension ] );
+
+	// Fall back to offsetWidth/offsetHeight when value is "auto"
+	// This happens for inline elements with no explicit setting (gh-3571)
+	// Support: Android <=4.1 - 4.3 only
+	// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
+	if ( val === "auto" ||
+		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
+
+		val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
+
+		// offsetWidth/offsetHeight provide border-box values
+		valueIsBorderBox = true;
+	}
+
+	// Normalize "" and auto
+	val = parseFloat( val ) || 0;
+
+	// Adjust for the element's box model
+	return ( val +
+		boxModelAdjustment(
+			elem,
+			dimension,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles,
+
+			// Provide the current computed size to request scroll gutter calculation (gh-3589)
+			val
+		)
+	) + "px";
+}
+
+jQuery.extend( {
+
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
+
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"animationIterationCount": true,
+		"columnCount": true,
+		"fillOpacity": true,
+		"flexGrow": true,
+		"flexShrink": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name ),
+			style = elem.style;
+
+		// Make sure that we're working with the right name. We don't
+		// want to query the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Gets hook for the prefixed version, then unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// Convert "+=" or "-=" to relative numbers (#7345)
+			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+				value = adjustCSS( elem, name, ret );
+
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that null and NaN values aren't set (#7116)
+			if ( value == null || value !== value ) {
+				return;
+			}
+
+			// If a number was passed in, add the unit (except for certain CSS properties)
+			if ( type === "number" ) {
+				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+			}
+
+			// background-* props affect original clone's values
+			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+				style[ name ] = "inherit";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !( "set" in hooks ) ||
+				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+				if ( isCustomProp ) {
+					style.setProperty( name, value );
+				} else {
+					style[ name ] = value;
+				}
+			}
+
+		} else {
+
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks &&
+				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra, styles ) {
+		var val, num, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name );
+
+		// Make sure that we're working with the right name. We don't
+		// want to modify the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Try prefixed name followed by the unprefixed name
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
+
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
+
+		// Convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
+
+		// Make numeric if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || isFinite( num ) ? num || 0 : val;
+		}
+
+		return val;
+	}
+} );
+
+jQuery.each( [ "height", "width" ], function( i, dimension ) {
+	jQuery.cssHooks[ dimension ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+
+				// Certain elements can have dimension info if we invisibly show them
+				// but it must have a current display style that would benefit
+				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+					// Support: Safari 8+
+					// Table columns in Safari have non-zero offsetWidth & zero
+					// getBoundingClientRect().width unless display is changed.
+					// Support: IE <=11 only
+					// Running getBoundingClientRect on a disconnected node
+					// in IE throws an error.
+					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+						swap( elem, cssShow, function() {
+							return getWidthOrHeight( elem, dimension, extra );
+						} ) :
+						getWidthOrHeight( elem, dimension, extra );
+			}
+		},
+
+		set: function( elem, value, extra ) {
+			var matches,
+				styles = getStyles( elem ),
+				isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+				subtract = extra && boxModelAdjustment(
+					elem,
+					dimension,
+					extra,
+					isBorderBox,
+					styles
+				);
+
+			// Account for unreliable border-box dimensions by comparing offset* to computed and
+			// faking a content-box to get border and padding (gh-3699)
+			if ( isBorderBox && support.scrollboxSize() === styles.position ) {
+				subtract -= Math.ceil(
+					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+					parseFloat( styles[ dimension ] ) -
+					boxModelAdjustment( elem, dimension, "border", false, styles ) -
+					0.5
+				);
+			}
+
+			// Convert to pixels if value adjustment is needed
+			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+				( matches[ 3 ] || "px" ) !== "px" ) {
+
+				elem.style[ dimension ] = value;
+				value = jQuery.css( elem, dimension );
+			}
+
+			return setPositiveNumber( elem, value, subtract );
+		}
+	};
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+	function( elem, computed ) {
+		if ( computed ) {
+			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+				elem.getBoundingClientRect().left -
+					swap( elem, { marginLeft: 0 }, function() {
+						return elem.getBoundingClientRect().left;
+					} )
+				) + "px";
+		}
+	}
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
+
+				// Assumes a single number if not a string
+				parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+
+	if ( prefix !== "margin" ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+	}
+} );
+
+jQuery.fn.extend( {
+	css: function( name, value ) {
+		return access( this, function( elem, name, value ) {
+			var styles, len,
+				map = {},
+				i = 0;
+
+			if ( Array.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
+	}
+} );
+
+
+function Tween( elem, options, prop, end, easing ) {
+	return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+	constructor: Tween,
+	init: function( elem, options, prop, end, easing, unit ) {
+		this.elem = elem;
+		this.prop = prop;
+		this.easing = easing || jQuery.easing._default;
+		this.options = options;
+		this.start = this.now = this.cur();
+		this.end = end;
+		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+	},
+	cur: function() {
+		var hooks = Tween.propHooks[ this.prop ];
+
+		return hooks && hooks.get ?
+			hooks.get( this ) :
+			Tween.propHooks._default.get( this );
+	},
+	run: function( percent ) {
+		var eased,
+			hooks = Tween.propHooks[ this.prop ];
+
+		if ( this.options.duration ) {
+			this.pos = eased = jQuery.easing[ this.easing ](
+				percent, this.options.duration * percent, 0, 1, this.options.duration
+			);
+		} else {
+			this.pos = eased = percent;
+		}
+		this.now = ( this.end - this.start ) * eased + this.start;
+
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		if ( hooks && hooks.set ) {
+			hooks.set( this );
+		} else {
+			Tween.propHooks._default.set( this );
+		}
+		return this;
+	}
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+	_default: {
+		get: function( tween ) {
+			var result;
+
+			// Use a property on the element directly when it is not a DOM element,
+			// or when there is no matching style property that exists.
+			if ( tween.elem.nodeType !== 1 ||
+				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+				return tween.elem[ tween.prop ];
+			}
+
+			// Passing an empty string as a 3rd parameter to .css will automatically
+			// attempt a parseFloat and fallback to a string if the parse fails.
+			// Simple values such as "10px" are parsed to Float;
+			// complex values such as "rotate(1rad)" are returned as-is.
+			result = jQuery.css( tween.elem, tween.prop, "" );
+
+			// Empty strings, null, undefined and "auto" are converted to 0.
+			return !result || result === "auto" ? 0 : result;
+		},
+		set: function( tween ) {
+
+			// Use step hook for back compat.
+			// Use cssHook if its there.
+			// Use .style if available and use plain properties where available.
+			if ( jQuery.fx.step[ tween.prop ] ) {
+				jQuery.fx.step[ tween.prop ]( tween );
+			} else if ( tween.elem.nodeType === 1 &&
+				( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+					jQuery.cssHooks[ tween.prop ] ) ) {
+				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+			} else {
+				tween.elem[ tween.prop ] = tween.now;
+			}
+		}
+	}
+};
+
+// Support: IE <=9 only
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+	set: function( tween ) {
+		if ( tween.elem.nodeType && tween.elem.parentNode ) {
+			tween.elem[ tween.prop ] = tween.now;
+		}
+	}
+};
+
+jQuery.easing = {
+	linear: function( p ) {
+		return p;
+	},
+	swing: function( p ) {
+		return 0.5 - Math.cos( p * Math.PI ) / 2;
+	},
+	_default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+	fxNow, inProgress,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rrun = /queueHooks$/;
+
+function schedule() {
+	if ( inProgress ) {
+		if ( document.hidden === false && window.requestAnimationFrame ) {
+			window.requestAnimationFrame( schedule );
+		} else {
+			window.setTimeout( schedule, jQuery.fx.interval );
+		}
+
+		jQuery.fx.tick();
+	}
+}
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	window.setTimeout( function() {
+		fxNow = undefined;
+	} );
+	return ( fxNow = Date.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+	var which,
+		i = 0,
+		attrs = { height: type };
+
+	// If we include width, step value is 1 to do all cssExpand values,
+	// otherwise step value is 2 to skip over Left and Right
+	includeWidth = includeWidth ? 1 : 0;
+	for ( ; i < 4; i += 2 - includeWidth ) {
+		which = cssExpand[ i ];
+		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+	}
+
+	if ( includeWidth ) {
+		attrs.opacity = attrs.width = type;
+	}
+
+	return attrs;
+}
+
+function createTween( value, prop, animation ) {
+	var tween,
+		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+		index = 0,
+		length = collection.length;
+	for ( ; index < length; index++ ) {
+		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+			// We're done with this property
+			return tween;
+		}
+	}
+}
+
+function defaultPrefilter( elem, props, opts ) {
+	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
+		isBox = "width" in props || "height" in props,
+		anim = this,
+		orig = {},
+		style = elem.style,
+		hidden = elem.nodeType && isHiddenWithinTree( elem ),
+		dataShow = dataPriv.get( elem, "fxshow" );
+
+	// Queue-skipping animations hijack the fx hooks
+	if ( !opts.queue ) {
+		hooks = jQuery._queueHooks( elem, "fx" );
+		if ( hooks.unqueued == null ) {
+			hooks.unqueued = 0;
+			oldfire = hooks.empty.fire;
+			hooks.empty.fire = function() {
+				if ( !hooks.unqueued ) {
+					oldfire();
+				}
+			};
+		}
+		hooks.unqueued++;
+
+		anim.always( function() {
+
+			// Ensure the complete handler is called before this completes
+			anim.always( function() {
+				hooks.unqueued--;
+				if ( !jQuery.queue( elem, "fx" ).length ) {
+					hooks.empty.fire();
+				}
+			} );
+		} );
+	}
+
+	// Detect show/hide animations
+	for ( prop in props ) {
+		value = props[ prop ];
+		if ( rfxtypes.test( value ) ) {
+			delete props[ prop ];
+			toggle = toggle || value === "toggle";
+			if ( value === ( hidden ? "hide" : "show" ) ) {
+
+				// Pretend to be hidden if this is a "show" and
+				// there is still data from a stopped show/hide
+				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+					hidden = true;
+
+				// Ignore all other no-op show/hide data
+				} else {
+					continue;
+				}
+			}
+			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+		}
+	}
+
+	// Bail out if this is a no-op like .hide().hide()
+	propTween = !jQuery.isEmptyObject( props );
+	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
+		return;
+	}
+
+	// Restrict "overflow" and "display" styles during box animations
+	if ( isBox && elem.nodeType === 1 ) {
+
+		// Support: IE <=9 - 11, Edge 12 - 15
+		// Record all 3 overflow attributes because IE does not infer the shorthand
+		// from identically-valued overflowX and overflowY and Edge just mirrors
+		// the overflowX value there.
+		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+		// Identify a display type, preferring old show/hide data over the CSS cascade
+		restoreDisplay = dataShow && dataShow.display;
+		if ( restoreDisplay == null ) {
+			restoreDisplay = dataPriv.get( elem, "display" );
+		}
+		display = jQuery.css( elem, "display" );
+		if ( display === "none" ) {
+			if ( restoreDisplay ) {
+				display = restoreDisplay;
+			} else {
+
+				// Get nonempty value(s) by temporarily forcing visibility
+				showHide( [ elem ], true );
+				restoreDisplay = elem.style.display || restoreDisplay;
+				display = jQuery.css( elem, "display" );
+				showHide( [ elem ] );
+			}
+		}
+
+		// Animate inline elements as inline-block
+		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
+			if ( jQuery.css( elem, "float" ) === "none" ) {
+
+				// Restore the original display value at the end of pure show/hide animations
+				if ( !propTween ) {
+					anim.done( function() {
+						style.display = restoreDisplay;
+					} );
+					if ( restoreDisplay == null ) {
+						display = style.display;
+						restoreDisplay = display === "none" ? "" : display;
+					}
+				}
+				style.display = "inline-block";
+			}
+		}
+	}
+
+	if ( opts.overflow ) {
+		style.overflow = "hidden";
+		anim.always( function() {
+			style.overflow = opts.overflow[ 0 ];
+			style.overflowX = opts.overflow[ 1 ];
+			style.overflowY = opts.overflow[ 2 ];
+		} );
+	}
+
+	// Implement show/hide animations
+	propTween = false;
+	for ( prop in orig ) {
+
+		// General show/hide setup for this element animation
+		if ( !propTween ) {
+			if ( dataShow ) {
+				if ( "hidden" in dataShow ) {
+					hidden = dataShow.hidden;
+				}
+			} else {
+				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
+			}
+
+			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
+			if ( toggle ) {
+				dataShow.hidden = !hidden;
+			}
+
+			// Show elements before animating them
+			if ( hidden ) {
+				showHide( [ elem ], true );
+			}
+
+			/* eslint-disable no-loop-func */
+
+			anim.done( function() {
+
+			/* eslint-enable no-loop-func */
+
+				// The final step of a "hide" animation is actually hiding the element
+				if ( !hidden ) {
+					showHide( [ elem ] );
+				}
+				dataPriv.remove( elem, "fxshow" );
+				for ( prop in orig ) {
+					jQuery.style( elem, prop, orig[ prop ] );
+				}
+			} );
+		}
+
+		// Per-property setup
+		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+		if ( !( prop in dataShow ) ) {
+			dataShow[ prop ] = propTween.start;
+			if ( hidden ) {
+				propTween.end = propTween.start;
+				propTween.start = 0;
+			}
+		}
+	}
+}
+
+function propFilter( props, specialEasing ) {
+	var index, name, easing, value, hooks;
+
+	// camelCase, specialEasing and expand cssHook pass
+	for ( index in props ) {
+		name = camelCase( index );
+		easing = specialEasing[ name ];
+		value = props[ index ];
+		if ( Array.isArray( value ) ) {
+			easing = value[ 1 ];
+			value = props[ index ] = value[ 0 ];
+		}
+
+		if ( index !== name ) {
+			props[ name ] = value;
+			delete props[ index ];
+		}
+
+		hooks = jQuery.cssHooks[ name ];
+		if ( hooks && "expand" in hooks ) {
+			value = hooks.expand( value );
+			delete props[ name ];
+
+			// Not quite $.extend, this won't overwrite existing keys.
+			// Reusing 'index' because we have the correct "name"
+			for ( index in value ) {
+				if ( !( index in props ) ) {
+					props[ index ] = value[ index ];
+					specialEasing[ index ] = easing;
+				}
+			}
+		} else {
+			specialEasing[ name ] = easing;
+		}
+	}
+}
+
+function Animation( elem, properties, options ) {
+	var result,
+		stopped,
+		index = 0,
+		length = Animation.prefilters.length,
+		deferred = jQuery.Deferred().always( function() {
+
+			// Don't match elem in the :animated selector
+			delete tick.elem;
+		} ),
+		tick = function() {
+			if ( stopped ) {
+				return false;
+			}
+			var currentTime = fxNow || createFxNow(),
+				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+				// Support: Android 2.3 only
+				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+				temp = remaining / animation.duration || 0,
+				percent = 1 - temp,
+				index = 0,
+				length = animation.tweens.length;
+
+			for ( ; index < length; index++ ) {
+				animation.tweens[ index ].run( percent );
+			}
+
+			deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+			// If there's more to do, yield
+			if ( percent < 1 && length ) {
+				return remaining;
+			}
+
+			// If this was an empty animation, synthesize a final progress notification
+			if ( !length ) {
+				deferred.notifyWith( elem, [ animation, 1, 0 ] );
+			}
+
+			// Resolve the animation and report its conclusion
+			deferred.resolveWith( elem, [ animation ] );
+			return false;
+		},
+		animation = deferred.promise( {
+			elem: elem,
+			props: jQuery.extend( {}, properties ),
+			opts: jQuery.extend( true, {
+				specialEasing: {},
+				easing: jQuery.easing._default
+			}, options ),
+			originalProperties: properties,
+			originalOptions: options,
+			startTime: fxNow || createFxNow(),
+			duration: options.duration,
+			tweens: [],
+			createTween: function( prop, end ) {
+				var tween = jQuery.Tween( elem, animation.opts, prop, end,
+						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+				animation.tweens.push( tween );
+				return tween;
+			},
+			stop: function( gotoEnd ) {
+				var index = 0,
+
+					// If we are going to the end, we want to run all the tweens
+					// otherwise we skip this part
+					length = gotoEnd ? animation.tweens.length : 0;
+				if ( stopped ) {
+					return this;
+				}
+				stopped = true;
+				for ( ; index < length; index++ ) {
+					animation.tweens[ index ].run( 1 );
+				}
+
+				// Resolve when we played the last frame; otherwise, reject
+				if ( gotoEnd ) {
+					deferred.notifyWith( elem, [ animation, 1, 0 ] );
+					deferred.resolveWith( elem, [ animation, gotoEnd ] );
+				} else {
+					deferred.rejectWith( elem, [ animation, gotoEnd ] );
+				}
+				return this;
+			}
+		} ),
+		props = animation.props;
+
+	propFilter( props, animation.opts.specialEasing );
+
+	for ( ; index < length; index++ ) {
+		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+		if ( result ) {
+			if ( isFunction( result.stop ) ) {
+				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+					result.stop.bind( result );
+			}
+			return result;
+		}
+	}
+
+	jQuery.map( props, createTween, animation );
+
+	if ( isFunction( animation.opts.start ) ) {
+		animation.opts.start.call( elem, animation );
+	}
+
+	// Attach callbacks from options
+	animation
+		.progress( animation.opts.progress )
+		.done( animation.opts.done, animation.opts.complete )
+		.fail( animation.opts.fail )
+		.always( animation.opts.always );
+
+	jQuery.fx.timer(
+		jQuery.extend( tick, {
+			elem: elem,
+			anim: animation,
+			queue: animation.opts.queue
+		} )
+	);
+
+	return animation;
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+	tweeners: {
+		"*": [ function( prop, value ) {
+			var tween = this.createTween( prop, value );
+			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+			return tween;
+		} ]
+	},
+
+	tweener: function( props, callback ) {
+		if ( isFunction( props ) ) {
+			callback = props;
+			props = [ "*" ];
+		} else {
+			props = props.match( rnothtmlwhite );
+		}
+
+		var prop,
+			index = 0,
+			length = props.length;
+
+		for ( ; index < length; index++ ) {
+			prop = props[ index ];
+			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+			Animation.tweeners[ prop ].unshift( callback );
+		}
+	},
+
+	prefilters: [ defaultPrefilter ],
+
+	prefilter: function( callback, prepend ) {
+		if ( prepend ) {
+			Animation.prefilters.unshift( callback );
+		} else {
+			Animation.prefilters.push( callback );
+		}
+	}
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+		complete: fn || !fn && easing ||
+			isFunction( speed ) && speed,
+		duration: speed,
+		easing: fn && easing || easing && !isFunction( easing ) && easing
+	};
+
+	// Go to the end state if fx are off
+	if ( jQuery.fx.off ) {
+		opt.duration = 0;
+
+	} else {
+		if ( typeof opt.duration !== "number" ) {
+			if ( opt.duration in jQuery.fx.speeds ) {
+				opt.duration = jQuery.fx.speeds[ opt.duration ];
+
+			} else {
+				opt.duration = jQuery.fx.speeds._default;
+			}
+		}
+	}
+
+	// Normalize opt.queue - true/undefined/null -> "fx"
+	if ( opt.queue == null || opt.queue === true ) {
+		opt.queue = "fx";
+	}
+
+	// Queueing
+	opt.old = opt.complete;
+
+	opt.complete = function() {
+		if ( isFunction( opt.old ) ) {
+			opt.old.call( this );
+		}
+
+		if ( opt.queue ) {
+			jQuery.dequeue( this, opt.queue );
+		}
+	};
+
+	return opt;
+};
+
+jQuery.fn.extend( {
+	fadeTo: function( speed, to, easing, callback ) {
+
+		// Show any hidden elements after setting opacity to 0
+		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
+
+			// Animate to the value specified
+			.end().animate( { opacity: to }, speed, easing, callback );
+	},
+	animate: function( prop, speed, easing, callback ) {
+		var empty = jQuery.isEmptyObject( prop ),
+			optall = jQuery.speed( speed, easing, callback ),
+			doAnimation = function() {
+
+				// Operate on a copy of prop so per-property easing won't be lost
+				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+				// Empty animations, or finishing resolves immediately
+				if ( empty || dataPriv.get( this, "finish" ) ) {
+					anim.stop( true );
+				}
+			};
+			doAnimation.finish = doAnimation;
+
+		return empty || optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+	stop: function( type, clearQueue, gotoEnd ) {
+		var stopQueue = function( hooks ) {
+			var stop = hooks.stop;
+			delete hooks.stop;
+			stop( gotoEnd );
+		};
+
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each( function() {
+			var dequeue = true,
+				index = type != null && type + "queueHooks",
+				timers = jQuery.timers,
+				data = dataPriv.get( this );
+
+			if ( index ) {
+				if ( data[ index ] && data[ index ].stop ) {
+					stopQueue( data[ index ] );
+				}
+			} else {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+						stopQueue( data[ index ] );
+					}
+				}
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this &&
+					( type == null || timers[ index ].queue === type ) ) {
+
+					timers[ index ].anim.stop( gotoEnd );
+					dequeue = false;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Start the next in the queue if the last step wasn't forced.
+			// Timers currently will call their complete callbacks, which
+			// will dequeue but only if they were gotoEnd.
+			if ( dequeue || !gotoEnd ) {
+				jQuery.dequeue( this, type );
+			}
+		} );
+	},
+	finish: function( type ) {
+		if ( type !== false ) {
+			type = type || "fx";
+		}
+		return this.each( function() {
+			var index,
+				data = dataPriv.get( this ),
+				queue = data[ type + "queue" ],
+				hooks = data[ type + "queueHooks" ],
+				timers = jQuery.timers,
+				length = queue ? queue.length : 0;
+
+			// Enable finishing flag on private data
+			data.finish = true;
+
+			// Empty the queue first
+			jQuery.queue( this, type, [] );
+
+			if ( hooks && hooks.stop ) {
+				hooks.stop.call( this, true );
+			}
+
+			// Look for any active animations, and finish them
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+					timers[ index ].anim.stop( true );
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Look for any animations in the old queue and finish them
+			for ( index = 0; index < length; index++ ) {
+				if ( queue[ index ] && queue[ index ].finish ) {
+					queue[ index ].finish.call( this );
+				}
+			}
+
+			// Turn off finishing flag
+			delete data.finish;
+		} );
+	}
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+	var cssFn = jQuery.fn[ name ];
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return speed == null || typeof speed === "boolean" ?
+			cssFn.apply( this, arguments ) :
+			this.animate( genFx( name, true ), speed, easing, callback );
+	};
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+	slideDown: genFx( "show" ),
+	slideUp: genFx( "hide" ),
+	slideToggle: genFx( "toggle" ),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+	var timer,
+		i = 0,
+		timers = jQuery.timers;
+
+	fxNow = Date.now();
+
+	for ( ; i < timers.length; i++ ) {
+		timer = timers[ i ];
+
+		// Run the timer and safely remove it when done (allowing for external removal)
+		if ( !timer() && timers[ i ] === timer ) {
+			timers.splice( i--, 1 );
+		}
+	}
+
+	if ( !timers.length ) {
+		jQuery.fx.stop();
+	}
+	fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+	jQuery.timers.push( timer );
+	jQuery.fx.start();
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+	if ( inProgress ) {
+		return;
+	}
+
+	inProgress = true;
+	schedule();
+};
+
+jQuery.fx.stop = function() {
+	inProgress = null;
+};
+
+jQuery.fx.speeds = {
+	slow: 600,
+	fast: 200,
+
+	// Default speed
+	_default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+	type = type || "fx";
+
+	return this.queue( type, function( next, hooks ) {
+		var timeout = window.setTimeout( next, time );
+		hooks.stop = function() {
+			window.clearTimeout( timeout );
+		};
+	} );
+};
+
+
+( function() {
+	var input = document.createElement( "input" ),
+		select = document.createElement( "select" ),
+		opt = select.appendChild( document.createElement( "option" ) );
+
+	input.type = "checkbox";
+
+	// Support: Android <=4.3 only
+	// Default value for a checkbox should be "on"
+	support.checkOn = input.value !== "";
+
+	// Support: IE <=11 only
+	// Must access selectedIndex to make default options select
+	support.optSelected = opt.selected;
+
+	// Support: IE <=11 only
+	// An input loses its value after becoming a radio
+	input = document.createElement( "input" );
+	input.value = "t";
+	input.type = "radio";
+	support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+	attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+	attr: function( name, value ) {
+		return access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each( function() {
+			jQuery.removeAttr( this, name );
+		} );
+	}
+} );
+
+jQuery.extend( {
+	attr: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set attributes on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === "undefined" ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// Attribute hooks are determined by the lowercase version
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+		}
+
+		if ( value !== undefined ) {
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+				return;
+			}
+
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			elem.setAttribute( name, value + "" );
+			return value;
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		ret = jQuery.find.attr( elem, name );
+
+		// Non-existent attributes return null, we normalize to undefined
+		return ret == null ? undefined : ret;
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !support.radioValue && value === "radio" &&
+					nodeName( elem, "input" ) ) {
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var name,
+			i = 0,
+
+			// Attribute names can contain non-HTML whitespace characters
+			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+			attrNames = value && value.match( rnothtmlwhite );
+
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( ( name = attrNames[ i++ ] ) ) {
+				elem.removeAttribute( name );
+			}
+		}
+	}
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			elem.setAttribute( name, name );
+		}
+		return name;
+	}
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+	var getter = attrHandle[ name ] || jQuery.find.attr;
+
+	attrHandle[ name ] = function( elem, name, isXML ) {
+		var ret, handle,
+			lowercaseName = name.toLowerCase();
+
+		if ( !isXML ) {
+
+			// Avoid an infinite loop by temporarily removing this function from the getter
+			handle = attrHandle[ lowercaseName ];
+			attrHandle[ lowercaseName ] = ret;
+			ret = getter( elem, name, isXML ) != null ?
+				lowercaseName :
+				null;
+			attrHandle[ lowercaseName ] = handle;
+		}
+		return ret;
+	};
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+	rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+	prop: function( name, value ) {
+		return access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		return this.each( function() {
+			delete this[ jQuery.propFix[ name ] || name ];
+		} );
+	}
+} );
+
+jQuery.extend( {
+	prop: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set properties on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			return ( elem[ name ] = value );
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		return elem[ name ];
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+
+				// Support: IE <=9 - 11 only
+				// elem.tabIndex doesn't always return the
+				// correct value when it hasn't been explicitly set
+				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				// Use proper attribute retrieval(#12072)
+				var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+				if ( tabindex ) {
+					return parseInt( tabindex, 10 );
+				}
+
+				if (
+					rfocusable.test( elem.nodeName ) ||
+					rclickable.test( elem.nodeName ) &&
+					elem.href
+				) {
+					return 0;
+				}
+
+				return -1;
+			}
+		}
+	},
+
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
+	}
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent && parent.parentNode ) {
+				parent.parentNode.selectedIndex;
+			}
+			return null;
+		},
+		set: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent ) {
+				parent.selectedIndex;
+
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+		}
+	};
+}
+
+jQuery.each( [
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+	// Strip and collapse whitespace according to HTML spec
+	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
+	function stripAndCollapse( value ) {
+		var tokens = value.match( rnothtmlwhite ) || [];
+		return tokens.join( " " );
+	}
+
+
+function getClass( elem ) {
+	return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+function classesToArray( value ) {
+	if ( Array.isArray( value ) ) {
+		return value;
+	}
+	if ( typeof value === "string" ) {
+		return value.match( rnothtmlwhite ) || [];
+	}
+	return [];
+}
+
+jQuery.fn.extend( {
+	addClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( !arguments.length ) {
+			return this.attr( "class", "" );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value,
+			isValidValue = type === "string" || Array.isArray( value );
+
+		if ( typeof stateVal === "boolean" && isValidValue ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		if ( isFunction( value ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).toggleClass(
+					value.call( this, i, getClass( this ), stateVal ),
+					stateVal
+				);
+			} );
+		}
+
+		return this.each( function() {
+			var className, i, self, classNames;
+
+			if ( isValidValue ) {
+
+				// Toggle individual class names
+				i = 0;
+				self = jQuery( this );
+				classNames = classesToArray( value );
+
+				while ( ( className = classNames[ i++ ] ) ) {
+
+					// Check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
+					} else {
+						self.addClass( className );
+					}
+				}
+
+			// Toggle whole class name
+			} else if ( value === undefined || type === "boolean" ) {
+				className = getClass( this );
+				if ( className ) {
+
+					// Store className if set
+					dataPriv.set( this, "__className__", className );
+				}
+
+				// If the element has a class name or if we're passed `false`,
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				if ( this.setAttribute ) {
+					this.setAttribute( "class",
+						className || value === false ?
+						"" :
+						dataPriv.get( this, "__className__" ) || ""
+					);
+				}
+			}
+		} );
+	},
+
+	hasClass: function( selector ) {
+		var className, elem,
+			i = 0;
+
+		className = " " + selector + " ";
+		while ( ( elem = this[ i++ ] ) ) {
+			if ( elem.nodeType === 1 &&
+				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+					return true;
+			}
+		}
+
+		return false;
+	}
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+	val: function( value ) {
+		var hooks, ret, valueIsFunction,
+			elem = this[ 0 ];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] ||
+					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks &&
+					"get" in hooks &&
+					( ret = hooks.get( elem, "value" ) ) !== undefined
+				) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				// Handle most common string cases
+				if ( typeof ret === "string" ) {
+					return ret.replace( rreturn, "" );
+				}
+
+				// Handle cases where value is null/undef or number
+				return ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		valueIsFunction = isFunction( value );
+
+		return this.each( function( i ) {
+			var val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( valueIsFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+
+			} else if ( typeof val === "number" ) {
+				val += "";
+
+			} else if ( Array.isArray( val ) ) {
+				val = jQuery.map( val, function( value ) {
+					return value == null ? "" : value + "";
+				} );
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		} );
+	}
+} );
+
+jQuery.extend( {
+	valHooks: {
+		option: {
+			get: function( elem ) {
+
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+
+					// Support: IE <=10 - 11 only
+					// option.text throws exceptions (#14686, #14858)
+					// Strip and collapse whitespace
+					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+					stripAndCollapse( jQuery.text( elem ) );
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option, i,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one",
+					values = one ? null : [],
+					max = one ? index + 1 : options.length;
+
+				if ( index < 0 ) {
+					i = max;
+
+				} else {
+					i = one ? index : 0;
+				}
+
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// Support: IE <=9 only
+					// IE8-9 doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+
+							// Don't return options that are disabled or in a disabled optgroup
+							!option.disabled &&
+							( !option.parentNode.disabled ||
+								!nodeName( option.parentNode, "optgroup" ) ) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
+
+				while ( i-- ) {
+					option = options[ i ];
+
+					/* eslint-disable no-cond-assign */
+
+					if ( option.selected =
+						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+					) {
+						optionSet = true;
+					}
+
+					/* eslint-enable no-cond-assign */
+				}
+
+				// Force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	}
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( Array.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+			}
+		}
+	};
+	if ( !support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+		};
+	}
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+support.focusin = "onfocusin" in window;
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	stopPropagationCallback = function( e ) {
+		e.stopPropagation();
+	};
+
+jQuery.extend( jQuery.event, {
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+
+		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
+			eventPath = [ elem || document ],
+			type = hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+		cur = lastElement = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
+		}
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf( "." ) > -1 ) {
+
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split( "." );
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+		ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
+
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
+		event.namespace = namespaces.join( "." );
+		event.rnamespace = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+			null;
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === ( elem.ownerDocument || document ) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
+
+		// Fire handlers on the event path
+		i = 0;
+		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+			lastElement = cur;
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+				dataPriv.get( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && handle.apply && acceptData( cur ) ) {
+				event.result = handle.apply( cur, data );
+				if ( event.result === false ) {
+					event.preventDefault();
+				}
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( ( !special._default ||
+				special._default.apply( eventPath.pop(), data ) === false ) &&
+				acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name as the event.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
+
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.addEventListener( type, stopPropagationCallback );
+					}
+
+					elem[ type ]();
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.removeEventListener( type, stopPropagationCallback );
+					}
+
+					jQuery.event.triggered = undefined;
+
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	// Piggyback on a donor event to simulate a different one
+	// Used only for `focus(in | out)` events
+	simulate: function( type, elem, event ) {
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true
+			}
+		);
+
+		jQuery.event.trigger( e, null, elem );
+	}
+
+} );
+
+jQuery.fn.extend( {
+
+	trigger: function( type, data ) {
+		return this.each( function() {
+			jQuery.event.trigger( type, data, this );
+		} );
+	},
+	triggerHandler: function( type, data ) {
+		var elem = this[ 0 ];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
+		}
+	}
+} );
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler on the document while someone wants focusin/focusout
+		var handler = function( event ) {
+			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+		};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix );
+
+				if ( !attaches ) {
+					doc.addEventListener( orig, handler, true );
+				}
+				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+			},
+			teardown: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix ) - 1;
+
+				if ( !attaches ) {
+					doc.removeEventListener( orig, handler, true );
+					dataPriv.remove( doc, fix );
+
+				} else {
+					dataPriv.access( doc, fix, attaches );
+				}
+			}
+		};
+	} );
+}
+var location = window.location;
+
+var nonce = Date.now();
+
+var rquery = ( /\?/ );
+
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+	var xml;
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+
+	// Support: IE 9 - 11 only
+	// IE throws on parseFromString with invalid input.
+	try {
+		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+	} catch ( e ) {
+		xml = undefined;
+	}
+
+	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+		jQuery.error( "Invalid XML: " + data );
+	}
+	return xml;
+};
+
+
+var
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+	rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+	var name;
+
+	if ( Array.isArray( obj ) ) {
+
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+
+				// Item is non-scalar (array or object), encode its numeric index.
+				buildParams(
+					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+					v,
+					traditional,
+					add
+				);
+			}
+		} );
+
+	} else if ( !traditional && toType( obj ) === "object" ) {
+
+		// Serialize object item.
+		for ( name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+	var prefix,
+		s = [],
+		add = function( key, valueOrFunction ) {
+
+			// If value is a function, invoke it and use its return value
+			var value = isFunction( valueOrFunction ) ?
+				valueOrFunction() :
+				valueOrFunction;
+
+			s[ s.length ] = encodeURIComponent( key ) + "=" +
+				encodeURIComponent( value == null ? "" : value );
+		};
+
+	// If an array was passed in, assume that it is an array of form elements.
+	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+		// Serialize the form elements
+		jQuery.each( a, function() {
+			add( this.name, this.value );
+		} );
+
+	} else {
+
+		// If traditional, encode the "old" way (the way 1.3.2 or older
+		// did it), otherwise encode params recursively.
+		for ( prefix in a ) {
+			buildParams( prefix, a[ prefix ], traditional, add );
+		}
+	}
+
+	// Return the resulting serialization
+	return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+	serializeArray: function() {
+		return this.map( function() {
+
+			// Can add propHook for "elements" to filter or add form elements
+			var elements = jQuery.prop( this, "elements" );
+			return elements ? jQuery.makeArray( elements ) : this;
+		} )
+		.filter( function() {
+			var type = this.type;
+
+			// Use .is( ":disabled" ) so that fieldset[disabled] works
+			return this.name && !jQuery( this ).is( ":disabled" ) &&
+				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+				( this.checked || !rcheckableType.test( type ) );
+		} )
+		.map( function( i, elem ) {
+			var val = jQuery( this ).val();
+
+			if ( val == null ) {
+				return null;
+			}
+
+			if ( Array.isArray( val ) ) {
+				return jQuery.map( val, function( val ) {
+					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+				} );
+			}
+
+			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		} ).get();
+	}
+} );
+
+
+var
+	r20 = /%20/g,
+	rhash = /#.*$/,
+	rantiCache = /([?&])_=[^&]*/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = "*/".concat( "*" ),
+
+	// Anchor tag for parsing the document origin
+	originAnchor = document.createElement( "a" );
+	originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		var dataType,
+			i = 0,
+			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
+
+		if ( isFunction( func ) ) {
+
+			// For each dataType in the dataTypeExpression
+			while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+				// Prepend if requested
+				if ( dataType[ 0 ] === "+" ) {
+					dataType = dataType.slice( 1 ) || "*";
+					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+				// Otherwise append
+				} else {
+					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+				}
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+	var inspected = {},
+		seekingTransport = ( structure === transports );
+
+	function inspect( dataType ) {
+		var selected;
+		inspected[ dataType ] = true;
+		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+			if ( typeof dataTypeOrTransport === "string" &&
+				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+				options.dataTypes.unshift( dataTypeOrTransport );
+				inspect( dataTypeOrTransport );
+				return false;
+			} else if ( seekingTransport ) {
+				return !( selected = dataTypeOrTransport );
+			}
+		} );
+		return selected;
+	}
+
+	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var key, deep,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+
+	return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+	var ct, type, finalDataType, firstDataType,
+		contents = s.contents,
+		dataTypes = s.dataTypes;
+
+	// Remove auto dataType and get content-type in the process
+	while ( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+	var conv2, current, conv, tmp, prev,
+		converters = {},
+
+		// Work with a copy of dataTypes in case we need to modify it for conversion
+		dataTypes = s.dataTypes.slice();
+
+	// Create converters map with lowercased keys
+	if ( dataTypes[ 1 ] ) {
+		for ( conv in s.converters ) {
+			converters[ conv.toLowerCase() ] = s.converters[ conv ];
+		}
+	}
+
+	current = dataTypes.shift();
+
+	// Convert to each sequential dataType
+	while ( current ) {
+
+		if ( s.responseFields[ current ] ) {
+			jqXHR[ s.responseFields[ current ] ] = response;
+		}
+
+		// Apply the dataFilter if provided
+		if ( !prev && isSuccess && s.dataFilter ) {
+			response = s.dataFilter( response, s.dataType );
+		}
+
+		prev = current;
+		current = dataTypes.shift();
+
+		if ( current ) {
+
+			// There's only work to do if current dataType is non-auto
+			if ( current === "*" ) {
+
+				current = prev;
+
+			// Convert response if prev dataType is non-auto and differs from current
+			} else if ( prev !== "*" && prev !== current ) {
+
+				// Seek a direct converter
+				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+				// If none found, seek a pair
+				if ( !conv ) {
+					for ( conv2 in converters ) {
+
+						// If conv2 outputs current
+						tmp = conv2.split( " " );
+						if ( tmp[ 1 ] === current ) {
+
+							// If prev can be converted to accepted input
+							conv = converters[ prev + " " + tmp[ 0 ] ] ||
+								converters[ "* " + tmp[ 0 ] ];
+							if ( conv ) {
+
+								// Condense equivalence converters
+								if ( conv === true ) {
+									conv = converters[ conv2 ];
+
+								// Otherwise, insert the intermediate dataType
+								} else if ( converters[ conv2 ] !== true ) {
+									current = tmp[ 0 ];
+									dataTypes.unshift( tmp[ 1 ] );
+								}
+								break;
+							}
+						}
+					}
+				}
+
+				// Apply converter (if not an equivalence)
+				if ( conv !== true ) {
+
+					// Unless errors are allowed to bubble, catch and return them
+					if ( conv && s.throws ) {
+						response = conv( response );
+					} else {
+						try {
+							response = conv( response );
+						} catch ( e ) {
+							return {
+								state: "parsererror",
+								error: conv ? e : "No conversion from " + prev + " to " + current
+							};
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {},
+
+	ajaxSettings: {
+		url: location.href,
+		type: "GET",
+		isLocal: rlocalProtocol.test( location.protocol ),
+		global: true,
+		processData: true,
+		async: true,
+		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		throws: false,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			"*": allTypes,
+			text: "text/plain",
+			html: "text/html",
+			xml: "application/xml, text/xml",
+			json: "application/json, text/javascript"
+		},
+
+		contents: {
+			xml: /\bxml\b/,
+			html: /\bhtml/,
+			json: /\bjson\b/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText",
+			json: "responseJSON"
+		},
+
+		// Data converters
+		// Keys separate source (or catchall "*") and destination types with a single space
+		converters: {
+
+			// Convert anything to text
+			"* text": String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": JSON.parse,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			url: true,
+			context: true
+		}
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		return settings ?
+
+			// Building a settings object
+			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+			// Extending ajaxSettings
+			ajaxExtend( jQuery.ajaxSettings, target );
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var transport,
+
+			// URL without anti-cache param
+			cacheURL,
+
+			// Response headers
+			responseHeadersString,
+			responseHeaders,
+
+			// timeout handle
+			timeoutTimer,
+
+			// Url cleanup var
+			urlAnchor,
+
+			// Request state (becomes false upon send and true upon completion)
+			completed,
+
+			// To know if global events are to be dispatched
+			fireGlobals,
+
+			// Loop variable
+			i,
+
+			// uncached part of the url
+			uncached,
+
+			// Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+
+			// Callbacks context
+			callbackContext = s.context || s,
+
+			// Context for global events is callbackContext if it is a DOM node or jQuery collection
+			globalEventContext = s.context &&
+				( callbackContext.nodeType || callbackContext.jquery ) ?
+					jQuery( callbackContext ) :
+					jQuery.event,
+
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks( "once memory" ),
+
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+
+			// Default abort message
+			strAbort = "canceled",
+
+			// Fake xhr
+			jqXHR = {
+				readyState: 0,
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( completed ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match == null ? null : match;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return completed ? responseHeadersString : null;
+				},
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					if ( completed == null ) {
+						name = requestHeadersNames[ name.toLowerCase() ] =
+							requestHeadersNames[ name.toLowerCase() ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( completed == null ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Status-dependent callbacks
+				statusCode: function( map ) {
+					var code;
+					if ( map ) {
+						if ( completed ) {
+
+							// Execute the appropriate callbacks
+							jqXHR.always( map[ jqXHR.status ] );
+						} else {
+
+							// Lazy-add the new callbacks in a way that preserves old ones
+							for ( code in map ) {
+								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+							}
+						}
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					var finalText = statusText || strAbort;
+					if ( transport ) {
+						transport.abort( finalText );
+					}
+					done( 0, finalText );
+					return this;
+				}
+			};
+
+		// Attach deferreds
+		deferred.promise( jqXHR );
+
+		// Add protocol if not provided (prefilters might expect it)
+		// Handle falsy url in the settings object (#10093: consistency with old signature)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url || location.href ) + "" )
+			.replace( rprotocol, location.protocol + "//" );
+
+		// Alias method option to type as per ticket #12004
+		s.type = options.method || options.type || s.method || s.type;
+
+		// Extract dataTypes list
+		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
+
+		// A cross-domain request is in order when the origin doesn't match the current origin.
+		if ( s.crossDomain == null ) {
+			urlAnchor = document.createElement( "a" );
+
+			// Support: IE <=8 - 11, Edge 12 - 15
+			// IE throws exception on accessing the href property if url is malformed,
+			// e.g. http://example.com:80x/
+			try {
+				urlAnchor.href = s.url;
+
+				// Support: IE <=8 - 11 only
+				// Anchor's host property isn't correctly set when s.url is relative
+				urlAnchor.href = urlAnchor.href;
+				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+					urlAnchor.protocol + "//" + urlAnchor.host;
+			} catch ( e ) {
+
+				// If there is an error parsing the URL, assume it is crossDomain,
+				// it can be rejected by the transport if it is invalid
+				s.crossDomain = true;
+			}
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefilter, stop there
+		if ( completed ) {
+			return jqXHR;
+		}
+
+		// We can fire global events as of now if asked to
+		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+		fireGlobals = jQuery.event && s.global;
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger( "ajaxStart" );
+		}
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Save the URL in case we're toying with the If-Modified-Since
+		// and/or If-None-Match header later on
+		// Remove hash to simplify url manipulation
+		cacheURL = s.url.replace( rhash, "" );
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// Remember the hash so we can put it back
+			uncached = s.url.slice( cacheURL.length );
+
+			// If data is available and should be processed, append data to url
+			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
+				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Add or update anti-cache param if needed
+			if ( s.cache === false ) {
+				cacheURL = cacheURL.replace( rantiCache, "$1" );
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+			}
+
+			// Put hash and anti-cache on the URL that will be requested (gh-1732)
+			s.url = cacheURL + uncached;
+
+		// Change '%20' to '+' if this is encoded form body content (gh-2658)
+		} else if ( s.data && s.processData &&
+			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+			s.data = s.data.replace( r20, "+" );
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			if ( jQuery.lastModified[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+			}
+			if ( jQuery.etag[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+				s.accepts[ s.dataTypes[ 0 ] ] +
+					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend &&
+			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
+			// Abort if not done already and return
+			return jqXHR.abort();
+		}
+
+		// Aborting is no longer a cancellation
+		strAbort = "abort";
+
+		// Install callbacks on deferreds
+		completeDeferred.add( s.complete );
+		jqXHR.done( s.success );
+		jqXHR.fail( s.error );
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+
+			// If request was aborted inside ajaxSend, stop there
+			if ( completed ) {
+				return jqXHR;
+			}
+
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = window.setTimeout( function() {
+					jqXHR.abort( "timeout" );
+				}, s.timeout );
+			}
+
+			try {
+				completed = false;
+				transport.send( requestHeaders, done );
+			} catch ( e ) {
+
+				// Rethrow post-completion exceptions
+				if ( completed ) {
+					throw e;
+				}
+
+				// Propagate others as results
+				done( -1, e );
+			}
+		}
+
+		// Callback for when everything is done
+		function done( status, nativeStatusText, responses, headers ) {
+			var isSuccess, success, error, response, modified,
+				statusText = nativeStatusText;
+
+			// Ignore repeat invocations
+			if ( completed ) {
+				return;
+			}
+
+			completed = true;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				window.clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			// Determine if successful
+			isSuccess = status >= 200 && status < 300 || status === 304;
+
+			// Get response data
+			if ( responses ) {
+				response = ajaxHandleResponses( s, jqXHR, responses );
+			}
+
+			// Convert no matter what (that way responseXXX fields are always set)
+			response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+			// If successful, handle type chaining
+			if ( isSuccess ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+					modified = jqXHR.getResponseHeader( "Last-Modified" );
+					if ( modified ) {
+						jQuery.lastModified[ cacheURL ] = modified;
+					}
+					modified = jqXHR.getResponseHeader( "etag" );
+					if ( modified ) {
+						jQuery.etag[ cacheURL ] = modified;
+					}
+				}
+
+				// if no content
+				if ( status === 204 || s.type === "HEAD" ) {
+					statusText = "nocontent";
+
+				// if not modified
+				} else if ( status === 304 ) {
+					statusText = "notmodified";
+
+				// If we have data, let's convert it
+				} else {
+					statusText = response.state;
+					success = response.data;
+					error = response.error;
+					isSuccess = !error;
+				}
+			} else {
+
+				// Extract error from statusText and normalize for non-aborts
+				error = statusText;
+				if ( status || !statusText ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+					[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger( "ajaxStop" );
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	}
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+
+		// Shift arguments if data argument was omitted
+		if ( isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		// The url can be an options object (which then must have .url)
+		return jQuery.ajax( jQuery.extend( {
+			url: url,
+			type: method,
+			dataType: type,
+			data: data,
+			success: callback
+		}, jQuery.isPlainObject( url ) && url ) );
+	};
+} );
+
+
+jQuery._evalUrl = function( url ) {
+	return jQuery.ajax( {
+		url: url,
+
+		// Make this explicit, since user can override this through ajaxSetup (#11264)
+		type: "GET",
+		dataType: "script",
+		cache: true,
+		async: false,
+		global: false,
+		"throws": true
+	} );
+};
+
+
+jQuery.fn.extend( {
+	wrapAll: function( html ) {
+		var wrap;
+
+		if ( this[ 0 ] ) {
+			if ( isFunction( html ) ) {
+				html = html.call( this[ 0 ] );
+			}
+
+			// The elements to wrap the target around
+			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+			if ( this[ 0 ].parentNode ) {
+				wrap.insertBefore( this[ 0 ] );
+			}
+
+			wrap.map( function() {
+				var elem = this;
+
+				while ( elem.firstElementChild ) {
+					elem = elem.firstElementChild;
+				}
+
+				return elem;
+			} ).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( isFunction( html ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).wrapInner( html.call( this, i ) );
+			} );
+		}
+
+		return this.each( function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		} );
+	},
+
+	wrap: function( html ) {
+		var htmlIsFunction = isFunction( html );
+
+		return this.each( function( i ) {
+			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
+		} );
+	},
+
+	unwrap: function( selector ) {
+		this.parent( selector ).not( "body" ).each( function() {
+			jQuery( this ).replaceWith( this.childNodes );
+		} );
+		return this;
+	}
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+	return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+jQuery.ajaxSettings.xhr = function() {
+	try {
+		return new window.XMLHttpRequest();
+	} catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+		// File protocol always yields status code 0, assume 200
+		0: 200,
+
+		// Support: IE <=9 only
+		// #1450: sometimes IE returns 1223 when it should be 204
+		1223: 204
+	},
+	xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+	var callback, errorCallback;
+
+	// Cross domain only allowed if supported through XMLHttpRequest
+	if ( support.cors || xhrSupported && !options.crossDomain ) {
+		return {
+			send: function( headers, complete ) {
+				var i,
+					xhr = options.xhr();
+
+				xhr.open(
+					options.type,
+					options.url,
+					options.async,
+					options.username,
+					options.password
+				);
+
+				// Apply custom fields if provided
+				if ( options.xhrFields ) {
+					for ( i in options.xhrFields ) {
+						xhr[ i ] = options.xhrFields[ i ];
+					}
+				}
+
+				// Override mime type if needed
+				if ( options.mimeType && xhr.overrideMimeType ) {
+					xhr.overrideMimeType( options.mimeType );
+				}
+
+				// X-Requested-With header
+				// For cross-domain requests, seeing as conditions for a preflight are
+				// akin to a jigsaw puzzle, we simply never set it to be sure.
+				// (it can always be set on a per-request basis or even using ajaxSetup)
+				// For same-domain requests, won't change header if already provided.
+				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+					headers[ "X-Requested-With" ] = "XMLHttpRequest";
+				}
+
+				// Set headers
+				for ( i in headers ) {
+					xhr.setRequestHeader( i, headers[ i ] );
+				}
+
+				// Callback
+				callback = function( type ) {
+					return function() {
+						if ( callback ) {
+							callback = errorCallback = xhr.onload =
+								xhr.onerror = xhr.onabort = xhr.ontimeout =
+									xhr.onreadystatechange = null;
+
+							if ( type === "abort" ) {
+								xhr.abort();
+							} else if ( type === "error" ) {
+
+								// Support: IE <=9 only
+								// On a manual native abort, IE9 throws
+								// errors on any property access that is not readyState
+								if ( typeof xhr.status !== "number" ) {
+									complete( 0, "error" );
+								} else {
+									complete(
+
+										// File: protocol always yields status 0; see #8605, #14207
+										xhr.status,
+										xhr.statusText
+									);
+								}
+							} else {
+								complete(
+									xhrSuccessStatus[ xhr.status ] || xhr.status,
+									xhr.statusText,
+
+									// Support: IE <=9 only
+									// IE9 has no XHR2 but throws on binary (trac-11426)
+									// For XHR2 non-text, let the caller handle it (gh-2498)
+									( xhr.responseType || "text" ) !== "text"  ||
+									typeof xhr.responseText !== "string" ?
+										{ binary: xhr.response } :
+										{ text: xhr.responseText },
+									xhr.getAllResponseHeaders()
+								);
+							}
+						}
+					};
+				};
+
+				// Listen to events
+				xhr.onload = callback();
+				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );
+
+				// Support: IE 9 only
+				// Use onreadystatechange to replace onabort
+				// to handle uncaught aborts
+				if ( xhr.onabort !== undefined ) {
+					xhr.onabort = errorCallback;
+				} else {
+					xhr.onreadystatechange = function() {
+
+						// Check readyState before timeout as it changes
+						if ( xhr.readyState === 4 ) {
+
+							// Allow onerror to be called first,
+							// but that will not handle a native abort
+							// Also, save errorCallback to a variable
+							// as xhr.onerror cannot be accessed
+							window.setTimeout( function() {
+								if ( callback ) {
+									errorCallback();
+								}
+							} );
+						}
+					};
+				}
+
+				// Create the abort callback
+				callback = callback( "abort" );
+
+				try {
+
+					// Do send the request (this may raise an exception)
+					xhr.send( options.hasContent && options.data || null );
+				} catch ( e ) {
+
+					// #14683: Only rethrow if this hasn't been notified as an error yet
+					if ( callback ) {
+						throw e;
+					}
+				}
+			},
+
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
+jQuery.ajaxPrefilter( function( s ) {
+	if ( s.crossDomain ) {
+		s.contents.script = false;
+	}
+} );
+
+// Install script dataType
+jQuery.ajaxSetup( {
+	accepts: {
+		script: "text/javascript, application/javascript, " +
+			"application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /\b(?:java|ecma)script\b/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+	}
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+		var script, callback;
+		return {
+			send: function( _, complete ) {
+				script = jQuery( "<script>" ).prop( {
+					charset: s.scriptCharset,
+					src: s.url
+				} ).on(
+					"load error",
+					callback = function( evt ) {
+						script.remove();
+						callback = null;
+						if ( evt ) {
+							complete( evt.type === "error" ? 404 : 200, evt.type );
+						}
+					}
+				);
+
+				// Use native DOM manipulation to avoid our domManip AJAX trickery
+				document.head.appendChild( script[ 0 ] );
+			},
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+var oldCallbacks = [],
+	rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+	jsonp: "callback",
+	jsonpCallback: function() {
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+		this[ callback ] = true;
+		return callback;
+	}
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var callbackName, overwritten, responseContainer,
+		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+			"url" :
+			typeof s.data === "string" &&
+				( s.contentType || "" )
+					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+				rjsonp.test( s.data ) && "data"
+		);
+
+	// Handle iff the expected data type is "jsonp" or we have a parameter to set
+	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+		// Get callback name, remembering preexisting value associated with it
+		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
+			s.jsonpCallback() :
+			s.jsonpCallback;
+
+		// Insert callback into url or form data
+		if ( jsonProp ) {
+			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+		} else if ( s.jsonp !== false ) {
+			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+		}
+
+		// Use data converter to retrieve json after script execution
+		s.converters[ "script json" ] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( callbackName + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// Force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Install callback
+		overwritten = window[ callbackName ];
+		window[ callbackName ] = function() {
+			responseContainer = arguments;
+		};
+
+		// Clean-up function (fires after converters)
+		jqXHR.always( function() {
+
+			// If previous value didn't exist - remove it
+			if ( overwritten === undefined ) {
+				jQuery( window ).removeProp( callbackName );
+
+			// Otherwise restore preexisting value
+			} else {
+				window[ callbackName ] = overwritten;
+			}
+
+			// Save back as free
+			if ( s[ callbackName ] ) {
+
+				// Make sure that re-using the options doesn't screw things around
+				s.jsonpCallback = originalSettings.jsonpCallback;
+
+				// Save the callback name for future use
+				oldCallbacks.push( callbackName );
+			}
+
+			// Call if it was a function and we have a response
+			if ( responseContainer && isFunction( overwritten ) ) {
+				overwritten( responseContainer[ 0 ] );
+			}
+
+			responseContainer = overwritten = undefined;
+		} );
+
+		// Delegate to script
+		return "script";
+	}
+} );
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+	var body = document.implementation.createHTMLDocument( "" ).body;
+	body.innerHTML = "<form></form><form></form>";
+	return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+	if ( typeof data !== "string" ) {
+		return [];
+	}
+	if ( typeof context === "boolean" ) {
+		keepScripts = context;
+		context = false;
+	}
+
+	var base, parsed, scripts;
+
+	if ( !context ) {
+
+		// Stop scripts or inline event handlers from being executed immediately
+		// by using document.implementation
+		if ( support.createHTMLDocument ) {
+			context = document.implementation.createHTMLDocument( "" );
+
+			// Set the base href for the created document
+			// so any parsed elements with URLs
+			// are based on the document's URL (gh-2965)
+			base = context.createElement( "base" );
+			base.href = document.location.href;
+			context.head.appendChild( base );
+		} else {
+			context = document;
+		}
+	}
+
+	parsed = rsingleTag.exec( data );
+	scripts = !keepScripts && [];
+
+	// Single tag
+	if ( parsed ) {
+		return [ context.createElement( parsed[ 1 ] ) ];
+	}
+
+	parsed = buildFragment( [ data ], context, scripts );
+
+	if ( scripts && scripts.length ) {
+		jQuery( scripts ).remove();
+	}
+
+	return jQuery.merge( [], parsed.childNodes );
+};
+
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+	var selector, type, response,
+		self = this,
+		off = url.indexOf( " " );
+
+	if ( off > -1 ) {
+		selector = stripAndCollapse( url.slice( off ) );
+		url = url.slice( 0, off );
+	}
+
+	// If it's a function
+	if ( isFunction( params ) ) {
+
+		// We assume that it's the callback
+		callback = params;
+		params = undefined;
+
+	// Otherwise, build a param string
+	} else if ( params && typeof params === "object" ) {
+		type = "POST";
+	}
+
+	// If we have elements to modify, make the request
+	if ( self.length > 0 ) {
+		jQuery.ajax( {
+			url: url,
+
+			// If "type" variable is undefined, then "GET" method will be used.
+			// Make value of this field explicit since
+			// user can override it through ajaxSetup method
+			type: type || "GET",
+			dataType: "html",
+			data: params
+		} ).done( function( responseText ) {
+
+			// Save response for use in complete callback
+			response = arguments;
+
+			self.html( selector ?
+
+				// If a selector was specified, locate the right elements in a dummy div
+				// Exclude scripts to avoid IE 'Permission Denied' errors
+				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+				// Otherwise use the full result
+				responseText );
+
+		// If the request succeeds, this function gets "data", "status", "jqXHR"
+		// but they are ignored because response was set above.
+		// If it fails, this function gets "jqXHR", "status", "error"
+		} ).always( callback && function( jqXHR, status ) {
+			self.each( function() {
+				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+			} );
+		} );
+	}
+
+	return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+	"ajaxStart",
+	"ajaxStop",
+	"ajaxComplete",
+	"ajaxError",
+	"ajaxSuccess",
+	"ajaxSend"
+], function( i, type ) {
+	jQuery.fn[ type ] = function( fn ) {
+		return this.on( type, fn );
+	};
+} );
+
+
+
+
+jQuery.expr.pseudos.animated = function( elem ) {
+	return jQuery.grep( jQuery.timers, function( fn ) {
+		return elem === fn.elem;
+	} ).length;
+};
+
+
+
+
+jQuery.offset = {
+	setOffset: function( elem, options, i ) {
+		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+			position = jQuery.css( elem, "position" ),
+			curElem = jQuery( elem ),
+			props = {};
+
+		// Set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		curOffset = curElem.offset();
+		curCSSTop = jQuery.css( elem, "top" );
+		curCSSLeft = jQuery.css( elem, "left" );
+		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+		// Need to be able to calculate position if either
+		// top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( isFunction( options ) ) {
+
+			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+
+	// offset() relates an element's border box to the document origin
+	offset: function( options ) {
+
+		// Preserve chaining for setter
+		if ( arguments.length ) {
+			return options === undefined ?
+				this :
+				this.each( function( i ) {
+					jQuery.offset.setOffset( this, options, i );
+				} );
+		}
+
+		var rect, win,
+			elem = this[ 0 ];
+
+		if ( !elem ) {
+			return;
+		}
+
+		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+		// Support: IE <=11 only
+		// Running getBoundingClientRect on a
+		// disconnected node in IE throws an error
+		if ( !elem.getClientRects().length ) {
+			return { top: 0, left: 0 };
+		}
+
+		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
+		rect = elem.getBoundingClientRect();
+		win = elem.ownerDocument.defaultView;
+		return {
+			top: rect.top + win.pageYOffset,
+			left: rect.left + win.pageXOffset
+		};
+	},
+
+	// position() relates an element's margin box to its offset parent's padding box
+	// This corresponds to the behavior of CSS absolute positioning
+	position: function() {
+		if ( !this[ 0 ] ) {
+			return;
+		}
+
+		var offsetParent, offset, doc,
+			elem = this[ 0 ],
+			parentOffset = { top: 0, left: 0 };
+
+		// position:fixed elements are offset from the viewport, which itself always has zero offset
+		if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+			// Assume position:fixed implies availability of getBoundingClientRect
+			offset = elem.getBoundingClientRect();
+
+		} else {
+			offset = this.offset();
+
+			// Account for the *real* offset parent, which can be the document or its root element
+			// when a statically positioned element is identified
+			doc = elem.ownerDocument;
+			offsetParent = elem.offsetParent || doc.documentElement;
+			while ( offsetParent &&
+				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
+				jQuery.css( offsetParent, "position" ) === "static" ) {
+
+				offsetParent = offsetParent.parentNode;
+			}
+			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
+
+				// Incorporate borders into its offset, since they are outside its content origin
+				parentOffset = jQuery( offsetParent ).offset();
+				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
+				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
+			}
+		}
+
+		// Subtract parent offsets and element margins
+		return {
+			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+		};
+	},
+
+	// This method will return documentElement in the following cases:
+	// 1) For the element inside the iframe without offsetParent, this method will return
+	//    documentElement of the parent window
+	// 2) For the hidden or detached element
+	// 3) For body or html element, i.e. in case of the html node - it will return itself
+	//
+	// but those exceptions were never presented as a real life use-cases
+	// and might be considered as more preferable results.
+	//
+	// This logic, however, is not guaranteed and can change at any point in the future
+	offsetParent: function() {
+		return this.map( function() {
+			var offsetParent = this.offsetParent;
+
+			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+
+			return offsetParent || documentElement;
+		} );
+	}
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+	var top = "pageYOffset" === prop;
+
+	jQuery.fn[ method ] = function( val ) {
+		return access( this, function( elem, method, val ) {
+
+			// Coalesce documents and windows
+			var win;
+			if ( isWindow( elem ) ) {
+				win = elem;
+			} else if ( elem.nodeType === 9 ) {
+				win = elem.defaultView;
+			}
+
+			if ( val === undefined ) {
+				return win ? win[ prop ] : elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : win.pageXOffset,
+					top ? val : win.pageYOffset
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length );
+	};
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+		function( elem, computed ) {
+			if ( computed ) {
+				computed = curCSS( elem, prop );
+
+				// If curCSS returns percentage, fallback to offset
+				return rnumnonpx.test( computed ) ?
+					jQuery( elem ).position()[ prop ] + "px" :
+					computed;
+			}
+		}
+	);
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+		function( defaultExtra, funcName ) {
+
+		// Margin is only for outerHeight, outerWidth
+		jQuery.fn[ funcName ] = function( margin, value ) {
+			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+			return access( this, function( elem, type, value ) {
+				var doc;
+
+				if ( isWindow( elem ) ) {
+
+					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+					return funcName.indexOf( "outer" ) === 0 ?
+						elem[ "inner" + name ] :
+						elem.document.documentElement[ "client" + name ];
+				}
+
+				// Get document width or height
+				if ( elem.nodeType === 9 ) {
+					doc = elem.documentElement;
+
+					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+					// whichever is greatest
+					return Math.max(
+						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+						elem.body[ "offset" + name ], doc[ "offset" + name ],
+						doc[ "client" + name ]
+					);
+				}
+
+				return value === undefined ?
+
+					// Get width or height on the element, requesting but not forcing parseFloat
+					jQuery.css( elem, type, extra ) :
+
+					// Set width or height on the element
+					jQuery.style( elem, type, value, extra );
+			}, type, chainable ? margin : undefined, chainable );
+		};
+	} );
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+jQuery.fn.extend( {
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+} );
+
+
+
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	}
+} );
+
+// Bind a function to a context, optionally partially applying any
+// arguments.
+// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
+// However, it is not slated for removal any time soon
+jQuery.proxy = function( fn, context ) {
+	var tmp, args, proxy;
+
+	if ( typeof context === "string" ) {
+		tmp = fn[ context ];
+		context = fn;
+		fn = tmp;
+	}
+
+	// Quick check to determine if target is callable, in the spec
+	// this throws a TypeError, but we will just return undefined.
+	if ( !isFunction( fn ) ) {
+		return undefined;
+	}
+
+	// Simulated bind
+	args = slice.call( arguments, 2 );
+	proxy = function() {
+		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+	};
+
+	// Set the guid of unique handler to the same of original handler, so it can be removed
+	proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+	return proxy;
+};
+
+jQuery.holdReady = function( hold ) {
+	if ( hold ) {
+		jQuery.readyWait++;
+	} else {
+		jQuery.ready( true );
+	}
+};
+jQuery.isArray = Array.isArray;
+jQuery.parseJSON = JSON.parse;
+jQuery.nodeName = nodeName;
+jQuery.isFunction = isFunction;
+jQuery.isWindow = isWindow;
+jQuery.camelCase = camelCase;
+jQuery.type = toType;
+
+jQuery.now = Date.now;
+
+jQuery.isNumeric = function( obj ) {
+
+	// As of jQuery 3.0, isNumeric is limited to
+	// strings and numbers (primitives or objects)
+	// that can be coerced to finite numbers (gh-2662)
+	var type = jQuery.type( obj );
+	return ( type === "number" || type === "string" ) &&
+
+		// parseFloat NaNs numeric-cast false positives ("")
+		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+		// subtraction forces infinities to NaN
+		!isNaN( obj - parseFloat( obj ) );
+};
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+	define( "jquery", [], function() {
+		return jQuery;
+	} );
+}
+
+
+
+
+var
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+	if ( window.$ === jQuery ) {
+		window.$ = _$;
+	}
+
+	if ( deep && window.jQuery === jQuery ) {
+		window.jQuery = _jQuery;
+	}
+
+	return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+	window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+} );
diff --git a/apidocs/1.20/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png b/apidocs/1.20/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 00000000..ca17cb75
Binary files /dev/null and b/apidocs/1.20/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png differ
diff --git a/apidocs/1.20/jquery/images/ui-bg_flat_75_ffffff_40x100.png b/apidocs/1.20/jquery/images/ui-bg_flat_75_ffffff_40x100.png
new file mode 100644
index 00000000..e6a4176c
Binary files /dev/null and b/apidocs/1.20/jquery/images/ui-bg_flat_75_ffffff_40x100.png differ
diff --git a/apidocs/1.20/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png b/apidocs/1.20/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png
new file mode 100644
index 00000000..0a084fd9
Binary files /dev/null and b/apidocs/1.20/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png differ
diff --git a/apidocs/1.20/jquery/images/ui-bg_glass_65_ffffff_1x400.png b/apidocs/1.20/jquery/images/ui-bg_glass_65_ffffff_1x400.png
new file mode 100644
index 00000000..5b482099
Binary files /dev/null and b/apidocs/1.20/jquery/images/ui-bg_glass_65_ffffff_1x400.png differ
diff --git a/apidocs/1.20/jquery/images/ui-bg_glass_75_dadada_1x400.png b/apidocs/1.20/jquery/images/ui-bg_glass_75_dadada_1x400.png
new file mode 100644
index 00000000..820ef7b4
Binary files /dev/null and b/apidocs/1.20/jquery/images/ui-bg_glass_75_dadada_1x400.png differ
diff --git a/apidocs/1.20/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png b/apidocs/1.20/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png
new file mode 100644
index 00000000..26770496
Binary files /dev/null and b/apidocs/1.20/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png differ
diff --git a/apidocs/1.20/jquery/images/ui-bg_glass_95_fef1ec_1x400.png b/apidocs/1.20/jquery/images/ui-bg_glass_95_fef1ec_1x400.png
new file mode 100644
index 00000000..671bc6bf
Binary files /dev/null and b/apidocs/1.20/jquery/images/ui-bg_glass_95_fef1ec_1x400.png differ
diff --git a/apidocs/1.20/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/apidocs/1.20/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png
new file mode 100644
index 00000000..368044d4
Binary files /dev/null and b/apidocs/1.20/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ
diff --git a/apidocs/1.20/jquery/images/ui-icons_222222_256x240.png b/apidocs/1.20/jquery/images/ui-icons_222222_256x240.png
new file mode 100644
index 00000000..e9c8e16a
Binary files /dev/null and b/apidocs/1.20/jquery/images/ui-icons_222222_256x240.png differ
diff --git a/apidocs/1.20/jquery/images/ui-icons_2e83ff_256x240.png b/apidocs/1.20/jquery/images/ui-icons_2e83ff_256x240.png
new file mode 100644
index 00000000..f2bf8388
Binary files /dev/null and b/apidocs/1.20/jquery/images/ui-icons_2e83ff_256x240.png differ
diff --git a/apidocs/1.20/jquery/images/ui-icons_454545_256x240.png b/apidocs/1.20/jquery/images/ui-icons_454545_256x240.png
new file mode 100644
index 00000000..d6169e8b
Binary files /dev/null and b/apidocs/1.20/jquery/images/ui-icons_454545_256x240.png differ
diff --git a/apidocs/1.20/jquery/images/ui-icons_888888_256x240.png b/apidocs/1.20/jquery/images/ui-icons_888888_256x240.png
new file mode 100644
index 00000000..d3e6e02a
Binary files /dev/null and b/apidocs/1.20/jquery/images/ui-icons_888888_256x240.png differ
diff --git a/apidocs/1.20/jquery/images/ui-icons_cd0a0a_256x240.png b/apidocs/1.20/jquery/images/ui-icons_cd0a0a_256x240.png
new file mode 100644
index 00000000..49370189
Binary files /dev/null and b/apidocs/1.20/jquery/images/ui-icons_cd0a0a_256x240.png differ
diff --git a/apidocs/1.20/jquery/jquery-3.3.1.js b/apidocs/1.20/jquery/jquery-3.3.1.js
new file mode 100644
index 00000000..9b5206bc
--- /dev/null
+++ b/apidocs/1.20/jquery/jquery-3.3.1.js
@@ -0,0 +1,10364 @@
+/*!
+ * jQuery JavaScript Library v3.3.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2018-01-20T17:24Z
+ */
+( function( global, factory ) {
+
+	"use strict";
+
+	if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+		// For CommonJS and CommonJS-like environments where a proper `window`
+		// is present, execute the factory and get jQuery.
+		// For environments that do not have a `window` with a `document`
+		// (such as Node.js), expose a factory as module.exports.
+		// This accentuates the need for the creation of a real `window`.
+		// e.g. var jQuery = require("jquery")(window);
+		// See ticket #14549 for more info.
+		module.exports = global.document ?
+			factory( global, true ) :
+			function( w ) {
+				if ( !w.document ) {
+					throw new Error( "jQuery requires a window with a document" );
+				}
+				return factory( w );
+			};
+	} else {
+		factory( global );
+	}
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+var isFunction = function isFunction( obj ) {
+
+      // Support: Chrome <=57, Firefox <=52
+      // In some browsers, typeof returns "function" for HTML <object> elements
+      // (i.e., `typeof document.createElement( "object" ) === "function"`).
+      // We don't want to classify *any* DOM node as a function.
+      return typeof obj === "function" && typeof obj.nodeType !== "number";
+  };
+
+
+var isWindow = function isWindow( obj ) {
+		return obj != null && obj === obj.window;
+	};
+
+
+
+
+	var preservedScriptAttributes = {
+		type: true,
+		src: true,
+		noModule: true
+	};
+
+	function DOMEval( code, doc, node ) {
+		doc = doc || document;
+
+		var i,
+			script = doc.createElement( "script" );
+
+		script.text = code;
+		if ( node ) {
+			for ( i in preservedScriptAttributes ) {
+				if ( node[ i ] ) {
+					script[ i ] = node[ i ];
+				}
+			}
+		}
+		doc.head.appendChild( script ).parentNode.removeChild( script );
+	}
+
+
+function toType( obj ) {
+	if ( obj == null ) {
+		return obj + "";
+	}
+
+	// Support: Android <=2.3 only (functionish RegExp)
+	return typeof obj === "object" || typeof obj === "function" ?
+		class2type[ toString.call( obj ) ] || "object" :
+		typeof obj;
+}
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+	version = "3.3.1",
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
+
+	// Support: Android <=4.0 only
+	// Make sure we trim BOM and NBSP
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
+
+jQuery.fn = jQuery.prototype = {
+
+	// The current version of jQuery being used
+	jquery: version,
+
+	constructor: jQuery,
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+
+		// Return all the elements in a clean array
+		if ( num == null ) {
+			return slice.call( this );
+		}
+
+		// Return just the one element from the set
+		return num < 0 ? this[ num + this.length ] : this[ num ];
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	each: function( callback ) {
+		return jQuery.each( this, callback );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map( this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		} ) );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor();
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: arr.sort,
+	splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[ 0 ] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+
+		// Skip the boolean and the target
+		target = arguments[ i ] || {};
+		i++;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !isFunction( target ) ) {
+		target = {};
+	}
+
+	// Extend jQuery itself if only one argument is passed
+	if ( i === length ) {
+		target = this;
+		i--;
+	}
+
+	for ( ; i < length; i++ ) {
+
+		// Only deal with non-null/undefined values
+		if ( ( options = arguments[ i ] ) != null ) {
+
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+					( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && Array.isArray( src ) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend( {
+
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+	// Assume jQuery is ready without the ready module
+	isReady: true,
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	noop: function() {},
+
+	isPlainObject: function( obj ) {
+		var proto, Ctor;
+
+		// Detect obvious negatives
+		// Use toString instead of jQuery.type to catch host objects
+		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+			return false;
+		}
+
+		proto = getProto( obj );
+
+		// Objects with no prototype (e.g., `Object.create( null )`) are plain
+		if ( !proto ) {
+			return true;
+		}
+
+		// Objects with prototype are plain iff they were constructed by a global Object function
+		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+	},
+
+	isEmptyObject: function( obj ) {
+
+		/* eslint-disable no-unused-vars */
+		// See https://github.com/eslint/eslint/issues/6125
+		var name;
+
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		DOMEval( code );
+	},
+
+	each: function( obj, callback ) {
+		var length, i = 0;
+
+		if ( isArrayLike( obj ) ) {
+			length = obj.length;
+			for ( ; i < length; i++ ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		} else {
+			for ( i in obj ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Support: Android <=4.0 only
+	trim: function( text ) {
+		return text == null ?
+			"" :
+			( text + "" ).replace( rtrim, "" );
+	},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArrayLike( Object( arr ) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		return arr == null ? -1 : indexOf.call( arr, elem, i );
+	},
+
+	// Support: Android <=4.0 only, PhantomJS 1 only
+	// push.apply(_, arraylike) throws on ancient WebKit
+	merge: function( first, second ) {
+		var len = +second.length,
+			j = 0,
+			i = first.length;
+
+		for ( ; j < len; j++ ) {
+			first[ i++ ] = second[ j ];
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
+			}
+		}
+
+		return matches;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var length, value,
+			i = 0,
+			ret = [];
+
+		// Go through the array, translating each of the items to their new values
+		if ( isArrayLike( elems ) ) {
+			length = elems.length;
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+	// Support: real iOS 8.2 only (not reproducible in simulator)
+	// `in` check used to prevent JIT error (gh-2145)
+	// hasOwn isn't used here due to false negatives
+	// regarding Nodelist length in IE
+	var length = !!obj && "length" in obj && obj.length,
+		type = toType( obj );
+
+	if ( isFunction( obj ) || isWindow( obj ) ) {
+		return false;
+	}
+
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+	support,
+	Expr,
+	getText,
+	isXML,
+	tokenize,
+	compile,
+	select,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
+
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	// Instance-specific data
+	expando = "sizzle" + 1 * new Date(),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
+	},
+
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf as it's faster than native
+	// https://jsperf.com/thor-indexof-vs-for/5
+	indexOf = function( list, elem ) {
+		var i = 0,
+			len = list.length;
+		for ( ; i < len; i++ ) {
+			if ( list[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+	// Regular expressions
+
+	// http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+
+	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+		// Operator (capture 2)
+		"*([*^$|!~]?=)" + whitespace +
+		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+		"*\\]",
+
+	pseudos = ":(" + identifier + ")(?:\\((" +
+		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+		// 1. quoted (capture 3; capture 4 or capture 5)
+		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+		// 2. simple (capture 6)
+		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+		// 3. anything else (capture 2)
+		".*" +
+		")\\)|)",
+
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rwhitespace = new RegExp( whitespace + "+", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + identifier + ")" ),
+		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+
+	// CSS escapes
+	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox<24
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				// BMP codepoint
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	},
+
+	// CSS string/identifier serialization
+	// https://drafts.csswg.org/cssom/#common-serializing-idioms
+	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+	fcssescape = function( ch, asCodePoint ) {
+		if ( asCodePoint ) {
+
+			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+			if ( ch === "\0" ) {
+				return "\uFFFD";
+			}
+
+			// Control characters and (dependent upon position) numbers get escaped as code points
+			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+		}
+
+		// Other potentially-special ASCII characters get backslash-escaped
+		return "\\" + ch;
+	},
+
+	// Used for iframes
+	// See setDocument()
+	// Removing the function wrapper causes a "Permission Denied"
+	// error in IE
+	unloadHandler = function() {
+		setDocument();
+	},
+
+	disabledAncestor = addCombinator(
+		function( elem ) {
+			return elem.disabled === true && ("form" in elem || "label" in elem);
+		},
+		{ dir: "parentNode", next: "legend" }
+	);
+
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
+}
+
+function Sizzle( selector, context, results, seed ) {
+	var m, i, elem, nid, match, groups, newSelector,
+		newContext = context && context.ownerDocument,
+
+		// nodeType defaults to 9, since context defaults to document
+		nodeType = context ? context.nodeType : 9;
+
+	results = results || [];
+
+	// Return early from calls with invalid selector or context
+	if ( typeof selector !== "string" || !selector ||
+		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+		return results;
+	}
+
+	// Try to shortcut find operations (as opposed to filters) in HTML documents
+	if ( !seed ) {
+
+		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+			setDocument( context );
+		}
+		context = context || document;
+
+		if ( documentIsHTML ) {
+
+			// If the selector is sufficiently simple, try using a "get*By*" DOM method
+			// (excepting DocumentFragment context, where the methods don't exist)
+			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+				// ID selector
+				if ( (m = match[1]) ) {
+
+					// Document context
+					if ( nodeType === 9 ) {
+						if ( (elem = context.getElementById( m )) ) {
+
+							// Support: IE, Opera, Webkit
+							// TODO: identify versions
+							// getElementById can match elements by name instead of ID
+							if ( elem.id === m ) {
+								results.push( elem );
+								return results;
+							}
+						} else {
+							return results;
+						}
+
+					// Element context
+					} else {
+
+						// Support: IE, Opera, Webkit
+						// TODO: identify versions
+						// getElementById can match elements by name instead of ID
+						if ( newContext && (elem = newContext.getElementById( m )) &&
+							contains( context, elem ) &&
+							elem.id === m ) {
+
+							results.push( elem );
+							return results;
+						}
+					}
+
+				// Type selector
+				} else if ( match[2] ) {
+					push.apply( results, context.getElementsByTagName( selector ) );
+					return results;
+
+				// Class selector
+				} else if ( (m = match[3]) && support.getElementsByClassName &&
+					context.getElementsByClassName ) {
+
+					push.apply( results, context.getElementsByClassName( m ) );
+					return results;
+				}
+			}
+
+			// Take advantage of querySelectorAll
+			if ( support.qsa &&
+				!compilerCache[ selector + " " ] &&
+				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+				if ( nodeType !== 1 ) {
+					newContext = context;
+					newSelector = selector;
+
+				// qSA looks outside Element context, which is not what we want
+				// Thanks to Andrew Dupont for this workaround technique
+				// Support: IE <=8
+				// Exclude object elements
+				} else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+					// Capture the context ID, setting it first if necessary
+					if ( (nid = context.getAttribute( "id" )) ) {
+						nid = nid.replace( rcssescape, fcssescape );
+					} else {
+						context.setAttribute( "id", (nid = expando) );
+					}
+
+					// Prefix every selector in the list
+					groups = tokenize( selector );
+					i = groups.length;
+					while ( i-- ) {
+						groups[i] = "#" + nid + " " + toSelector( groups[i] );
+					}
+					newSelector = groups.join( "," );
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
+				}
+
+				if ( newSelector ) {
+					try {
+						push.apply( results,
+							newContext.querySelectorAll( newSelector )
+						);
+						return results;
+					} catch ( qsaError ) {
+					} finally {
+						if ( nid === expando ) {
+							context.removeAttribute( "id" );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+	var el = document.createElement("fieldset");
+
+	try {
+		return !!fn( el );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( el.parentNode ) {
+			el.parentNode.removeChild( el );
+		}
+		// release memory in IE
+		el = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = arr.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			a.sourceIndex - b.sourceIndex;
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+	return function( elem ) {
+
+		// Only certain elements can match :enabled or :disabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+		if ( "form" in elem ) {
+
+			// Check for inherited disabledness on relevant non-disabled elements:
+			// * listed form-associated elements in a disabled fieldset
+			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+			// * option elements in a disabled optgroup
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+			// All such elements have a "form" property.
+			if ( elem.parentNode && elem.disabled === false ) {
+
+				// Option elements defer to a parent optgroup if present
+				if ( "label" in elem ) {
+					if ( "label" in elem.parentNode ) {
+						return elem.parentNode.disabled === disabled;
+					} else {
+						return elem.disabled === disabled;
+					}
+				}
+
+				// Support: IE 6 - 11
+				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
+				return elem.isDisabled === disabled ||
+
+					// Where there is no isDisabled, check manually
+					/* jshint -W018 */
+					elem.isDisabled !== !disabled &&
+						disabledAncestor( elem ) === disabled;
+			}
+
+			return elem.disabled === disabled;
+
+		// Try to winnow out elements that can't be disabled before trusting the disabled property.
+		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+		// even exist on them, let alone have a boolean value.
+		} else if ( "label" in elem ) {
+			return elem.disabled === disabled;
+		}
+
+		// Remaining elements are neither :enabled nor :disabled
+		return false;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+	return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var hasCompare, subWindow,
+		doc = node ? node.ownerDocument || node : preferredDoc;
+
+	// Return early if doc is invalid or already selected
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	// Update global variables
+	document = doc;
+	docElem = document.documentElement;
+	documentIsHTML = !isXML( document );
+
+	// Support: IE 9-11, Edge
+	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+	if ( preferredDoc !== document &&
+		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+		// Support: IE 11, Edge
+		if ( subWindow.addEventListener ) {
+			subWindow.addEventListener( "unload", unloadHandler, false );
+
+		// Support: IE 9 - 10 only
+		} else if ( subWindow.attachEvent ) {
+			subWindow.attachEvent( "onunload", unloadHandler );
+		}
+	}
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties
+	// (excepting IE8 booleans)
+	support.attributes = assert(function( el ) {
+		el.className = "i";
+		return !el.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( el ) {
+		el.appendChild( document.createComment("") );
+		return !el.getElementsByTagName("*").length;
+	});
+
+	// Support: IE<9
+	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programmatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( el ) {
+		docElem.appendChild( el ).id = expando;
+		return !document.getElementsByName || !document.getElementsByName( expando ).length;
+	});
+
+	// ID filter and find
+	if ( support.getById ) {
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var elem = context.getElementById( id );
+				return elem ? [ elem ] : [];
+			}
+		};
+	} else {
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== "undefined" &&
+					elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+
+		// Support: IE 6 - 7 only
+		// getElementById is not reliable as a find shortcut
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var node, i, elems,
+					elem = context.getElementById( id );
+
+				if ( elem ) {
+
+					// Verify the id attribute
+					node = elem.getAttributeNode("id");
+					if ( node && node.value === id ) {
+						return [ elem ];
+					}
+
+					// Fall back on getElementsByName
+					elems = context.getElementsByName( id );
+					i = 0;
+					while ( (elem = elems[i++]) ) {
+						node = elem.getAttributeNode("id");
+						if ( node && node.value === id ) {
+							return [ elem ];
+						}
+					}
+				}
+
+				return [];
+			}
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( tag );
+
+			// DocumentFragment nodes don't have gEBTN
+			} else if ( support.qsa ) {
+				return context.querySelectorAll( tag );
+			}
+		} :
+
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+	// QSA and matchesSelector support
+
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See https://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( el ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// https://bugs.jquery.com/ticket/12359
+			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
+				"<option selected=''></option></select>";
+
+			// Support: IE8, Opera 11-12.16
+			// Nothing should be selected when empty strings follow ^= or $= or *=
+			// The test attribute must be unknown in Opera but "safe" for WinRT
+			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !el.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+				rbuggyQSA.push("~=");
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !el.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+
+			// Support: Safari 8+, iOS 8+
+			// https://bugs.webkit.org/show_bug.cgi?id=136851
+			// In-page `selector#id sibling-combinator selector` fails
+			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+				rbuggyQSA.push(".#.+[+~]");
+			}
+		});
+
+		assert(function( el ) {
+			el.innerHTML = "<a href='' disabled='disabled'></a>" +
+				"<select disabled='disabled'><option/></select>";
+
+			// Support: Windows 8 Native Apps
+			// The type and name attributes are restricted during .innerHTML assignment
+			var input = document.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			el.appendChild( input ).setAttribute( "name", "D" );
+
+			// Support: IE8
+			// Enforce case-sensitivity of name attribute
+			if ( el.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( el.querySelectorAll(":enabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Support: IE9-11+
+			// IE's :disabled selector does not pick up the children of disabled fieldsets
+			docElem.appendChild( el ).disabled = true;
+			if ( el.querySelectorAll(":disabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			el.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+		docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( el ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( el, "*" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( el, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+	// Element contains another
+	// Purposefully self-exclusive
+	// As in, an element does not contain itself
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	// Document order sorting
+	sortOrder = hasCompare ?
+	function( a, b ) {
+
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		// Sort on method existence if only one input has compareDocumentPosition
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		// Calculate position if both inputs belong to the same document
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			// Otherwise we know they are disconnected
+			1;
+
+		// Disconnected nodes
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			// Choose the first element that is related to our preferred document
+			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			// Maintain original order
+			return sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Parentless nodes are either documents or disconnected
+		if ( !aup || !bup ) {
+			return a === document ? -1 :
+				b === document ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
+
+	if ( support.matchesSelector && documentIsHTML &&
+		!compilerCache[ expr + " " ] &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+		try {
+			var ret = matches.call( elem, expr );
+
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch (e) {}
+	}
+
+	return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
+};
+
+Sizzle.escape = function( sel ) {
+	return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	// Clear input after sorting to release objects
+	// See https://github.com/jquery/sizzle/pull/225
+	sortInput = null;
+
+	return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		while ( (node = elem[i++]) ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (jQuery #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
+
+	return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+	// Can be adjusted by the user
+	cacheLength: 50,
+
+	createPseudo: markFunction,
+
+	match: matchExpr,
+
+	attrHandle: {},
+
+	find: {},
+
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
+
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[6] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			// Accept quoted arguments as-is
+			if ( match[3] ) {
+				match[2] = match[4] || match[5] || "";
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, uniqueCache, outerCache, node, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType,
+						diff = false;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) {
+
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+
+							// Seek `elem` from a previously-cached index
+
+							// ...in a gzip-friendly way
+							node = parent;
+							outerCache = node[ expando ] || (node[ expando ] = {});
+
+							// Support: IE <9 only
+							// Defend against cloned attroperties (jQuery gh-1709)
+							uniqueCache = outerCache[ node.uniqueID ] ||
+								(outerCache[ node.uniqueID ] = {});
+
+							cache = uniqueCache[ type ] || [];
+							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+							diff = nodeIndex && cache[ 2 ];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						} else {
+							// Use previously-cached element index if available
+							if ( useCache ) {
+								// ...in a gzip-friendly way
+								node = elem;
+								outerCache = node[ expando ] || (node[ expando ] = {});
+
+								// Support: IE <9 only
+								// Defend against cloned attroperties (jQuery gh-1709)
+								uniqueCache = outerCache[ node.uniqueID ] ||
+									(outerCache[ node.uniqueID ] = {});
+
+								cache = uniqueCache[ type ] || [];
+								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+								diff = nodeIndex;
+							}
+
+							// xml :nth-child(...)
+							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
+							if ( diff === false ) {
+								// Use the same loop as above to seek `elem` from the start
+								while ( (node = ++nodeIndex && node && node[ dir ] ||
+									(diff = nodeIndex = 0) || start.pop()) ) {
+
+									if ( ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) &&
+										++diff ) {
+
+										// Cache the index of each encountered element
+										if ( useCache ) {
+											outerCache = node[ expando ] || (node[ expando ] = {});
+
+											// Support: IE <9 only
+											// Defend against cloned attroperties (jQuery gh-1709)
+											uniqueCache = outerCache[ node.uniqueID ] ||
+												(outerCache[ node.uniqueID ] = {});
+
+											uniqueCache[ type ] = [ dirruns, diff ];
+										}
+
+										if ( node === elem ) {
+											break;
+										}
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					// Don't keep the element (issue #299)
+					input[0] = null;
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			text = text.replace( runescape, funescape );
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": createDisabledPseudo( false ),
+		"disabled": createDisabledPseudo( true ),
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+			//   but not by others (comment: 8; processing instruction: 7; etc.)
+			// nodeType < 6 works because attributes (2) do not appear as children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				// Support: IE<8
+				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( (tokens = []) );
+		}
+
+		matched = false;
+
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		skip = combinator.next,
+		key = skip || dir,
+		checkNonElements = base && key === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+			return false;
+		} :
+
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var oldCache, uniqueCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+						// Support: IE <9 only
+						// Defend against cloned attroperties (jQuery gh-1709)
+						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+						if ( skip && skip === elem.nodeName.toLowerCase() ) {
+							elem = elem[ dir ] || elem;
+						} else if ( (oldCache = uniqueCache[ key ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							// Assign to newCache so results back-propagate to previous elements
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							// Reuse newcache so results back-propagate to previous elements
+							uniqueCache[ key ] = newCache;
+
+							// A match means we're done; a fail means we have to keep checking
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+			return false;
+		};
+}
+
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		// Add elements to results, through postFinder if defined
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
+}
+
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+			// Avoid hanging onto element (issue #299)
+			checkContext = null;
+			return ret;
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				// We must always have either seed elements or outermost context
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
+
+			if ( outermost ) {
+				outermostContext = context === document || context || outermost;
+			}
+
+			// Add elements passing elementMatchers directly to results
+			// Support: IE<9, Safari
+			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					if ( !context && elem.ownerDocument !== document ) {
+						setDocument( elem );
+						xml = !documentIsHTML;
+					}
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context || document, xml) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
+
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			// `i` is now the count of elements visited above, and adding it to `matchedCount`
+			// makes the latter nonnegative.
+			matchedCount += i;
+
+			// Apply set filters to unmatched elements
+			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+			// no element matchers and no seed.
+			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
+			// numerically zero.
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !match ) {
+			match = tokenize( selector );
+		}
+		i = match.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( match[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+		// Save selector and tokenization
+		cached.selector = selector;
+	}
+	return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		compiled = typeof selector === "function" && selector,
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+	results = results || [];
+
+	// Try to minimize operations if there is only one selector in the list and no seed
+	// (the latter of which guarantees us context)
+	if ( match.length === 1 ) {
+
+		// Reduce context if the leading compound selector is an ID
+		tokens = match[0] = match[0].slice( 0 );
+		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			if ( !context ) {
+				return results;
+
+			// Precompiled matchers will still verify ancestry, so step up a level
+			} else if ( compiled ) {
+				context = context.parentNode;
+			}
+
+			selector = selector.slice( tokens.shift().value.length );
+		}
+
+		// Fetch a seed set for right-to-left matching
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		while ( i-- ) {
+			token = tokens[i];
+
+			// Abort if we hit a combinator
+			if ( Expr.relative[ (type = token.type) ] ) {
+				break;
+			}
+			if ( (find = Expr.find[ type ]) ) {
+				// Search, expanding context for leading sibling combinators
+				if ( (seed = find(
+					token.matches[0].replace( runescape, funescape ),
+					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+				)) ) {
+
+					// If seed is empty or no tokens remain, we can return early
+					tokens.splice( i, 1 );
+					selector = seed.length && toSelector( tokens );
+					if ( !selector ) {
+						push.apply( results, seed );
+						return results;
+					}
+
+					break;
+				}
+			}
+		}
+	}
+
+	// Compile and execute a filtering function if one is not provided
+	// Provide `match` to avoid retokenization if we modified the selector above
+	( compiled || compile( selector, match ) )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+	// Should return 1, but returns 4 (following)
+	return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+	el.innerHTML = "<a href='#'></a>";
+	return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+	el.innerHTML = "<input/>";
+	el.firstChild.setAttribute( "value", "" );
+	return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+	return el.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+	var matched = [],
+		truncate = until !== undefined;
+
+	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+		if ( elem.nodeType === 1 ) {
+			if ( truncate && jQuery( elem ).is( until ) ) {
+				break;
+			}
+			matched.push( elem );
+		}
+	}
+	return matched;
+};
+
+
+var siblings = function( n, elem ) {
+	var matched = [];
+
+	for ( ; n; n = n.nextSibling ) {
+		if ( n.nodeType === 1 && n !== elem ) {
+			matched.push( n );
+		}
+	}
+
+	return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+
+
+function nodeName( elem, name ) {
+
+  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+};
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			return !!qualifier.call( elem, i, elem ) !== not;
+		} );
+	}
+
+	// Single element
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
+		} );
+	}
+
+	// Arraylike of elements (jQuery, arguments, Array)
+	if ( typeof qualifier !== "string" ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+		} );
+	}
+
+	// Filtered directly for both simple and complex selectors
+	return jQuery.filter( qualifier, elements, not );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+	var elem = elems[ 0 ];
+
+	if ( not ) {
+		expr = ":not(" + expr + ")";
+	}
+
+	if ( elems.length === 1 && elem.nodeType === 1 ) {
+		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+	}
+
+	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+		return elem.nodeType === 1;
+	} ) );
+};
+
+jQuery.fn.extend( {
+	find: function( selector ) {
+		var i, ret,
+			len = this.length,
+			self = this;
+
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter( function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			} ) );
+		}
+
+		ret = this.pushStack( [] );
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+	},
+	filter: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], false ) );
+	},
+	not: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], true ) );
+	},
+	is: function( selector ) {
+		return !!winnow(
+			this,
+
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	}
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	// Shortcut simple #id case for speed
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+	init = jQuery.fn.init = function( selector, context, root ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Method init() accepts an alternate rootjQuery
+		// so migrate can support jQuery.sub (gh-2101)
+		root = root || rootjQuery;
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector[ 0 ] === "<" &&
+				selector[ selector.length - 1 ] === ">" &&
+				selector.length >= 3 ) {
+
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = rquickExpr.exec( selector );
+			}
+
+			// Match html or make sure no context is specified for #id
+			if ( match && ( match[ 1 ] || !context ) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[ 1 ] ) {
+					context = context instanceof jQuery ? context[ 0 ] : context;
+
+					// Option to run scripts is true for back-compat
+					// Intentionally let the error be thrown if parseHTML is not present
+					jQuery.merge( this, jQuery.parseHTML(
+						match[ 1 ],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+
+							// Properties of context are called as methods if possible
+							if ( isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
+							}
+						}
+					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[ 2 ] );
+
+					if ( elem ) {
+
+						// Inject the element directly into the jQuery object
+						this[ 0 ] = elem;
+						this.length = 1;
+					}
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || root ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this[ 0 ] = selector;
+			this.length = 1;
+			return this;
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( isFunction( selector ) ) {
+			return root.ready !== undefined ?
+				root.ready( selector ) :
+
+				// Execute immediately if ready is not present
+				selector( jQuery );
+		}
+
+		return jQuery.makeArray( selector, this );
+	};
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+	// Methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend( {
+	has: function( target ) {
+		var targets = jQuery( target, this ),
+			l = targets.length;
+
+		return this.filter( function() {
+			var i = 0;
+			for ( ; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[ i ] ) ) {
+					return true;
+				}
+			}
+		} );
+	},
+
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			matched = [],
+			targets = typeof selectors !== "string" && jQuery( selectors );
+
+		// Positional selectors never match, since there's no _selection_ context
+		if ( !rneedsContext.test( selectors ) ) {
+			for ( ; i < l; i++ ) {
+				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+					// Always skip document fragments
+					if ( cur.nodeType < 11 && ( targets ?
+						targets.index( cur ) > -1 :
+
+						// Don't pass non-elements to Sizzle
+						cur.nodeType === 1 &&
+							jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+						matched.push( cur );
+						break;
+					}
+				}
+			}
+		}
+
+		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+	},
+
+	// Determine the position of an element within the set
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+		}
+
+		// Index in selector
+		if ( typeof elem === "string" ) {
+			return indexOf.call( jQuery( elem ), this[ 0 ] );
+		}
+
+		// Locate the position of the desired element
+		return indexOf.call( this,
+
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[ 0 ] : elem
+		);
+	},
+
+	add: function( selector, context ) {
+		return this.pushStack(
+			jQuery.uniqueSort(
+				jQuery.merge( this.get(), jQuery( selector, context ) )
+			)
+		);
+	},
+
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	}
+} );
+
+function sibling( cur, dir ) {
+	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+	return cur;
+}
+
+jQuery.each( {
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return siblings( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return siblings( elem.firstChild );
+	},
+	contents: function( elem ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
+
+        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+        // Treat the template element as a regular one in browsers that
+        // don't support it.
+        if ( nodeName( elem, "template" ) ) {
+            elem = elem.content || elem;
+        }
+
+        return jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var matched = jQuery.map( this, fn, until );
+
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			matched = jQuery.filter( selector, matched );
+		}
+
+		if ( this.length > 1 ) {
+
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				jQuery.uniqueSort( matched );
+			}
+
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				matched.reverse();
+			}
+		}
+
+		return this.pushStack( matched );
+	};
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+	var object = {};
+	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	} );
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		createOptions( options ) :
+		jQuery.extend( {}, options );
+
+	var // Flag to know if list is currently firing
+		firing,
+
+		// Last fire value for non-forgettable lists
+		memory,
+
+		// Flag to know if list was already fired
+		fired,
+
+		// Flag to prevent firing
+		locked,
+
+		// Actual callback list
+		list = [],
+
+		// Queue of execution data for repeatable lists
+		queue = [],
+
+		// Index of currently firing callback (modified by add/remove as needed)
+		firingIndex = -1,
+
+		// Fire callbacks
+		fire = function() {
+
+			// Enforce single-firing
+			locked = locked || options.once;
+
+			// Execute callbacks for all pending executions,
+			// respecting firingIndex overrides and runtime changes
+			fired = firing = true;
+			for ( ; queue.length; firingIndex = -1 ) {
+				memory = queue.shift();
+				while ( ++firingIndex < list.length ) {
+
+					// Run callback and check for early termination
+					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+						options.stopOnFalse ) {
+
+						// Jump to end and forget the data so .add doesn't re-fire
+						firingIndex = list.length;
+						memory = false;
+					}
+				}
+			}
+
+			// Forget the data if we're done with it
+			if ( !options.memory ) {
+				memory = false;
+			}
+
+			firing = false;
+
+			// Clean up if we're done firing for good
+			if ( locked ) {
+
+				// Keep an empty list if we have data for future add calls
+				if ( memory ) {
+					list = [];
+
+				// Otherwise, this object is spent
+				} else {
+					list = "";
+				}
+			}
+		},
+
+		// Actual Callbacks object
+		self = {
+
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+
+					// If we have memory from a past run, we should fire after adding
+					if ( memory && !firing ) {
+						firingIndex = list.length - 1;
+						queue.push( memory );
+					}
+
+					( function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							if ( isFunction( arg ) ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && toType( arg ) !== "string" ) {
+
+								// Inspect recursively
+								add( arg );
+							}
+						} );
+					} )( arguments );
+
+					if ( memory && !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Remove a callback from the list
+			remove: function() {
+				jQuery.each( arguments, function( _, arg ) {
+					var index;
+					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+						list.splice( index, 1 );
+
+						// Handle firing indexes
+						if ( index <= firingIndex ) {
+							firingIndex--;
+						}
+					}
+				} );
+				return this;
+			},
+
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ?
+					jQuery.inArray( fn, list ) > -1 :
+					list.length > 0;
+			},
+
+			// Remove all callbacks from the list
+			empty: function() {
+				if ( list ) {
+					list = [];
+				}
+				return this;
+			},
+
+			// Disable .fire and .add
+			// Abort any current/pending executions
+			// Clear all callbacks and values
+			disable: function() {
+				locked = queue = [];
+				list = memory = "";
+				return this;
+			},
+			disabled: function() {
+				return !list;
+			},
+
+			// Disable .fire
+			// Also disable .add unless we have memory (since it would have no effect)
+			// Abort any pending executions
+			lock: function() {
+				locked = queue = [];
+				if ( !memory && !firing ) {
+					list = memory = "";
+				}
+				return this;
+			},
+			locked: function() {
+				return !!locked;
+			},
+
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( !locked ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					queue.push( args );
+					if ( !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+
+
+function Identity( v ) {
+	return v;
+}
+function Thrower( ex ) {
+	throw ex;
+}
+
+function adoptValue( value, resolve, reject, noValue ) {
+	var method;
+
+	try {
+
+		// Check for promise aspect first to privilege synchronous behavior
+		if ( value && isFunction( ( method = value.promise ) ) ) {
+			method.call( value ).done( resolve ).fail( reject );
+
+		// Other thenables
+		} else if ( value && isFunction( ( method = value.then ) ) ) {
+			method.call( value, resolve, reject );
+
+		// Other non-thenables
+		} else {
+
+			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
+			// * false: [ value ].slice( 0 ) => resolve( value )
+			// * true: [ value ].slice( 1 ) => resolve()
+			resolve.apply( undefined, [ value ].slice( noValue ) );
+		}
+
+	// For Promises/A+, convert exceptions into rejections
+	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+	// Deferred#then to conditionally suppress rejection.
+	} catch ( value ) {
+
+		// Support: Android 4.0 only
+		// Strict mode functions invoked without .call/.apply get global-object context
+		reject.apply( undefined, [ value ] );
+	}
+}
+
+jQuery.extend( {
+
+	Deferred: function( func ) {
+		var tuples = [
+
+				// action, add listener, callbacks,
+				// ... .then handlers, argument index, [final state]
+				[ "notify", "progress", jQuery.Callbacks( "memory" ),
+					jQuery.Callbacks( "memory" ), 2 ],
+				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				"catch": function( fn ) {
+					return promise.then( null, fn );
+				},
+
+				// Keep pipe for back-compat
+				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+
+					return jQuery.Deferred( function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+
+							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
+							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+							// deferred.progress(function() { bind to newDefer or newDefer.notify })
+							// deferred.done(function() { bind to newDefer or newDefer.resolve })
+							// deferred.fail(function() { bind to newDefer or newDefer.reject })
+							deferred[ tuple[ 1 ] ]( function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && isFunction( returned.promise ) ) {
+									returned.promise()
+										.progress( newDefer.notify )
+										.done( newDefer.resolve )
+										.fail( newDefer.reject );
+								} else {
+									newDefer[ tuple[ 0 ] + "With" ](
+										this,
+										fn ? [ returned ] : arguments
+									);
+								}
+							} );
+						} );
+						fns = null;
+					} ).promise();
+				},
+				then: function( onFulfilled, onRejected, onProgress ) {
+					var maxDepth = 0;
+					function resolve( depth, deferred, handler, special ) {
+						return function() {
+							var that = this,
+								args = arguments,
+								mightThrow = function() {
+									var returned, then;
+
+									// Support: Promises/A+ section 2.3.3.3.3
+									// https://promisesaplus.com/#point-59
+									// Ignore double-resolution attempts
+									if ( depth < maxDepth ) {
+										return;
+									}
+
+									returned = handler.apply( that, args );
+
+									// Support: Promises/A+ section 2.3.1
+									// https://promisesaplus.com/#point-48
+									if ( returned === deferred.promise() ) {
+										throw new TypeError( "Thenable self-resolution" );
+									}
+
+									// Support: Promises/A+ sections 2.3.3.1, 3.5
+									// https://promisesaplus.com/#point-54
+									// https://promisesaplus.com/#point-75
+									// Retrieve `then` only once
+									then = returned &&
+
+										// Support: Promises/A+ section 2.3.4
+										// https://promisesaplus.com/#point-64
+										// Only check objects and functions for thenability
+										( typeof returned === "object" ||
+											typeof returned === "function" ) &&
+										returned.then;
+
+									// Handle a returned thenable
+									if ( isFunction( then ) ) {
+
+										// Special processors (notify) just wait for resolution
+										if ( special ) {
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special )
+											);
+
+										// Normal processors (resolve) also hook into progress
+										} else {
+
+											// ...and disregard older resolution values
+											maxDepth++;
+
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special ),
+												resolve( maxDepth, deferred, Identity,
+													deferred.notifyWith )
+											);
+										}
+
+									// Handle all other returned values
+									} else {
+
+										// Only substitute handlers pass on context
+										// and multiple values (non-spec behavior)
+										if ( handler !== Identity ) {
+											that = undefined;
+											args = [ returned ];
+										}
+
+										// Process the value(s)
+										// Default process is resolve
+										( special || deferred.resolveWith )( that, args );
+									}
+								},
+
+								// Only normal processors (resolve) catch and reject exceptions
+								process = special ?
+									mightThrow :
+									function() {
+										try {
+											mightThrow();
+										} catch ( e ) {
+
+											if ( jQuery.Deferred.exceptionHook ) {
+												jQuery.Deferred.exceptionHook( e,
+													process.stackTrace );
+											}
+
+											// Support: Promises/A+ section 2.3.3.3.4.1
+											// https://promisesaplus.com/#point-61
+											// Ignore post-resolution exceptions
+											if ( depth + 1 >= maxDepth ) {
+
+												// Only substitute handlers pass on context
+												// and multiple values (non-spec behavior)
+												if ( handler !== Thrower ) {
+													that = undefined;
+													args = [ e ];
+												}
+
+												deferred.rejectWith( that, args );
+											}
+										}
+									};
+
+							// Support: Promises/A+ section 2.3.3.3.1
+							// https://promisesaplus.com/#point-57
+							// Re-resolve promises immediately to dodge false rejection from
+							// subsequent errors
+							if ( depth ) {
+								process();
+							} else {
+
+								// Call an optional hook to record the stack, in case of exception
+								// since it's otherwise lost when execution goes async
+								if ( jQuery.Deferred.getStackHook ) {
+									process.stackTrace = jQuery.Deferred.getStackHook();
+								}
+								window.setTimeout( process );
+							}
+						};
+					}
+
+					return jQuery.Deferred( function( newDefer ) {
+
+						// progress_handlers.add( ... )
+						tuples[ 0 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onProgress ) ?
+									onProgress :
+									Identity,
+								newDefer.notifyWith
+							)
+						);
+
+						// fulfilled_handlers.add( ... )
+						tuples[ 1 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onFulfilled ) ?
+									onFulfilled :
+									Identity
+							)
+						);
+
+						// rejected_handlers.add( ... )
+						tuples[ 2 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onRejected ) ?
+									onRejected :
+									Thrower
+							)
+						);
+					} ).promise();
+				},
+
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
+				}
+			},
+			deferred = {};
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 5 ];
+
+			// promise.progress = list.add
+			// promise.done = list.add
+			// promise.fail = list.add
+			promise[ tuple[ 1 ] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add(
+					function() {
+
+						// state = "resolved" (i.e., fulfilled)
+						// state = "rejected"
+						state = stateString;
+					},
+
+					// rejected_callbacks.disable
+					// fulfilled_callbacks.disable
+					tuples[ 3 - i ][ 2 ].disable,
+
+					// rejected_handlers.disable
+					// fulfilled_handlers.disable
+					tuples[ 3 - i ][ 3 ].disable,
+
+					// progress_callbacks.lock
+					tuples[ 0 ][ 2 ].lock,
+
+					// progress_handlers.lock
+					tuples[ 0 ][ 3 ].lock
+				);
+			}
+
+			// progress_handlers.fire
+			// fulfilled_handlers.fire
+			// rejected_handlers.fire
+			list.add( tuple[ 3 ].fire );
+
+			// deferred.notify = function() { deferred.notifyWith(...) }
+			// deferred.resolve = function() { deferred.resolveWith(...) }
+			// deferred.reject = function() { deferred.rejectWith(...) }
+			deferred[ tuple[ 0 ] ] = function() {
+				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+				return this;
+			};
+
+			// deferred.notifyWith = list.fireWith
+			// deferred.resolveWith = list.fireWith
+			// deferred.rejectWith = list.fireWith
+			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+		} );
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( singleValue ) {
+		var
+
+			// count of uncompleted subordinates
+			remaining = arguments.length,
+
+			// count of unprocessed arguments
+			i = remaining,
+
+			// subordinate fulfillment data
+			resolveContexts = Array( i ),
+			resolveValues = slice.call( arguments ),
+
+			// the master Deferred
+			master = jQuery.Deferred(),
+
+			// subordinate callback factory
+			updateFunc = function( i ) {
+				return function( value ) {
+					resolveContexts[ i ] = this;
+					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+					if ( !( --remaining ) ) {
+						master.resolveWith( resolveContexts, resolveValues );
+					}
+				};
+			};
+
+		// Single- and empty arguments are adopted like Promise.resolve
+		if ( remaining <= 1 ) {
+			adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+				!remaining );
+
+			// Use .then() to unwrap secondary thenables (cf. gh-3000)
+			if ( master.state() === "pending" ||
+				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+				return master.then();
+			}
+		}
+
+		// Multiple arguments are aggregated like Promise.all array elements
+		while ( i-- ) {
+			adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+		}
+
+		return master.promise();
+	}
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+	// Support: IE 8 - 9 only
+	// Console exists when dev tools are open, which can happen at any time
+	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+	}
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+	window.setTimeout( function() {
+		throw error;
+	} );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+	readyList
+		.then( fn )
+
+		// Wrap jQuery.readyException in a function so that the lookup
+		// happens at the time of error handling instead of callback
+		// registration.
+		.catch( function( error ) {
+			jQuery.readyException( error );
+		} );
+
+	return this;
+};
+
+jQuery.extend( {
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
+		}
+
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
+		}
+
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
+	}
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+	document.removeEventListener( "DOMContentLoaded", completed );
+	window.removeEventListener( "load", completed );
+	jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+	// Handle it asynchronously to allow scripts the opportunity to delay ready
+	window.setTimeout( jQuery.ready );
+
+} else {
+
+	// Use the handy event callback
+	document.addEventListener( "DOMContentLoaded", completed );
+
+	// A fallback to window.onload, that will always work
+	window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+	var i = 0,
+		len = elems.length,
+		bulk = key == null;
+
+	// Sets many values
+	if ( toType( key ) === "object" ) {
+		chainable = true;
+		for ( i in key ) {
+			access( elems, fn, i, key[ i ], true, emptyGet, raw );
+		}
+
+	// Sets one value
+	} else if ( value !== undefined ) {
+		chainable = true;
+
+		if ( !isFunction( value ) ) {
+			raw = true;
+		}
+
+		if ( bulk ) {
+
+			// Bulk operations run against the entire set
+			if ( raw ) {
+				fn.call( elems, value );
+				fn = null;
+
+			// ...except when executing function values
+			} else {
+				bulk = fn;
+				fn = function( elem, key, value ) {
+					return bulk.call( jQuery( elem ), value );
+				};
+			}
+		}
+
+		if ( fn ) {
+			for ( ; i < len; i++ ) {
+				fn(
+					elems[ i ], key, raw ?
+					value :
+					value.call( elems[ i ], i, fn( elems[ i ], key ) )
+				);
+			}
+		}
+	}
+
+	if ( chainable ) {
+		return elems;
+	}
+
+	// Gets
+	if ( bulk ) {
+		return fn.call( elems );
+	}
+
+	return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+
+
+// Matches dashed string for camelizing
+var rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([a-z])/g;
+
+// Used by camelCase as callback to replace()
+function fcamelCase( all, letter ) {
+	return letter.toUpperCase();
+}
+
+// Convert dashed to camelCase; used by the css and data modules
+// Support: IE <=9 - 11, Edge 12 - 15
+// Microsoft forgot to hump their vendor prefix (#9572)
+function camelCase( string ) {
+	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+}
+var acceptData = function( owner ) {
+
+	// Accepts only:
+	//  - Node
+	//    - Node.ELEMENT_NODE
+	//    - Node.DOCUMENT_NODE
+	//  - Object
+	//    - Any
+	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+	this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+	cache: function( owner ) {
+
+		// Check if the owner object already has a cache
+		var value = owner[ this.expando ];
+
+		// If not, create one
+		if ( !value ) {
+			value = {};
+
+			// We can accept data for non-element nodes in modern browsers,
+			// but we should not, see #8335.
+			// Always return an empty object.
+			if ( acceptData( owner ) ) {
+
+				// If it is a node unlikely to be stringify-ed or looped over
+				// use plain assignment
+				if ( owner.nodeType ) {
+					owner[ this.expando ] = value;
+
+				// Otherwise secure it in a non-enumerable property
+				// configurable must be true to allow the property to be
+				// deleted when data is removed
+				} else {
+					Object.defineProperty( owner, this.expando, {
+						value: value,
+						configurable: true
+					} );
+				}
+			}
+		}
+
+		return value;
+	},
+	set: function( owner, data, value ) {
+		var prop,
+			cache = this.cache( owner );
+
+		// Handle: [ owner, key, value ] args
+		// Always use camelCase key (gh-2257)
+		if ( typeof data === "string" ) {
+			cache[ camelCase( data ) ] = value;
+
+		// Handle: [ owner, { properties } ] args
+		} else {
+
+			// Copy the properties one-by-one to the cache object
+			for ( prop in data ) {
+				cache[ camelCase( prop ) ] = data[ prop ];
+			}
+		}
+		return cache;
+	},
+	get: function( owner, key ) {
+		return key === undefined ?
+			this.cache( owner ) :
+
+			// Always use camelCase key (gh-2257)
+			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
+	},
+	access: function( owner, key, value ) {
+
+		// In cases where either:
+		//
+		//   1. No key was specified
+		//   2. A string key was specified, but no value provided
+		//
+		// Take the "read" path and allow the get method to determine
+		// which value to return, respectively either:
+		//
+		//   1. The entire cache object
+		//   2. The data stored at the key
+		//
+		if ( key === undefined ||
+				( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+			return this.get( owner, key );
+		}
+
+		// When the key is not a string, or both a key and value
+		// are specified, set or extend (existing objects) with either:
+		//
+		//   1. An object of properties
+		//   2. A key and value
+		//
+		this.set( owner, key, value );
+
+		// Since the "set" path can have two possible entry points
+		// return the expected data based on which path was taken[*]
+		return value !== undefined ? value : key;
+	},
+	remove: function( owner, key ) {
+		var i,
+			cache = owner[ this.expando ];
+
+		if ( cache === undefined ) {
+			return;
+		}
+
+		if ( key !== undefined ) {
+
+			// Support array or space separated string of keys
+			if ( Array.isArray( key ) ) {
+
+				// If key is an array of keys...
+				// We always set camelCase keys, so remove that.
+				key = key.map( camelCase );
+			} else {
+				key = camelCase( key );
+
+				// If a key with the spaces exists, use it.
+				// Otherwise, create an array by matching non-whitespace
+				key = key in cache ?
+					[ key ] :
+					( key.match( rnothtmlwhite ) || [] );
+			}
+
+			i = key.length;
+
+			while ( i-- ) {
+				delete cache[ key[ i ] ];
+			}
+		}
+
+		// Remove the expando if there's no more data
+		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+			// Support: Chrome <=35 - 45
+			// Webkit & Blink performance suffers when deleting properties
+			// from DOM nodes, so set to undefined instead
+			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+			if ( owner.nodeType ) {
+				owner[ this.expando ] = undefined;
+			} else {
+				delete owner[ this.expando ];
+			}
+		}
+	},
+	hasData: function( owner ) {
+		var cache = owner[ this.expando ];
+		return cache !== undefined && !jQuery.isEmptyObject( cache );
+	}
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+//	Implementation Summary
+//
+//	1. Enforce API surface and semantic compatibility with 1.9.x branch
+//	2. Improve the module's maintainability by reducing the storage
+//		paths to a single mechanism.
+//	3. Use the same single mechanism to support "private" and "user" data.
+//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//	5. Avoid exposing implementation details on user objects (eg. expando properties)
+//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+	rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+	if ( data === "true" ) {
+		return true;
+	}
+
+	if ( data === "false" ) {
+		return false;
+	}
+
+	if ( data === "null" ) {
+		return null;
+	}
+
+	// Only convert to a number if it doesn't change the string
+	if ( data === +data + "" ) {
+		return +data;
+	}
+
+	if ( rbrace.test( data ) ) {
+		return JSON.parse( data );
+	}
+
+	return data;
+}
+
+function dataAttr( elem, key, data ) {
+	var name;
+
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = getData( data );
+			} catch ( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			dataUser.set( elem, key, data );
+		} else {
+			data = undefined;
+		}
+	}
+	return data;
+}
+
+jQuery.extend( {
+	hasData: function( elem ) {
+		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+	},
+
+	data: function( elem, name, data ) {
+		return dataUser.access( elem, name, data );
+	},
+
+	removeData: function( elem, name ) {
+		dataUser.remove( elem, name );
+	},
+
+	// TODO: Now that all calls to _data and _removeData have been replaced
+	// with direct calls to dataPriv methods, these can be deprecated.
+	_data: function( elem, name, data ) {
+		return dataPriv.access( elem, name, data );
+	},
+
+	_removeData: function( elem, name ) {
+		dataPriv.remove( elem, name );
+	}
+} );
+
+jQuery.fn.extend( {
+	data: function( key, value ) {
+		var i, name, data,
+			elem = this[ 0 ],
+			attrs = elem && elem.attributes;
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = dataUser.get( elem );
+
+				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+					i = attrs.length;
+					while ( i-- ) {
+
+						// Support: IE 11 only
+						// The attrs elements can be null (#14894)
+						if ( attrs[ i ] ) {
+							name = attrs[ i ].name;
+							if ( name.indexOf( "data-" ) === 0 ) {
+								name = camelCase( name.slice( 5 ) );
+								dataAttr( elem, name, data[ name ] );
+							}
+						}
+					}
+					dataPriv.set( elem, "hasDataAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each( function() {
+				dataUser.set( this, key );
+			} );
+		}
+
+		return access( this, function( value ) {
+			var data;
+
+			// The calling jQuery object (element matches) is not empty
+			// (and therefore has an element appears at this[ 0 ]) and the
+			// `value` parameter was not undefined. An empty jQuery object
+			// will result in `undefined` for elem = this[ 0 ] which will
+			// throw an exception if an attempt to read a data cache is made.
+			if ( elem && value === undefined ) {
+
+				// Attempt to get data from the cache
+				// The key will always be camelCased in Data
+				data = dataUser.get( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// Attempt to "discover" the data in
+				// HTML5 custom data-* attrs
+				data = dataAttr( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// We tried really hard, but the data doesn't exist.
+				return;
+			}
+
+			// Set the data...
+			this.each( function() {
+
+				// We always store the camelCased key
+				dataUser.set( this, key, value );
+			} );
+		}, null, value, arguments.length > 1, null, true );
+	},
+
+	removeData: function( key ) {
+		return this.each( function() {
+			dataUser.remove( this, key );
+		} );
+	}
+} );
+
+
+jQuery.extend( {
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = dataPriv.get( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || Array.isArray( data ) ) {
+					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			// Clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
+		}
+
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
+		}
+	},
+
+	// Not public - generate a queueHooks object, or return the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+			empty: jQuery.Callbacks( "once memory" ).add( function() {
+				dataPriv.remove( elem, [ type + "queue", key ] );
+			} )
+		} );
+	}
+} );
+
+jQuery.fn.extend( {
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[ 0 ], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each( function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// Ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			} );
+	},
+	dequeue: function( type ) {
+		return this.each( function() {
+			jQuery.dequeue( this, type );
+		} );
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
+
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
+
+		while ( i-- ) {
+			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( obj );
+	}
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+		// isHiddenWithinTree might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+
+		// Inline style trumps all
+		return elem.style.display === "none" ||
+			elem.style.display === "" &&
+
+			// Otherwise, check computed style
+			// Support: Firefox <=43 - 45
+			// Disconnected elements can have computed display: none, so first confirm that elem is
+			// in the document.
+			jQuery.contains( elem.ownerDocument, elem ) &&
+
+			jQuery.css( elem, "display" ) === "none";
+	};
+
+var swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+	var adjusted, scale,
+		maxIterations = 20,
+		currentValue = tween ?
+			function() {
+				return tween.cur();
+			} :
+			function() {
+				return jQuery.css( elem, prop, "" );
+			},
+		initial = currentValue(),
+		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+		// Starting value computation is required for potential unit mismatches
+		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+			rcssNum.exec( jQuery.css( elem, prop ) );
+
+	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+		// Support: Firefox <=54
+		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
+		initial = initial / 2;
+
+		// Trust units reported by jQuery.css
+		unit = unit || initialInUnit[ 3 ];
+
+		// Iteratively approximate from a nonzero starting point
+		initialInUnit = +initial || 1;
+
+		while ( maxIterations-- ) {
+
+			// Evaluate and update our best guess (doubling guesses that zero out).
+			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
+			jQuery.style( elem, prop, initialInUnit + unit );
+			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
+				maxIterations = 0;
+			}
+			initialInUnit = initialInUnit / scale;
+
+		}
+
+		initialInUnit = initialInUnit * 2;
+		jQuery.style( elem, prop, initialInUnit + unit );
+
+		// Make sure we update the tween properties later on
+		valueParts = valueParts || [];
+	}
+
+	if ( valueParts ) {
+		initialInUnit = +initialInUnit || +initial || 0;
+
+		// Apply relative offset (+=/-=) if specified
+		adjusted = valueParts[ 1 ] ?
+			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+			+valueParts[ 2 ];
+		if ( tween ) {
+			tween.unit = unit;
+			tween.start = initialInUnit;
+			tween.end = adjusted;
+		}
+	}
+	return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+	var temp,
+		doc = elem.ownerDocument,
+		nodeName = elem.nodeName,
+		display = defaultDisplayMap[ nodeName ];
+
+	if ( display ) {
+		return display;
+	}
+
+	temp = doc.body.appendChild( doc.createElement( nodeName ) );
+	display = jQuery.css( temp, "display" );
+
+	temp.parentNode.removeChild( temp );
+
+	if ( display === "none" ) {
+		display = "block";
+	}
+	defaultDisplayMap[ nodeName ] = display;
+
+	return display;
+}
+
+function showHide( elements, show ) {
+	var display, elem,
+		values = [],
+		index = 0,
+		length = elements.length;
+
+	// Determine new display value for elements that need to change
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+
+		display = elem.style.display;
+		if ( show ) {
+
+			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+			// check is required in this first loop unless we have a nonempty display value (either
+			// inline or about-to-be-restored)
+			if ( display === "none" ) {
+				values[ index ] = dataPriv.get( elem, "display" ) || null;
+				if ( !values[ index ] ) {
+					elem.style.display = "";
+				}
+			}
+			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+				values[ index ] = getDefaultDisplay( elem );
+			}
+		} else {
+			if ( display !== "none" ) {
+				values[ index ] = "none";
+
+				// Remember what we're overwriting
+				dataPriv.set( elem, "display", display );
+			}
+		}
+	}
+
+	// Set the display of the elements in a second loop to avoid constant reflow
+	for ( index = 0; index < length; index++ ) {
+		if ( values[ index ] != null ) {
+			elements[ index ].style.display = values[ index ];
+		}
+	}
+
+	return elements;
+}
+
+jQuery.fn.extend( {
+	show: function() {
+		return showHide( this, true );
+	},
+	hide: function() {
+		return showHide( this );
+	},
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each( function() {
+			if ( isHiddenWithinTree( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		} );
+	}
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+	// Support: IE <=9 only
+	option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+	// XHTML parsers do not magically insert elements in the
+	// same way that tag soup parsers do. So we cannot shorten
+	// this by omitting <tbody> or other required elements.
+	thead: [ 1, "<table>", "</table>" ],
+	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+	_default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+	// Support: IE <=9 - 11 only
+	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
+	var ret;
+
+	if ( typeof context.getElementsByTagName !== "undefined" ) {
+		ret = context.getElementsByTagName( tag || "*" );
+
+	} else if ( typeof context.querySelectorAll !== "undefined" ) {
+		ret = context.querySelectorAll( tag || "*" );
+
+	} else {
+		ret = [];
+	}
+
+	if ( tag === undefined || tag && nodeName( context, tag ) ) {
+		return jQuery.merge( [ context ], ret );
+	}
+
+	return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		dataPriv.set(
+			elems[ i ],
+			"globalEval",
+			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
+		);
+	}
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+	var elem, tmp, tag, wrap, contains, j,
+		fragment = context.createDocumentFragment(),
+		nodes = [],
+		i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		elem = elems[ i ];
+
+		if ( elem || elem === 0 ) {
+
+			// Add nodes directly
+			if ( toType( elem ) === "object" ) {
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+			// Convert non-html into a text node
+			} else if ( !rhtml.test( elem ) ) {
+				nodes.push( context.createTextNode( elem ) );
+
+			// Convert html into DOM nodes
+			} else {
+				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+				// Deserialize a standard representation
+				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+				wrap = wrapMap[ tag ] || wrapMap._default;
+				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+				// Descend through wrappers to the right content
+				j = wrap[ 0 ];
+				while ( j-- ) {
+					tmp = tmp.lastChild;
+				}
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, tmp.childNodes );
+
+				// Remember the top-level container
+				tmp = fragment.firstChild;
+
+				// Ensure the created nodes are orphaned (#12392)
+				tmp.textContent = "";
+			}
+		}
+	}
+
+	// Remove wrapper from fragment
+	fragment.textContent = "";
+
+	i = 0;
+	while ( ( elem = nodes[ i++ ] ) ) {
+
+		// Skip elements already in the context collection (trac-4087)
+		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+			if ( ignored ) {
+				ignored.push( elem );
+			}
+			continue;
+		}
+
+		contains = jQuery.contains( elem.ownerDocument, elem );
+
+		// Append to fragment
+		tmp = getAll( fragment.appendChild( elem ), "script" );
+
+		// Preserve script evaluation history
+		if ( contains ) {
+			setGlobalEval( tmp );
+		}
+
+		// Capture executables
+		if ( scripts ) {
+			j = 0;
+			while ( ( elem = tmp[ j++ ] ) ) {
+				if ( rscriptType.test( elem.type || "" ) ) {
+					scripts.push( elem );
+				}
+			}
+		}
+	}
+
+	return fragment;
+}
+
+
+( function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Android 4.0 - 4.3 only
+	// Check state lost if the name is set (#11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (#14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Android <=4.1 only
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE <=11 only
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+	var origFn, type;
+
+	// Types can be a map of types/handlers
+	if ( typeof types === "object" ) {
+
+		// ( types-Object, selector, data )
+		if ( typeof selector !== "string" ) {
+
+			// ( types-Object, data )
+			data = data || selector;
+			selector = undefined;
+		}
+		for ( type in types ) {
+			on( elem, type, selector, data, types[ type ], one );
+		}
+		return elem;
+	}
+
+	if ( data == null && fn == null ) {
+
+		// ( types, fn )
+		fn = selector;
+		data = selector = undefined;
+	} else if ( fn == null ) {
+		if ( typeof selector === "string" ) {
+
+			// ( types, selector, fn )
+			fn = data;
+			data = undefined;
+		} else {
+
+			// ( types, data, fn )
+			fn = data;
+			data = selector;
+			selector = undefined;
+		}
+	}
+	if ( fn === false ) {
+		fn = returnFalse;
+	} else if ( !fn ) {
+		return elem;
+	}
+
+	if ( one === 1 ) {
+		origFn = fn;
+		fn = function( event ) {
+
+			// Can use an empty set, since event contains the info
+			jQuery().off( event );
+			return origFn.apply( this, arguments );
+		};
+
+		// Use same guid so caller can remove using origFn
+		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+	}
+	return elem.each( function() {
+		jQuery.event.add( this, types, fn, data, selector );
+	} );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	global: {},
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var handleObjIn, eventHandle, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.get( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Ensure that invalid selectors throw exceptions at attach time
+		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
+		if ( selector ) {
+			jQuery.find.matchesSelector( documentElement, selector );
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		if ( !( events = elemData.events ) ) {
+			events = elemData.events = {};
+		}
+		if ( !( eventHandle = elemData.handle ) ) {
+			eventHandle = elemData.handle = function( e ) {
+
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+			};
+		}
+
+		// Handle multiple events separated by a space
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend( {
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join( "." )
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			if ( !( handlers = events[ type ] ) ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener if the special events handler returns false
+				if ( !special.setup ||
+					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+	},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var j, origCount, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+		if ( !elemData || !( events = elemData.events ) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[ 2 ] &&
+				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector ||
+						selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
+
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown ||
+					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove data and the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			dataPriv.remove( elem, "handle events" );
+		}
+	},
+
+	dispatch: function( nativeEvent ) {
+
+		// Make a writable jQuery.Event from the native event object
+		var event = jQuery.event.fix( nativeEvent );
+
+		var i, j, ret, matched, handleObj, handlerQueue,
+			args = new Array( arguments.length ),
+			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[ 0 ] = event;
+
+		for ( i = 1; i < arguments.length; i++ ) {
+			args[ i ] = arguments[ i ];
+		}
+
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
+
+			j = 0;
+			while ( ( handleObj = matched.handlers[ j++ ] ) &&
+				!event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
+				// a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+						handleObj.handler ).apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( ( event.result = ret ) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	handlers: function( event, handlers ) {
+		var i, handleObj, sel, matchedHandlers, matchedSelectors,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
+
+		// Find delegate handlers
+		if ( delegateCount &&
+
+			// Support: IE <=9
+			// Black-hole SVG <use> instance trees (trac-13180)
+			cur.nodeType &&
+
+			// Support: Firefox <=42
+			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+			// Support: IE 11 only
+			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+			!( event.type === "click" && event.button >= 1 ) ) {
+
+			for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+				// Don't check non-elements (#13208)
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+					matchedHandlers = [];
+					matchedSelectors = {};
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matchedSelectors[ sel ] === undefined ) {
+							matchedSelectors[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) > -1 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matchedSelectors[ sel ] ) {
+							matchedHandlers.push( handleObj );
+						}
+					}
+					if ( matchedHandlers.length ) {
+						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		cur = this;
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+		}
+
+		return handlerQueue;
+	},
+
+	addProp: function( name, hook ) {
+		Object.defineProperty( jQuery.Event.prototype, name, {
+			enumerable: true,
+			configurable: true,
+
+			get: isFunction( hook ) ?
+				function() {
+					if ( this.originalEvent ) {
+							return hook( this.originalEvent );
+					}
+				} :
+				function() {
+					if ( this.originalEvent ) {
+							return this.originalEvent[ name ];
+					}
+				},
+
+			set: function( value ) {
+				Object.defineProperty( this, name, {
+					enumerable: true,
+					configurable: true,
+					writable: true,
+					value: value
+				} );
+			}
+		} );
+	},
+
+	fix: function( originalEvent ) {
+		return originalEvent[ jQuery.expando ] ?
+			originalEvent :
+			new jQuery.Event( originalEvent );
+	},
+
+	special: {
+		load: {
+
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+		focus: {
+
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
+				}
+			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
+					this.click();
+					return false;
+				}
+			},
+
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return nodeName( event.target, "a" );
+			}
+		},
+
+		beforeunload: {
+			postDispatch: function( event ) {
+
+				// Support: Firefox 20+
+				// Firefox doesn't alert if the returnValue field is not set.
+				if ( event.result !== undefined && event.originalEvent ) {
+					event.originalEvent.returnValue = event.result;
+				}
+			}
+		}
+	}
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+	// This "if" is needed for plain objects
+	if ( elem.removeEventListener ) {
+		elem.removeEventListener( type, handle );
+	}
+};
+
+jQuery.Event = function( src, props ) {
+
+	// Allow instantiation without the 'new' keyword
+	if ( !( this instanceof jQuery.Event ) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = src.defaultPrevented ||
+				src.defaultPrevented === undefined &&
+
+				// Support: Android <=2.3 only
+				src.returnValue === false ?
+			returnTrue :
+			returnFalse;
+
+		// Create target properties
+		// Support: Safari <=6 - 7 only
+		// Target should not be a text node (#504, #13143)
+		this.target = ( src.target && src.target.nodeType === 3 ) ?
+			src.target.parentNode :
+			src.target;
+
+		this.currentTarget = src.currentTarget;
+		this.relatedTarget = src.relatedTarget;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || Date.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	constructor: jQuery.Event,
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
+	isSimulated: false,
+
+	preventDefault: function() {
+		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.preventDefault();
+		}
+	},
+	stopPropagation: function() {
+		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopPropagation();
+		}
+	},
+	stopImmediatePropagation: function() {
+		var e = this.originalEvent;
+
+		this.isImmediatePropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopImmediatePropagation();
+		}
+
+		this.stopPropagation();
+	}
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+	altKey: true,
+	bubbles: true,
+	cancelable: true,
+	changedTouches: true,
+	ctrlKey: true,
+	detail: true,
+	eventPhase: true,
+	metaKey: true,
+	pageX: true,
+	pageY: true,
+	shiftKey: true,
+	view: true,
+	"char": true,
+	charCode: true,
+	key: true,
+	keyCode: true,
+	button: true,
+	buttons: true,
+	clientX: true,
+	clientY: true,
+	offsetX: true,
+	offsetY: true,
+	pointerId: true,
+	pointerType: true,
+	screenX: true,
+	screenY: true,
+	targetTouches: true,
+	toElement: true,
+	touches: true,
+
+	which: function( event ) {
+		var button = event.button;
+
+		// Add which for key events
+		if ( event.which == null && rkeyEvent.test( event.type ) ) {
+			return event.charCode != null ? event.charCode : event.keyCode;
+		}
+
+		// Add which for click: 1 === left; 2 === middle; 3 === right
+		if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+			if ( button & 1 ) {
+				return 1;
+			}
+
+			if ( button & 2 ) {
+				return 3;
+			}
+
+			if ( button & 4 ) {
+				return 2;
+			}
+
+			return 0;
+		}
+
+		return event.which;
+	}
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+	mouseenter: "mouseover",
+	mouseleave: "mouseout",
+	pointerenter: "pointerover",
+	pointerleave: "pointerout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mouseenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+} );
+
+jQuery.fn.extend( {
+
+	on: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn );
+	},
+	one: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ?
+					handleObj.origType + "." + handleObj.namespace :
+					handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each( function() {
+			jQuery.event.remove( this, types, fn, selector );
+		} );
+	}
+} );
+
+
+var
+
+	/* eslint-disable max-len */
+
+	// See https://github.com/eslint/eslint/issues/3229
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+	/* eslint-enable */
+
+	// Support: IE <=10 - 11, Edge 12 - 13 only
+	// In IE/Edge using regex groups here causes severe slowdowns.
+	// See https://connect.microsoft.com/IE/feedback/details/1736512/
+	rnoInnerhtml = /<script|<style|<link/i,
+
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Prefer a tbody over its parent table for containing new rows
+function manipulationTarget( elem, content ) {
+	if ( nodeName( elem, "table" ) &&
+		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
+	}
+
+	return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
+		elem.type = elem.type.slice( 5 );
+	} else {
+		elem.removeAttribute( "type" );
+	}
+
+	return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// 1. Copy private data: events, handlers, etc.
+	if ( dataPriv.hasData( src ) ) {
+		pdataOld = dataPriv.access( src );
+		pdataCur = dataPriv.set( dest, pdataOld );
+		events = pdataOld.events;
+
+		if ( events ) {
+			delete pdataCur.handle;
+			pdataCur.events = {};
+
+			for ( type in events ) {
+				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+					jQuery.event.add( dest, type, events[ type ][ i ] );
+				}
+			}
+		}
+	}
+
+	// 2. Copy user data
+	if ( dataUser.hasData( src ) ) {
+		udataOld = dataUser.access( src );
+		udataCur = jQuery.extend( {}, udataOld );
+
+		dataUser.set( dest, udataCur );
+	}
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+	var nodeName = dest.nodeName.toLowerCase();
+
+	// Fails to persist the checked state of a cloned checkbox or radio button.
+	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+		dest.checked = src.checked;
+
+	// Fails to return the selected option to the default selected state when cloning options
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+	// Flatten any nested arrays
+	args = concat.apply( [], args );
+
+	var fragment, first, scripts, hasScripts, node, doc,
+		i = 0,
+		l = collection.length,
+		iNoClone = l - 1,
+		value = args[ 0 ],
+		valueIsFunction = isFunction( value );
+
+	// We can't cloneNode fragments that contain checked, in WebKit
+	if ( valueIsFunction ||
+			( l > 1 && typeof value === "string" &&
+				!support.checkClone && rchecked.test( value ) ) ) {
+		return collection.each( function( index ) {
+			var self = collection.eq( index );
+			if ( valueIsFunction ) {
+				args[ 0 ] = value.call( this, index, self.html() );
+			}
+			domManip( self, args, callback, ignored );
+		} );
+	}
+
+	if ( l ) {
+		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+		first = fragment.firstChild;
+
+		if ( fragment.childNodes.length === 1 ) {
+			fragment = first;
+		}
+
+		// Require either new content or an interest in ignored elements to invoke the callback
+		if ( first || ignored ) {
+			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+			hasScripts = scripts.length;
+
+			// Use the original fragment for the last item
+			// instead of the first because it can end up
+			// being emptied incorrectly in certain situations (#8070).
+			for ( ; i < l; i++ ) {
+				node = fragment;
+
+				if ( i !== iNoClone ) {
+					node = jQuery.clone( node, true, true );
+
+					// Keep references to cloned scripts for later restoration
+					if ( hasScripts ) {
+
+						// Support: Android <=4.0 only, PhantomJS 1 only
+						// push.apply(_, arraylike) throws on ancient WebKit
+						jQuery.merge( scripts, getAll( node, "script" ) );
+					}
+				}
+
+				callback.call( collection[ i ], node, i );
+			}
+
+			if ( hasScripts ) {
+				doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+				// Reenable scripts
+				jQuery.map( scripts, restoreScript );
+
+				// Evaluate executable scripts on first document insertion
+				for ( i = 0; i < hasScripts; i++ ) {
+					node = scripts[ i ];
+					if ( rscriptType.test( node.type || "" ) &&
+						!dataPriv.access( node, "globalEval" ) &&
+						jQuery.contains( doc, node ) ) {
+
+						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
+
+							// Optional AJAX dependency, but won't run scripts if not present
+							if ( jQuery._evalUrl ) {
+								jQuery._evalUrl( node.src );
+							}
+						} else {
+							DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return collection;
+}
+
+function remove( elem, selector, keepData ) {
+	var node,
+		nodes = selector ? jQuery.filter( selector, elem ) : elem,
+		i = 0;
+
+	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+		if ( !keepData && node.nodeType === 1 ) {
+			jQuery.cleanData( getAll( node ) );
+		}
+
+		if ( node.parentNode ) {
+			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+				setGlobalEval( getAll( node, "script" ) );
+			}
+			node.parentNode.removeChild( node );
+		}
+	}
+
+	return elem;
+}
+
+jQuery.extend( {
+	htmlPrefilter: function( html ) {
+		return html.replace( rxhtmlTag, "<$1></$2>" );
+	},
+
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var i, l, srcElements, destElements,
+			clone = elem.cloneNode( true ),
+			inPage = jQuery.contains( elem.ownerDocument, elem );
+
+		// Fix IE cloning issues
+		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+				!jQuery.isXMLDoc( elem ) ) {
+
+			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
+
+			for ( i = 0, l = srcElements.length; i < l; i++ ) {
+				fixInput( srcElements[ i ], destElements[ i ] );
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
+
+				for ( i = 0, l = srcElements.length; i < l; i++ ) {
+					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+				}
+			} else {
+				cloneCopyEvent( elem, clone );
+			}
+		}
+
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+		}
+
+		// Return the cloned set
+		return clone;
+	},
+
+	cleanData: function( elems ) {
+		var data, elem, type,
+			special = jQuery.event.special,
+			i = 0;
+
+		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+			if ( acceptData( elem ) ) {
+				if ( ( data = elem[ dataPriv.expando ] ) ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
+
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
+							}
+						}
+					}
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataPriv.expando ] = undefined;
+				}
+				if ( elem[ dataUser.expando ] ) {
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataUser.expando ] = undefined;
+				}
+			}
+		}
+	}
+} );
+
+jQuery.fn.extend( {
+	detach: function( selector ) {
+		return remove( this, selector, true );
+	},
+
+	remove: function( selector ) {
+		return remove( this, selector );
+	},
+
+	text: function( value ) {
+		return access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().each( function() {
+					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+						this.textContent = value;
+					}
+				} );
+		}, null, value, arguments.length );
+	},
+
+	append: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		} );
+	},
+
+	prepend: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		} );
+	},
+
+	before: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		} );
+	},
+
+	after: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			}
+		} );
+	},
+
+	empty: function() {
+		var elem,
+			i = 0;
+
+		for ( ; ( elem = this[ i ] ) != null; i++ ) {
+			if ( elem.nodeType === 1 ) {
+
+				// Prevent memory leaks
+				jQuery.cleanData( getAll( elem, false ) );
+
+				// Remove any remaining nodes
+				elem.textContent = "";
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function() {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		} );
+	},
+
+	html: function( value ) {
+		return access( this, function( value ) {
+			var elem = this[ 0 ] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined && elem.nodeType === 1 ) {
+				return elem.innerHTML;
+			}
+
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+				value = jQuery.htmlPrefilter( value );
+
+				try {
+					for ( ; i < l; i++ ) {
+						elem = this[ i ] || {};
+
+						// Remove element nodes and prevent memory leaks
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch ( e ) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function() {
+		var ignored = [];
+
+		// Make the changes, replacing each non-ignored context element with the new content
+		return domManip( this, arguments, function( elem ) {
+			var parent = this.parentNode;
+
+			if ( jQuery.inArray( this, ignored ) < 0 ) {
+				jQuery.cleanData( getAll( this ) );
+				if ( parent ) {
+					parent.replaceChild( elem, this );
+				}
+			}
+
+		// Force callback invocation
+		}, ignored );
+	}
+} );
+
+jQuery.each( {
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1,
+			i = 0;
+
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone( true );
+			jQuery( insert[ i ] )[ original ]( elems );
+
+			// Support: Android <=4.0 only, PhantomJS 1 only
+			// .get() because push.apply(_, arraylike) throws on ancient WebKit
+			push.apply( ret, elems.get() );
+		}
+
+		return this.pushStack( ret );
+	};
+} );
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+		// IE throws on elements created in popups
+		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+		var view = elem.ownerDocument.defaultView;
+
+		if ( !view || !view.opener ) {
+			view = window;
+		}
+
+		return view.getComputedStyle( elem );
+	};
+
+var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
+
+
+
+( function() {
+
+	// Executing both pixelPosition & boxSizingReliable tests require only one layout
+	// so they're executed at the same time to save the second computation.
+	function computeStyleTests() {
+
+		// This is a singleton, we need to execute it only once
+		if ( !div ) {
+			return;
+		}
+
+		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
+			"margin-top:1px;padding:0;border:0";
+		div.style.cssText =
+			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
+			"margin:auto;border:1px;padding:1px;" +
+			"width:60%;top:1%";
+		documentElement.appendChild( container ).appendChild( div );
+
+		var divStyle = window.getComputedStyle( div );
+		pixelPositionVal = divStyle.top !== "1%";
+
+		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
+
+		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
+		// Some styles come back with percentage values, even though they shouldn't
+		div.style.right = "60%";
+		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
+
+		// Support: IE 9 - 11 only
+		// Detect misreporting of content dimensions for box-sizing:border-box elements
+		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
+
+		// Support: IE 9 only
+		// Detect overflow:scroll screwiness (gh-3699)
+		div.style.position = "absolute";
+		scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
+
+		documentElement.removeChild( container );
+
+		// Nullify the div so it wouldn't be stored in the memory and
+		// it will also be a sign that checks already performed
+		div = null;
+	}
+
+	function roundPixelMeasures( measure ) {
+		return Math.round( parseFloat( measure ) );
+	}
+
+	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
+		reliableMarginLeftVal,
+		container = document.createElement( "div" ),
+		div = document.createElement( "div" );
+
+	// Finish early in limited (non-browser) environments
+	if ( !div.style ) {
+		return;
+	}
+
+	// Support: IE <=9 - 11 only
+	// Style of cloned element affects source element cloned (#8908)
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+	jQuery.extend( support, {
+		boxSizingReliable: function() {
+			computeStyleTests();
+			return boxSizingReliableVal;
+		},
+		pixelBoxStyles: function() {
+			computeStyleTests();
+			return pixelBoxStylesVal;
+		},
+		pixelPosition: function() {
+			computeStyleTests();
+			return pixelPositionVal;
+		},
+		reliableMarginLeft: function() {
+			computeStyleTests();
+			return reliableMarginLeftVal;
+		},
+		scrollboxSize: function() {
+			computeStyleTests();
+			return scrollboxSizeVal;
+		}
+	} );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+	var width, minWidth, maxWidth, ret,
+
+		// Support: Firefox 51+
+		// Retrieving style before computed somehow
+		// fixes an issue with getting wrong values
+		// on detached elements
+		style = elem.style;
+
+	computed = computed || getStyles( elem );
+
+	// getPropertyValue is needed for:
+	//   .css('filter') (IE 9 only, #12537)
+	//   .css('--customProperty) (#3144)
+	if ( computed ) {
+		ret = computed.getPropertyValue( name ) || computed[ name ];
+
+		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+			ret = jQuery.style( elem, name );
+		}
+
+		// A tribute to the "awesome hack by Dean Edwards"
+		// Android Browser returns percentage for some values,
+		// but width seems to be reliably pixels.
+		// This is against the CSSOM draft spec:
+		// https://drafts.csswg.org/cssom/#resolved-values
+		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
+
+			// Remember the original values
+			width = style.width;
+			minWidth = style.minWidth;
+			maxWidth = style.maxWidth;
+
+			// Put in the new values to get a computed value out
+			style.minWidth = style.maxWidth = style.width = ret;
+			ret = computed.width;
+
+			// Revert the changed values
+			style.width = width;
+			style.minWidth = minWidth;
+			style.maxWidth = maxWidth;
+		}
+	}
+
+	return ret !== undefined ?
+
+		// Support: IE <=9 - 11 only
+		// IE returns zIndex value as an integer.
+		ret + "" :
+		ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+	// Define the hook, we'll check on the first run if it's really needed.
+	return {
+		get: function() {
+			if ( conditionFn() ) {
+
+				// Hook not needed (or it's not possible to use it due
+				// to missing dependency), remove it.
+				delete this.get;
+				return;
+			}
+
+			// Hook needed; redefine it so that the support test is not executed again.
+			return ( this.get = hookFn ).apply( this, arguments );
+		}
+	};
+}
+
+
+var
+
+	// Swappable if display is none or starts with table
+	// except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	rcustomProp = /^--/,
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	},
+
+	cssPrefixes = [ "Webkit", "Moz", "ms" ],
+	emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+	// Shortcut for names that are not vendor prefixed
+	if ( name in emptyStyle ) {
+		return name;
+	}
+
+	// Check for vendor prefixed names
+	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+		i = cssPrefixes.length;
+
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in emptyStyle ) {
+			return name;
+		}
+	}
+}
+
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
+function finalPropName( name ) {
+	var ret = jQuery.cssProps[ name ];
+	if ( !ret ) {
+		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+	}
+	return ret;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+	// Any relative (+/-) values have already been
+	// normalized at this point
+	var matches = rcssNum.exec( value );
+	return matches ?
+
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+		value;
+}
+
+function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
+	var i = dimension === "width" ? 1 : 0,
+		extra = 0,
+		delta = 0;
+
+	// Adjustment may not be necessary
+	if ( box === ( isBorderBox ? "border" : "content" ) ) {
+		return 0;
+	}
+
+	for ( ; i < 4; i += 2 ) {
+
+		// Both box models exclude margin
+		if ( box === "margin" ) {
+			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
+		}
+
+		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
+		if ( !isBorderBox ) {
+
+			// Add padding
+			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// For "border" or "margin", add border
+			if ( box !== "padding" ) {
+				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+
+			// But still keep track of it otherwise
+			} else {
+				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+
+		// If we get here with a border-box (content + padding + border), we're seeking "content" or
+		// "padding" or "margin"
+		} else {
+
+			// For "content", subtract padding
+			if ( box === "content" ) {
+				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
+
+			// For "content" or "padding", subtract border
+			if ( box !== "margin" ) {
+				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		}
+	}
+
+	// Account for positive content-box scroll gutter when requested by providing computedVal
+	if ( !isBorderBox && computedVal >= 0 ) {
+
+		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
+		// Assuming integer scroll gutter, subtract the rest and round down
+		delta += Math.max( 0, Math.ceil(
+			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+			computedVal -
+			delta -
+			extra -
+			0.5
+		) );
+	}
+
+	return delta;
+}
+
+function getWidthOrHeight( elem, dimension, extra ) {
+
+	// Start with computed style
+	var styles = getStyles( elem ),
+		val = curCSS( elem, dimension, styles ),
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+		valueIsBorderBox = isBorderBox;
+
+	// Support: Firefox <=54
+	// Return a confounding non-pixel value or feign ignorance, as appropriate.
+	if ( rnumnonpx.test( val ) ) {
+		if ( !extra ) {
+			return val;
+		}
+		val = "auto";
+	}
+
+	// Check for style in case a browser which returns unreliable values
+	// for getComputedStyle silently falls back to the reliable elem.style
+	valueIsBorderBox = valueIsBorderBox &&
+		( support.boxSizingReliable() || val === elem.style[ dimension ] );
+
+	// Fall back to offsetWidth/offsetHeight when value is "auto"
+	// This happens for inline elements with no explicit setting (gh-3571)
+	// Support: Android <=4.1 - 4.3 only
+	// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
+	if ( val === "auto" ||
+		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
+
+		val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
+
+		// offsetWidth/offsetHeight provide border-box values
+		valueIsBorderBox = true;
+	}
+
+	// Normalize "" and auto
+	val = parseFloat( val ) || 0;
+
+	// Adjust for the element's box model
+	return ( val +
+		boxModelAdjustment(
+			elem,
+			dimension,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles,
+
+			// Provide the current computed size to request scroll gutter calculation (gh-3589)
+			val
+		)
+	) + "px";
+}
+
+jQuery.extend( {
+
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
+
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"animationIterationCount": true,
+		"columnCount": true,
+		"fillOpacity": true,
+		"flexGrow": true,
+		"flexShrink": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name ),
+			style = elem.style;
+
+		// Make sure that we're working with the right name. We don't
+		// want to query the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Gets hook for the prefixed version, then unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// Convert "+=" or "-=" to relative numbers (#7345)
+			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+				value = adjustCSS( elem, name, ret );
+
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that null and NaN values aren't set (#7116)
+			if ( value == null || value !== value ) {
+				return;
+			}
+
+			// If a number was passed in, add the unit (except for certain CSS properties)
+			if ( type === "number" ) {
+				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+			}
+
+			// background-* props affect original clone's values
+			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+				style[ name ] = "inherit";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !( "set" in hooks ) ||
+				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+				if ( isCustomProp ) {
+					style.setProperty( name, value );
+				} else {
+					style[ name ] = value;
+				}
+			}
+
+		} else {
+
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks &&
+				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra, styles ) {
+		var val, num, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name );
+
+		// Make sure that we're working with the right name. We don't
+		// want to modify the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Try prefixed name followed by the unprefixed name
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
+
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
+
+		// Convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
+
+		// Make numeric if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || isFinite( num ) ? num || 0 : val;
+		}
+
+		return val;
+	}
+} );
+
+jQuery.each( [ "height", "width" ], function( i, dimension ) {
+	jQuery.cssHooks[ dimension ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+
+				// Certain elements can have dimension info if we invisibly show them
+				// but it must have a current display style that would benefit
+				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+					// Support: Safari 8+
+					// Table columns in Safari have non-zero offsetWidth & zero
+					// getBoundingClientRect().width unless display is changed.
+					// Support: IE <=11 only
+					// Running getBoundingClientRect on a disconnected node
+					// in IE throws an error.
+					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+						swap( elem, cssShow, function() {
+							return getWidthOrHeight( elem, dimension, extra );
+						} ) :
+						getWidthOrHeight( elem, dimension, extra );
+			}
+		},
+
+		set: function( elem, value, extra ) {
+			var matches,
+				styles = getStyles( elem ),
+				isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+				subtract = extra && boxModelAdjustment(
+					elem,
+					dimension,
+					extra,
+					isBorderBox,
+					styles
+				);
+
+			// Account for unreliable border-box dimensions by comparing offset* to computed and
+			// faking a content-box to get border and padding (gh-3699)
+			if ( isBorderBox && support.scrollboxSize() === styles.position ) {
+				subtract -= Math.ceil(
+					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+					parseFloat( styles[ dimension ] ) -
+					boxModelAdjustment( elem, dimension, "border", false, styles ) -
+					0.5
+				);
+			}
+
+			// Convert to pixels if value adjustment is needed
+			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+				( matches[ 3 ] || "px" ) !== "px" ) {
+
+				elem.style[ dimension ] = value;
+				value = jQuery.css( elem, dimension );
+			}
+
+			return setPositiveNumber( elem, value, subtract );
+		}
+	};
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+	function( elem, computed ) {
+		if ( computed ) {
+			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+				elem.getBoundingClientRect().left -
+					swap( elem, { marginLeft: 0 }, function() {
+						return elem.getBoundingClientRect().left;
+					} )
+				) + "px";
+		}
+	}
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
+
+				// Assumes a single number if not a string
+				parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+
+	if ( prefix !== "margin" ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+	}
+} );
+
+jQuery.fn.extend( {
+	css: function( name, value ) {
+		return access( this, function( elem, name, value ) {
+			var styles, len,
+				map = {},
+				i = 0;
+
+			if ( Array.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
+	}
+} );
+
+
+function Tween( elem, options, prop, end, easing ) {
+	return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+	constructor: Tween,
+	init: function( elem, options, prop, end, easing, unit ) {
+		this.elem = elem;
+		this.prop = prop;
+		this.easing = easing || jQuery.easing._default;
+		this.options = options;
+		this.start = this.now = this.cur();
+		this.end = end;
+		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+	},
+	cur: function() {
+		var hooks = Tween.propHooks[ this.prop ];
+
+		return hooks && hooks.get ?
+			hooks.get( this ) :
+			Tween.propHooks._default.get( this );
+	},
+	run: function( percent ) {
+		var eased,
+			hooks = Tween.propHooks[ this.prop ];
+
+		if ( this.options.duration ) {
+			this.pos = eased = jQuery.easing[ this.easing ](
+				percent, this.options.duration * percent, 0, 1, this.options.duration
+			);
+		} else {
+			this.pos = eased = percent;
+		}
+		this.now = ( this.end - this.start ) * eased + this.start;
+
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		if ( hooks && hooks.set ) {
+			hooks.set( this );
+		} else {
+			Tween.propHooks._default.set( this );
+		}
+		return this;
+	}
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+	_default: {
+		get: function( tween ) {
+			var result;
+
+			// Use a property on the element directly when it is not a DOM element,
+			// or when there is no matching style property that exists.
+			if ( tween.elem.nodeType !== 1 ||
+				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+				return tween.elem[ tween.prop ];
+			}
+
+			// Passing an empty string as a 3rd parameter to .css will automatically
+			// attempt a parseFloat and fallback to a string if the parse fails.
+			// Simple values such as "10px" are parsed to Float;
+			// complex values such as "rotate(1rad)" are returned as-is.
+			result = jQuery.css( tween.elem, tween.prop, "" );
+
+			// Empty strings, null, undefined and "auto" are converted to 0.
+			return !result || result === "auto" ? 0 : result;
+		},
+		set: function( tween ) {
+
+			// Use step hook for back compat.
+			// Use cssHook if its there.
+			// Use .style if available and use plain properties where available.
+			if ( jQuery.fx.step[ tween.prop ] ) {
+				jQuery.fx.step[ tween.prop ]( tween );
+			} else if ( tween.elem.nodeType === 1 &&
+				( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+					jQuery.cssHooks[ tween.prop ] ) ) {
+				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+			} else {
+				tween.elem[ tween.prop ] = tween.now;
+			}
+		}
+	}
+};
+
+// Support: IE <=9 only
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+	set: function( tween ) {
+		if ( tween.elem.nodeType && tween.elem.parentNode ) {
+			tween.elem[ tween.prop ] = tween.now;
+		}
+	}
+};
+
+jQuery.easing = {
+	linear: function( p ) {
+		return p;
+	},
+	swing: function( p ) {
+		return 0.5 - Math.cos( p * Math.PI ) / 2;
+	},
+	_default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+	fxNow, inProgress,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rrun = /queueHooks$/;
+
+function schedule() {
+	if ( inProgress ) {
+		if ( document.hidden === false && window.requestAnimationFrame ) {
+			window.requestAnimationFrame( schedule );
+		} else {
+			window.setTimeout( schedule, jQuery.fx.interval );
+		}
+
+		jQuery.fx.tick();
+	}
+}
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	window.setTimeout( function() {
+		fxNow = undefined;
+	} );
+	return ( fxNow = Date.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+	var which,
+		i = 0,
+		attrs = { height: type };
+
+	// If we include width, step value is 1 to do all cssExpand values,
+	// otherwise step value is 2 to skip over Left and Right
+	includeWidth = includeWidth ? 1 : 0;
+	for ( ; i < 4; i += 2 - includeWidth ) {
+		which = cssExpand[ i ];
+		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+	}
+
+	if ( includeWidth ) {
+		attrs.opacity = attrs.width = type;
+	}
+
+	return attrs;
+}
+
+function createTween( value, prop, animation ) {
+	var tween,
+		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+		index = 0,
+		length = collection.length;
+	for ( ; index < length; index++ ) {
+		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+			// We're done with this property
+			return tween;
+		}
+	}
+}
+
+function defaultPrefilter( elem, props, opts ) {
+	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
+		isBox = "width" in props || "height" in props,
+		anim = this,
+		orig = {},
+		style = elem.style,
+		hidden = elem.nodeType && isHiddenWithinTree( elem ),
+		dataShow = dataPriv.get( elem, "fxshow" );
+
+	// Queue-skipping animations hijack the fx hooks
+	if ( !opts.queue ) {
+		hooks = jQuery._queueHooks( elem, "fx" );
+		if ( hooks.unqueued == null ) {
+			hooks.unqueued = 0;
+			oldfire = hooks.empty.fire;
+			hooks.empty.fire = function() {
+				if ( !hooks.unqueued ) {
+					oldfire();
+				}
+			};
+		}
+		hooks.unqueued++;
+
+		anim.always( function() {
+
+			// Ensure the complete handler is called before this completes
+			anim.always( function() {
+				hooks.unqueued--;
+				if ( !jQuery.queue( elem, "fx" ).length ) {
+					hooks.empty.fire();
+				}
+			} );
+		} );
+	}
+
+	// Detect show/hide animations
+	for ( prop in props ) {
+		value = props[ prop ];
+		if ( rfxtypes.test( value ) ) {
+			delete props[ prop ];
+			toggle = toggle || value === "toggle";
+			if ( value === ( hidden ? "hide" : "show" ) ) {
+
+				// Pretend to be hidden if this is a "show" and
+				// there is still data from a stopped show/hide
+				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+					hidden = true;
+
+				// Ignore all other no-op show/hide data
+				} else {
+					continue;
+				}
+			}
+			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+		}
+	}
+
+	// Bail out if this is a no-op like .hide().hide()
+	propTween = !jQuery.isEmptyObject( props );
+	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
+		return;
+	}
+
+	// Restrict "overflow" and "display" styles during box animations
+	if ( isBox && elem.nodeType === 1 ) {
+
+		// Support: IE <=9 - 11, Edge 12 - 15
+		// Record all 3 overflow attributes because IE does not infer the shorthand
+		// from identically-valued overflowX and overflowY and Edge just mirrors
+		// the overflowX value there.
+		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+		// Identify a display type, preferring old show/hide data over the CSS cascade
+		restoreDisplay = dataShow && dataShow.display;
+		if ( restoreDisplay == null ) {
+			restoreDisplay = dataPriv.get( elem, "display" );
+		}
+		display = jQuery.css( elem, "display" );
+		if ( display === "none" ) {
+			if ( restoreDisplay ) {
+				display = restoreDisplay;
+			} else {
+
+				// Get nonempty value(s) by temporarily forcing visibility
+				showHide( [ elem ], true );
+				restoreDisplay = elem.style.display || restoreDisplay;
+				display = jQuery.css( elem, "display" );
+				showHide( [ elem ] );
+			}
+		}
+
+		// Animate inline elements as inline-block
+		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
+			if ( jQuery.css( elem, "float" ) === "none" ) {
+
+				// Restore the original display value at the end of pure show/hide animations
+				if ( !propTween ) {
+					anim.done( function() {
+						style.display = restoreDisplay;
+					} );
+					if ( restoreDisplay == null ) {
+						display = style.display;
+						restoreDisplay = display === "none" ? "" : display;
+					}
+				}
+				style.display = "inline-block";
+			}
+		}
+	}
+
+	if ( opts.overflow ) {
+		style.overflow = "hidden";
+		anim.always( function() {
+			style.overflow = opts.overflow[ 0 ];
+			style.overflowX = opts.overflow[ 1 ];
+			style.overflowY = opts.overflow[ 2 ];
+		} );
+	}
+
+	// Implement show/hide animations
+	propTween = false;
+	for ( prop in orig ) {
+
+		// General show/hide setup for this element animation
+		if ( !propTween ) {
+			if ( dataShow ) {
+				if ( "hidden" in dataShow ) {
+					hidden = dataShow.hidden;
+				}
+			} else {
+				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
+			}
+
+			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
+			if ( toggle ) {
+				dataShow.hidden = !hidden;
+			}
+
+			// Show elements before animating them
+			if ( hidden ) {
+				showHide( [ elem ], true );
+			}
+
+			/* eslint-disable no-loop-func */
+
+			anim.done( function() {
+
+			/* eslint-enable no-loop-func */
+
+				// The final step of a "hide" animation is actually hiding the element
+				if ( !hidden ) {
+					showHide( [ elem ] );
+				}
+				dataPriv.remove( elem, "fxshow" );
+				for ( prop in orig ) {
+					jQuery.style( elem, prop, orig[ prop ] );
+				}
+			} );
+		}
+
+		// Per-property setup
+		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+		if ( !( prop in dataShow ) ) {
+			dataShow[ prop ] = propTween.start;
+			if ( hidden ) {
+				propTween.end = propTween.start;
+				propTween.start = 0;
+			}
+		}
+	}
+}
+
+function propFilter( props, specialEasing ) {
+	var index, name, easing, value, hooks;
+
+	// camelCase, specialEasing and expand cssHook pass
+	for ( index in props ) {
+		name = camelCase( index );
+		easing = specialEasing[ name ];
+		value = props[ index ];
+		if ( Array.isArray( value ) ) {
+			easing = value[ 1 ];
+			value = props[ index ] = value[ 0 ];
+		}
+
+		if ( index !== name ) {
+			props[ name ] = value;
+			delete props[ index ];
+		}
+
+		hooks = jQuery.cssHooks[ name ];
+		if ( hooks && "expand" in hooks ) {
+			value = hooks.expand( value );
+			delete props[ name ];
+
+			// Not quite $.extend, this won't overwrite existing keys.
+			// Reusing 'index' because we have the correct "name"
+			for ( index in value ) {
+				if ( !( index in props ) ) {
+					props[ index ] = value[ index ];
+					specialEasing[ index ] = easing;
+				}
+			}
+		} else {
+			specialEasing[ name ] = easing;
+		}
+	}
+}
+
+function Animation( elem, properties, options ) {
+	var result,
+		stopped,
+		index = 0,
+		length = Animation.prefilters.length,
+		deferred = jQuery.Deferred().always( function() {
+
+			// Don't match elem in the :animated selector
+			delete tick.elem;
+		} ),
+		tick = function() {
+			if ( stopped ) {
+				return false;
+			}
+			var currentTime = fxNow || createFxNow(),
+				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+				// Support: Android 2.3 only
+				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+				temp = remaining / animation.duration || 0,
+				percent = 1 - temp,
+				index = 0,
+				length = animation.tweens.length;
+
+			for ( ; index < length; index++ ) {
+				animation.tweens[ index ].run( percent );
+			}
+
+			deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+			// If there's more to do, yield
+			if ( percent < 1 && length ) {
+				return remaining;
+			}
+
+			// If this was an empty animation, synthesize a final progress notification
+			if ( !length ) {
+				deferred.notifyWith( elem, [ animation, 1, 0 ] );
+			}
+
+			// Resolve the animation and report its conclusion
+			deferred.resolveWith( elem, [ animation ] );
+			return false;
+		},
+		animation = deferred.promise( {
+			elem: elem,
+			props: jQuery.extend( {}, properties ),
+			opts: jQuery.extend( true, {
+				specialEasing: {},
+				easing: jQuery.easing._default
+			}, options ),
+			originalProperties: properties,
+			originalOptions: options,
+			startTime: fxNow || createFxNow(),
+			duration: options.duration,
+			tweens: [],
+			createTween: function( prop, end ) {
+				var tween = jQuery.Tween( elem, animation.opts, prop, end,
+						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+				animation.tweens.push( tween );
+				return tween;
+			},
+			stop: function( gotoEnd ) {
+				var index = 0,
+
+					// If we are going to the end, we want to run all the tweens
+					// otherwise we skip this part
+					length = gotoEnd ? animation.tweens.length : 0;
+				if ( stopped ) {
+					return this;
+				}
+				stopped = true;
+				for ( ; index < length; index++ ) {
+					animation.tweens[ index ].run( 1 );
+				}
+
+				// Resolve when we played the last frame; otherwise, reject
+				if ( gotoEnd ) {
+					deferred.notifyWith( elem, [ animation, 1, 0 ] );
+					deferred.resolveWith( elem, [ animation, gotoEnd ] );
+				} else {
+					deferred.rejectWith( elem, [ animation, gotoEnd ] );
+				}
+				return this;
+			}
+		} ),
+		props = animation.props;
+
+	propFilter( props, animation.opts.specialEasing );
+
+	for ( ; index < length; index++ ) {
+		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+		if ( result ) {
+			if ( isFunction( result.stop ) ) {
+				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+					result.stop.bind( result );
+			}
+			return result;
+		}
+	}
+
+	jQuery.map( props, createTween, animation );
+
+	if ( isFunction( animation.opts.start ) ) {
+		animation.opts.start.call( elem, animation );
+	}
+
+	// Attach callbacks from options
+	animation
+		.progress( animation.opts.progress )
+		.done( animation.opts.done, animation.opts.complete )
+		.fail( animation.opts.fail )
+		.always( animation.opts.always );
+
+	jQuery.fx.timer(
+		jQuery.extend( tick, {
+			elem: elem,
+			anim: animation,
+			queue: animation.opts.queue
+		} )
+	);
+
+	return animation;
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+	tweeners: {
+		"*": [ function( prop, value ) {
+			var tween = this.createTween( prop, value );
+			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+			return tween;
+		} ]
+	},
+
+	tweener: function( props, callback ) {
+		if ( isFunction( props ) ) {
+			callback = props;
+			props = [ "*" ];
+		} else {
+			props = props.match( rnothtmlwhite );
+		}
+
+		var prop,
+			index = 0,
+			length = props.length;
+
+		for ( ; index < length; index++ ) {
+			prop = props[ index ];
+			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+			Animation.tweeners[ prop ].unshift( callback );
+		}
+	},
+
+	prefilters: [ defaultPrefilter ],
+
+	prefilter: function( callback, prepend ) {
+		if ( prepend ) {
+			Animation.prefilters.unshift( callback );
+		} else {
+			Animation.prefilters.push( callback );
+		}
+	}
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+		complete: fn || !fn && easing ||
+			isFunction( speed ) && speed,
+		duration: speed,
+		easing: fn && easing || easing && !isFunction( easing ) && easing
+	};
+
+	// Go to the end state if fx are off
+	if ( jQuery.fx.off ) {
+		opt.duration = 0;
+
+	} else {
+		if ( typeof opt.duration !== "number" ) {
+			if ( opt.duration in jQuery.fx.speeds ) {
+				opt.duration = jQuery.fx.speeds[ opt.duration ];
+
+			} else {
+				opt.duration = jQuery.fx.speeds._default;
+			}
+		}
+	}
+
+	// Normalize opt.queue - true/undefined/null -> "fx"
+	if ( opt.queue == null || opt.queue === true ) {
+		opt.queue = "fx";
+	}
+
+	// Queueing
+	opt.old = opt.complete;
+
+	opt.complete = function() {
+		if ( isFunction( opt.old ) ) {
+			opt.old.call( this );
+		}
+
+		if ( opt.queue ) {
+			jQuery.dequeue( this, opt.queue );
+		}
+	};
+
+	return opt;
+};
+
+jQuery.fn.extend( {
+	fadeTo: function( speed, to, easing, callback ) {
+
+		// Show any hidden elements after setting opacity to 0
+		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
+
+			// Animate to the value specified
+			.end().animate( { opacity: to }, speed, easing, callback );
+	},
+	animate: function( prop, speed, easing, callback ) {
+		var empty = jQuery.isEmptyObject( prop ),
+			optall = jQuery.speed( speed, easing, callback ),
+			doAnimation = function() {
+
+				// Operate on a copy of prop so per-property easing won't be lost
+				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+				// Empty animations, or finishing resolves immediately
+				if ( empty || dataPriv.get( this, "finish" ) ) {
+					anim.stop( true );
+				}
+			};
+			doAnimation.finish = doAnimation;
+
+		return empty || optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+	stop: function( type, clearQueue, gotoEnd ) {
+		var stopQueue = function( hooks ) {
+			var stop = hooks.stop;
+			delete hooks.stop;
+			stop( gotoEnd );
+		};
+
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each( function() {
+			var dequeue = true,
+				index = type != null && type + "queueHooks",
+				timers = jQuery.timers,
+				data = dataPriv.get( this );
+
+			if ( index ) {
+				if ( data[ index ] && data[ index ].stop ) {
+					stopQueue( data[ index ] );
+				}
+			} else {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+						stopQueue( data[ index ] );
+					}
+				}
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this &&
+					( type == null || timers[ index ].queue === type ) ) {
+
+					timers[ index ].anim.stop( gotoEnd );
+					dequeue = false;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Start the next in the queue if the last step wasn't forced.
+			// Timers currently will call their complete callbacks, which
+			// will dequeue but only if they were gotoEnd.
+			if ( dequeue || !gotoEnd ) {
+				jQuery.dequeue( this, type );
+			}
+		} );
+	},
+	finish: function( type ) {
+		if ( type !== false ) {
+			type = type || "fx";
+		}
+		return this.each( function() {
+			var index,
+				data = dataPriv.get( this ),
+				queue = data[ type + "queue" ],
+				hooks = data[ type + "queueHooks" ],
+				timers = jQuery.timers,
+				length = queue ? queue.length : 0;
+
+			// Enable finishing flag on private data
+			data.finish = true;
+
+			// Empty the queue first
+			jQuery.queue( this, type, [] );
+
+			if ( hooks && hooks.stop ) {
+				hooks.stop.call( this, true );
+			}
+
+			// Look for any active animations, and finish them
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+					timers[ index ].anim.stop( true );
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Look for any animations in the old queue and finish them
+			for ( index = 0; index < length; index++ ) {
+				if ( queue[ index ] && queue[ index ].finish ) {
+					queue[ index ].finish.call( this );
+				}
+			}
+
+			// Turn off finishing flag
+			delete data.finish;
+		} );
+	}
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+	var cssFn = jQuery.fn[ name ];
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return speed == null || typeof speed === "boolean" ?
+			cssFn.apply( this, arguments ) :
+			this.animate( genFx( name, true ), speed, easing, callback );
+	};
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+	slideDown: genFx( "show" ),
+	slideUp: genFx( "hide" ),
+	slideToggle: genFx( "toggle" ),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+	var timer,
+		i = 0,
+		timers = jQuery.timers;
+
+	fxNow = Date.now();
+
+	for ( ; i < timers.length; i++ ) {
+		timer = timers[ i ];
+
+		// Run the timer and safely remove it when done (allowing for external removal)
+		if ( !timer() && timers[ i ] === timer ) {
+			timers.splice( i--, 1 );
+		}
+	}
+
+	if ( !timers.length ) {
+		jQuery.fx.stop();
+	}
+	fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+	jQuery.timers.push( timer );
+	jQuery.fx.start();
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+	if ( inProgress ) {
+		return;
+	}
+
+	inProgress = true;
+	schedule();
+};
+
+jQuery.fx.stop = function() {
+	inProgress = null;
+};
+
+jQuery.fx.speeds = {
+	slow: 600,
+	fast: 200,
+
+	// Default speed
+	_default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+	type = type || "fx";
+
+	return this.queue( type, function( next, hooks ) {
+		var timeout = window.setTimeout( next, time );
+		hooks.stop = function() {
+			window.clearTimeout( timeout );
+		};
+	} );
+};
+
+
+( function() {
+	var input = document.createElement( "input" ),
+		select = document.createElement( "select" ),
+		opt = select.appendChild( document.createElement( "option" ) );
+
+	input.type = "checkbox";
+
+	// Support: Android <=4.3 only
+	// Default value for a checkbox should be "on"
+	support.checkOn = input.value !== "";
+
+	// Support: IE <=11 only
+	// Must access selectedIndex to make default options select
+	support.optSelected = opt.selected;
+
+	// Support: IE <=11 only
+	// An input loses its value after becoming a radio
+	input = document.createElement( "input" );
+	input.value = "t";
+	input.type = "radio";
+	support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+	attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+	attr: function( name, value ) {
+		return access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each( function() {
+			jQuery.removeAttr( this, name );
+		} );
+	}
+} );
+
+jQuery.extend( {
+	attr: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set attributes on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === "undefined" ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// Attribute hooks are determined by the lowercase version
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+		}
+
+		if ( value !== undefined ) {
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+				return;
+			}
+
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			elem.setAttribute( name, value + "" );
+			return value;
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		ret = jQuery.find.attr( elem, name );
+
+		// Non-existent attributes return null, we normalize to undefined
+		return ret == null ? undefined : ret;
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !support.radioValue && value === "radio" &&
+					nodeName( elem, "input" ) ) {
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var name,
+			i = 0,
+
+			// Attribute names can contain non-HTML whitespace characters
+			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+			attrNames = value && value.match( rnothtmlwhite );
+
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( ( name = attrNames[ i++ ] ) ) {
+				elem.removeAttribute( name );
+			}
+		}
+	}
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			elem.setAttribute( name, name );
+		}
+		return name;
+	}
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+	var getter = attrHandle[ name ] || jQuery.find.attr;
+
+	attrHandle[ name ] = function( elem, name, isXML ) {
+		var ret, handle,
+			lowercaseName = name.toLowerCase();
+
+		if ( !isXML ) {
+
+			// Avoid an infinite loop by temporarily removing this function from the getter
+			handle = attrHandle[ lowercaseName ];
+			attrHandle[ lowercaseName ] = ret;
+			ret = getter( elem, name, isXML ) != null ?
+				lowercaseName :
+				null;
+			attrHandle[ lowercaseName ] = handle;
+		}
+		return ret;
+	};
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+	rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+	prop: function( name, value ) {
+		return access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		return this.each( function() {
+			delete this[ jQuery.propFix[ name ] || name ];
+		} );
+	}
+} );
+
+jQuery.extend( {
+	prop: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set properties on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			return ( elem[ name ] = value );
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		return elem[ name ];
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+
+				// Support: IE <=9 - 11 only
+				// elem.tabIndex doesn't always return the
+				// correct value when it hasn't been explicitly set
+				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				// Use proper attribute retrieval(#12072)
+				var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+				if ( tabindex ) {
+					return parseInt( tabindex, 10 );
+				}
+
+				if (
+					rfocusable.test( elem.nodeName ) ||
+					rclickable.test( elem.nodeName ) &&
+					elem.href
+				) {
+					return 0;
+				}
+
+				return -1;
+			}
+		}
+	},
+
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
+	}
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent && parent.parentNode ) {
+				parent.parentNode.selectedIndex;
+			}
+			return null;
+		},
+		set: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent ) {
+				parent.selectedIndex;
+
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+		}
+	};
+}
+
+jQuery.each( [
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+	// Strip and collapse whitespace according to HTML spec
+	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
+	function stripAndCollapse( value ) {
+		var tokens = value.match( rnothtmlwhite ) || [];
+		return tokens.join( " " );
+	}
+
+
+function getClass( elem ) {
+	return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+function classesToArray( value ) {
+	if ( Array.isArray( value ) ) {
+		return value;
+	}
+	if ( typeof value === "string" ) {
+		return value.match( rnothtmlwhite ) || [];
+	}
+	return [];
+}
+
+jQuery.fn.extend( {
+	addClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( !arguments.length ) {
+			return this.attr( "class", "" );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value,
+			isValidValue = type === "string" || Array.isArray( value );
+
+		if ( typeof stateVal === "boolean" && isValidValue ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		if ( isFunction( value ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).toggleClass(
+					value.call( this, i, getClass( this ), stateVal ),
+					stateVal
+				);
+			} );
+		}
+
+		return this.each( function() {
+			var className, i, self, classNames;
+
+			if ( isValidValue ) {
+
+				// Toggle individual class names
+				i = 0;
+				self = jQuery( this );
+				classNames = classesToArray( value );
+
+				while ( ( className = classNames[ i++ ] ) ) {
+
+					// Check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
+					} else {
+						self.addClass( className );
+					}
+				}
+
+			// Toggle whole class name
+			} else if ( value === undefined || type === "boolean" ) {
+				className = getClass( this );
+				if ( className ) {
+
+					// Store className if set
+					dataPriv.set( this, "__className__", className );
+				}
+
+				// If the element has a class name or if we're passed `false`,
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				if ( this.setAttribute ) {
+					this.setAttribute( "class",
+						className || value === false ?
+						"" :
+						dataPriv.get( this, "__className__" ) || ""
+					);
+				}
+			}
+		} );
+	},
+
+	hasClass: function( selector ) {
+		var className, elem,
+			i = 0;
+
+		className = " " + selector + " ";
+		while ( ( elem = this[ i++ ] ) ) {
+			if ( elem.nodeType === 1 &&
+				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+					return true;
+			}
+		}
+
+		return false;
+	}
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+	val: function( value ) {
+		var hooks, ret, valueIsFunction,
+			elem = this[ 0 ];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] ||
+					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks &&
+					"get" in hooks &&
+					( ret = hooks.get( elem, "value" ) ) !== undefined
+				) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				// Handle most common string cases
+				if ( typeof ret === "string" ) {
+					return ret.replace( rreturn, "" );
+				}
+
+				// Handle cases where value is null/undef or number
+				return ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		valueIsFunction = isFunction( value );
+
+		return this.each( function( i ) {
+			var val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( valueIsFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+
+			} else if ( typeof val === "number" ) {
+				val += "";
+
+			} else if ( Array.isArray( val ) ) {
+				val = jQuery.map( val, function( value ) {
+					return value == null ? "" : value + "";
+				} );
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		} );
+	}
+} );
+
+jQuery.extend( {
+	valHooks: {
+		option: {
+			get: function( elem ) {
+
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+
+					// Support: IE <=10 - 11 only
+					// option.text throws exceptions (#14686, #14858)
+					// Strip and collapse whitespace
+					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+					stripAndCollapse( jQuery.text( elem ) );
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option, i,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one",
+					values = one ? null : [],
+					max = one ? index + 1 : options.length;
+
+				if ( index < 0 ) {
+					i = max;
+
+				} else {
+					i = one ? index : 0;
+				}
+
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// Support: IE <=9 only
+					// IE8-9 doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+
+							// Don't return options that are disabled or in a disabled optgroup
+							!option.disabled &&
+							( !option.parentNode.disabled ||
+								!nodeName( option.parentNode, "optgroup" ) ) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
+
+				while ( i-- ) {
+					option = options[ i ];
+
+					/* eslint-disable no-cond-assign */
+
+					if ( option.selected =
+						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+					) {
+						optionSet = true;
+					}
+
+					/* eslint-enable no-cond-assign */
+				}
+
+				// Force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	}
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( Array.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+			}
+		}
+	};
+	if ( !support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+		};
+	}
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+support.focusin = "onfocusin" in window;
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	stopPropagationCallback = function( e ) {
+		e.stopPropagation();
+	};
+
+jQuery.extend( jQuery.event, {
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+
+		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
+			eventPath = [ elem || document ],
+			type = hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+		cur = lastElement = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
+		}
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf( "." ) > -1 ) {
+
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split( "." );
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+		ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
+
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
+		event.namespace = namespaces.join( "." );
+		event.rnamespace = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+			null;
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === ( elem.ownerDocument || document ) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
+
+		// Fire handlers on the event path
+		i = 0;
+		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+			lastElement = cur;
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+				dataPriv.get( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && handle.apply && acceptData( cur ) ) {
+				event.result = handle.apply( cur, data );
+				if ( event.result === false ) {
+					event.preventDefault();
+				}
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( ( !special._default ||
+				special._default.apply( eventPath.pop(), data ) === false ) &&
+				acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name as the event.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
+
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.addEventListener( type, stopPropagationCallback );
+					}
+
+					elem[ type ]();
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.removeEventListener( type, stopPropagationCallback );
+					}
+
+					jQuery.event.triggered = undefined;
+
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	// Piggyback on a donor event to simulate a different one
+	// Used only for `focus(in | out)` events
+	simulate: function( type, elem, event ) {
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true
+			}
+		);
+
+		jQuery.event.trigger( e, null, elem );
+	}
+
+} );
+
+jQuery.fn.extend( {
+
+	trigger: function( type, data ) {
+		return this.each( function() {
+			jQuery.event.trigger( type, data, this );
+		} );
+	},
+	triggerHandler: function( type, data ) {
+		var elem = this[ 0 ];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
+		}
+	}
+} );
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler on the document while someone wants focusin/focusout
+		var handler = function( event ) {
+			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+		};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix );
+
+				if ( !attaches ) {
+					doc.addEventListener( orig, handler, true );
+				}
+				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+			},
+			teardown: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix ) - 1;
+
+				if ( !attaches ) {
+					doc.removeEventListener( orig, handler, true );
+					dataPriv.remove( doc, fix );
+
+				} else {
+					dataPriv.access( doc, fix, attaches );
+				}
+			}
+		};
+	} );
+}
+var location = window.location;
+
+var nonce = Date.now();
+
+var rquery = ( /\?/ );
+
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+	var xml;
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+
+	// Support: IE 9 - 11 only
+	// IE throws on parseFromString with invalid input.
+	try {
+		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+	} catch ( e ) {
+		xml = undefined;
+	}
+
+	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+		jQuery.error( "Invalid XML: " + data );
+	}
+	return xml;
+};
+
+
+var
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+	rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+	var name;
+
+	if ( Array.isArray( obj ) ) {
+
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+
+				// Item is non-scalar (array or object), encode its numeric index.
+				buildParams(
+					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+					v,
+					traditional,
+					add
+				);
+			}
+		} );
+
+	} else if ( !traditional && toType( obj ) === "object" ) {
+
+		// Serialize object item.
+		for ( name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+	var prefix,
+		s = [],
+		add = function( key, valueOrFunction ) {
+
+			// If value is a function, invoke it and use its return value
+			var value = isFunction( valueOrFunction ) ?
+				valueOrFunction() :
+				valueOrFunction;
+
+			s[ s.length ] = encodeURIComponent( key ) + "=" +
+				encodeURIComponent( value == null ? "" : value );
+		};
+
+	// If an array was passed in, assume that it is an array of form elements.
+	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+		// Serialize the form elements
+		jQuery.each( a, function() {
+			add( this.name, this.value );
+		} );
+
+	} else {
+
+		// If traditional, encode the "old" way (the way 1.3.2 or older
+		// did it), otherwise encode params recursively.
+		for ( prefix in a ) {
+			buildParams( prefix, a[ prefix ], traditional, add );
+		}
+	}
+
+	// Return the resulting serialization
+	return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+	serializeArray: function() {
+		return this.map( function() {
+
+			// Can add propHook for "elements" to filter or add form elements
+			var elements = jQuery.prop( this, "elements" );
+			return elements ? jQuery.makeArray( elements ) : this;
+		} )
+		.filter( function() {
+			var type = this.type;
+
+			// Use .is( ":disabled" ) so that fieldset[disabled] works
+			return this.name && !jQuery( this ).is( ":disabled" ) &&
+				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+				( this.checked || !rcheckableType.test( type ) );
+		} )
+		.map( function( i, elem ) {
+			var val = jQuery( this ).val();
+
+			if ( val == null ) {
+				return null;
+			}
+
+			if ( Array.isArray( val ) ) {
+				return jQuery.map( val, function( val ) {
+					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+				} );
+			}
+
+			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		} ).get();
+	}
+} );
+
+
+var
+	r20 = /%20/g,
+	rhash = /#.*$/,
+	rantiCache = /([?&])_=[^&]*/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = "*/".concat( "*" ),
+
+	// Anchor tag for parsing the document origin
+	originAnchor = document.createElement( "a" );
+	originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		var dataType,
+			i = 0,
+			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
+
+		if ( isFunction( func ) ) {
+
+			// For each dataType in the dataTypeExpression
+			while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+				// Prepend if requested
+				if ( dataType[ 0 ] === "+" ) {
+					dataType = dataType.slice( 1 ) || "*";
+					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+				// Otherwise append
+				} else {
+					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+				}
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+	var inspected = {},
+		seekingTransport = ( structure === transports );
+
+	function inspect( dataType ) {
+		var selected;
+		inspected[ dataType ] = true;
+		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+			if ( typeof dataTypeOrTransport === "string" &&
+				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+				options.dataTypes.unshift( dataTypeOrTransport );
+				inspect( dataTypeOrTransport );
+				return false;
+			} else if ( seekingTransport ) {
+				return !( selected = dataTypeOrTransport );
+			}
+		} );
+		return selected;
+	}
+
+	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var key, deep,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+
+	return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+	var ct, type, finalDataType, firstDataType,
+		contents = s.contents,
+		dataTypes = s.dataTypes;
+
+	// Remove auto dataType and get content-type in the process
+	while ( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+	var conv2, current, conv, tmp, prev,
+		converters = {},
+
+		// Work with a copy of dataTypes in case we need to modify it for conversion
+		dataTypes = s.dataTypes.slice();
+
+	// Create converters map with lowercased keys
+	if ( dataTypes[ 1 ] ) {
+		for ( conv in s.converters ) {
+			converters[ conv.toLowerCase() ] = s.converters[ conv ];
+		}
+	}
+
+	current = dataTypes.shift();
+
+	// Convert to each sequential dataType
+	while ( current ) {
+
+		if ( s.responseFields[ current ] ) {
+			jqXHR[ s.responseFields[ current ] ] = response;
+		}
+
+		// Apply the dataFilter if provided
+		if ( !prev && isSuccess && s.dataFilter ) {
+			response = s.dataFilter( response, s.dataType );
+		}
+
+		prev = current;
+		current = dataTypes.shift();
+
+		if ( current ) {
+
+			// There's only work to do if current dataType is non-auto
+			if ( current === "*" ) {
+
+				current = prev;
+
+			// Convert response if prev dataType is non-auto and differs from current
+			} else if ( prev !== "*" && prev !== current ) {
+
+				// Seek a direct converter
+				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+				// If none found, seek a pair
+				if ( !conv ) {
+					for ( conv2 in converters ) {
+
+						// If conv2 outputs current
+						tmp = conv2.split( " " );
+						if ( tmp[ 1 ] === current ) {
+
+							// If prev can be converted to accepted input
+							conv = converters[ prev + " " + tmp[ 0 ] ] ||
+								converters[ "* " + tmp[ 0 ] ];
+							if ( conv ) {
+
+								// Condense equivalence converters
+								if ( conv === true ) {
+									conv = converters[ conv2 ];
+
+								// Otherwise, insert the intermediate dataType
+								} else if ( converters[ conv2 ] !== true ) {
+									current = tmp[ 0 ];
+									dataTypes.unshift( tmp[ 1 ] );
+								}
+								break;
+							}
+						}
+					}
+				}
+
+				// Apply converter (if not an equivalence)
+				if ( conv !== true ) {
+
+					// Unless errors are allowed to bubble, catch and return them
+					if ( conv && s.throws ) {
+						response = conv( response );
+					} else {
+						try {
+							response = conv( response );
+						} catch ( e ) {
+							return {
+								state: "parsererror",
+								error: conv ? e : "No conversion from " + prev + " to " + current
+							};
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {},
+
+	ajaxSettings: {
+		url: location.href,
+		type: "GET",
+		isLocal: rlocalProtocol.test( location.protocol ),
+		global: true,
+		processData: true,
+		async: true,
+		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		throws: false,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			"*": allTypes,
+			text: "text/plain",
+			html: "text/html",
+			xml: "application/xml, text/xml",
+			json: "application/json, text/javascript"
+		},
+
+		contents: {
+			xml: /\bxml\b/,
+			html: /\bhtml/,
+			json: /\bjson\b/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText",
+			json: "responseJSON"
+		},
+
+		// Data converters
+		// Keys separate source (or catchall "*") and destination types with a single space
+		converters: {
+
+			// Convert anything to text
+			"* text": String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": JSON.parse,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			url: true,
+			context: true
+		}
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		return settings ?
+
+			// Building a settings object
+			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+			// Extending ajaxSettings
+			ajaxExtend( jQuery.ajaxSettings, target );
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var transport,
+
+			// URL without anti-cache param
+			cacheURL,
+
+			// Response headers
+			responseHeadersString,
+			responseHeaders,
+
+			// timeout handle
+			timeoutTimer,
+
+			// Url cleanup var
+			urlAnchor,
+
+			// Request state (becomes false upon send and true upon completion)
+			completed,
+
+			// To know if global events are to be dispatched
+			fireGlobals,
+
+			// Loop variable
+			i,
+
+			// uncached part of the url
+			uncached,
+
+			// Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+
+			// Callbacks context
+			callbackContext = s.context || s,
+
+			// Context for global events is callbackContext if it is a DOM node or jQuery collection
+			globalEventContext = s.context &&
+				( callbackContext.nodeType || callbackContext.jquery ) ?
+					jQuery( callbackContext ) :
+					jQuery.event,
+
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks( "once memory" ),
+
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+
+			// Default abort message
+			strAbort = "canceled",
+
+			// Fake xhr
+			jqXHR = {
+				readyState: 0,
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( completed ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match == null ? null : match;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return completed ? responseHeadersString : null;
+				},
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					if ( completed == null ) {
+						name = requestHeadersNames[ name.toLowerCase() ] =
+							requestHeadersNames[ name.toLowerCase() ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( completed == null ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Status-dependent callbacks
+				statusCode: function( map ) {
+					var code;
+					if ( map ) {
+						if ( completed ) {
+
+							// Execute the appropriate callbacks
+							jqXHR.always( map[ jqXHR.status ] );
+						} else {
+
+							// Lazy-add the new callbacks in a way that preserves old ones
+							for ( code in map ) {
+								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+							}
+						}
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					var finalText = statusText || strAbort;
+					if ( transport ) {
+						transport.abort( finalText );
+					}
+					done( 0, finalText );
+					return this;
+				}
+			};
+
+		// Attach deferreds
+		deferred.promise( jqXHR );
+
+		// Add protocol if not provided (prefilters might expect it)
+		// Handle falsy url in the settings object (#10093: consistency with old signature)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url || location.href ) + "" )
+			.replace( rprotocol, location.protocol + "//" );
+
+		// Alias method option to type as per ticket #12004
+		s.type = options.method || options.type || s.method || s.type;
+
+		// Extract dataTypes list
+		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
+
+		// A cross-domain request is in order when the origin doesn't match the current origin.
+		if ( s.crossDomain == null ) {
+			urlAnchor = document.createElement( "a" );
+
+			// Support: IE <=8 - 11, Edge 12 - 15
+			// IE throws exception on accessing the href property if url is malformed,
+			// e.g. http://example.com:80x/
+			try {
+				urlAnchor.href = s.url;
+
+				// Support: IE <=8 - 11 only
+				// Anchor's host property isn't correctly set when s.url is relative
+				urlAnchor.href = urlAnchor.href;
+				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+					urlAnchor.protocol + "//" + urlAnchor.host;
+			} catch ( e ) {
+
+				// If there is an error parsing the URL, assume it is crossDomain,
+				// it can be rejected by the transport if it is invalid
+				s.crossDomain = true;
+			}
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefilter, stop there
+		if ( completed ) {
+			return jqXHR;
+		}
+
+		// We can fire global events as of now if asked to
+		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+		fireGlobals = jQuery.event && s.global;
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger( "ajaxStart" );
+		}
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Save the URL in case we're toying with the If-Modified-Since
+		// and/or If-None-Match header later on
+		// Remove hash to simplify url manipulation
+		cacheURL = s.url.replace( rhash, "" );
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// Remember the hash so we can put it back
+			uncached = s.url.slice( cacheURL.length );
+
+			// If data is available and should be processed, append data to url
+			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
+				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Add or update anti-cache param if needed
+			if ( s.cache === false ) {
+				cacheURL = cacheURL.replace( rantiCache, "$1" );
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+			}
+
+			// Put hash and anti-cache on the URL that will be requested (gh-1732)
+			s.url = cacheURL + uncached;
+
+		// Change '%20' to '+' if this is encoded form body content (gh-2658)
+		} else if ( s.data && s.processData &&
+			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+			s.data = s.data.replace( r20, "+" );
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			if ( jQuery.lastModified[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+			}
+			if ( jQuery.etag[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+				s.accepts[ s.dataTypes[ 0 ] ] +
+					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend &&
+			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
+			// Abort if not done already and return
+			return jqXHR.abort();
+		}
+
+		// Aborting is no longer a cancellation
+		strAbort = "abort";
+
+		// Install callbacks on deferreds
+		completeDeferred.add( s.complete );
+		jqXHR.done( s.success );
+		jqXHR.fail( s.error );
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+
+			// If request was aborted inside ajaxSend, stop there
+			if ( completed ) {
+				return jqXHR;
+			}
+
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = window.setTimeout( function() {
+					jqXHR.abort( "timeout" );
+				}, s.timeout );
+			}
+
+			try {
+				completed = false;
+				transport.send( requestHeaders, done );
+			} catch ( e ) {
+
+				// Rethrow post-completion exceptions
+				if ( completed ) {
+					throw e;
+				}
+
+				// Propagate others as results
+				done( -1, e );
+			}
+		}
+
+		// Callback for when everything is done
+		function done( status, nativeStatusText, responses, headers ) {
+			var isSuccess, success, error, response, modified,
+				statusText = nativeStatusText;
+
+			// Ignore repeat invocations
+			if ( completed ) {
+				return;
+			}
+
+			completed = true;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				window.clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			// Determine if successful
+			isSuccess = status >= 200 && status < 300 || status === 304;
+
+			// Get response data
+			if ( responses ) {
+				response = ajaxHandleResponses( s, jqXHR, responses );
+			}
+
+			// Convert no matter what (that way responseXXX fields are always set)
+			response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+			// If successful, handle type chaining
+			if ( isSuccess ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+					modified = jqXHR.getResponseHeader( "Last-Modified" );
+					if ( modified ) {
+						jQuery.lastModified[ cacheURL ] = modified;
+					}
+					modified = jqXHR.getResponseHeader( "etag" );
+					if ( modified ) {
+						jQuery.etag[ cacheURL ] = modified;
+					}
+				}
+
+				// if no content
+				if ( status === 204 || s.type === "HEAD" ) {
+					statusText = "nocontent";
+
+				// if not modified
+				} else if ( status === 304 ) {
+					statusText = "notmodified";
+
+				// If we have data, let's convert it
+				} else {
+					statusText = response.state;
+					success = response.data;
+					error = response.error;
+					isSuccess = !error;
+				}
+			} else {
+
+				// Extract error from statusText and normalize for non-aborts
+				error = statusText;
+				if ( status || !statusText ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+					[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger( "ajaxStop" );
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	}
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+
+		// Shift arguments if data argument was omitted
+		if ( isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		// The url can be an options object (which then must have .url)
+		return jQuery.ajax( jQuery.extend( {
+			url: url,
+			type: method,
+			dataType: type,
+			data: data,
+			success: callback
+		}, jQuery.isPlainObject( url ) && url ) );
+	};
+} );
+
+
+jQuery._evalUrl = function( url ) {
+	return jQuery.ajax( {
+		url: url,
+
+		// Make this explicit, since user can override this through ajaxSetup (#11264)
+		type: "GET",
+		dataType: "script",
+		cache: true,
+		async: false,
+		global: false,
+		"throws": true
+	} );
+};
+
+
+jQuery.fn.extend( {
+	wrapAll: function( html ) {
+		var wrap;
+
+		if ( this[ 0 ] ) {
+			if ( isFunction( html ) ) {
+				html = html.call( this[ 0 ] );
+			}
+
+			// The elements to wrap the target around
+			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+			if ( this[ 0 ].parentNode ) {
+				wrap.insertBefore( this[ 0 ] );
+			}
+
+			wrap.map( function() {
+				var elem = this;
+
+				while ( elem.firstElementChild ) {
+					elem = elem.firstElementChild;
+				}
+
+				return elem;
+			} ).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( isFunction( html ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).wrapInner( html.call( this, i ) );
+			} );
+		}
+
+		return this.each( function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		} );
+	},
+
+	wrap: function( html ) {
+		var htmlIsFunction = isFunction( html );
+
+		return this.each( function( i ) {
+			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
+		} );
+	},
+
+	unwrap: function( selector ) {
+		this.parent( selector ).not( "body" ).each( function() {
+			jQuery( this ).replaceWith( this.childNodes );
+		} );
+		return this;
+	}
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+	return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+jQuery.ajaxSettings.xhr = function() {
+	try {
+		return new window.XMLHttpRequest();
+	} catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+		// File protocol always yields status code 0, assume 200
+		0: 200,
+
+		// Support: IE <=9 only
+		// #1450: sometimes IE returns 1223 when it should be 204
+		1223: 204
+	},
+	xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+	var callback, errorCallback;
+
+	// Cross domain only allowed if supported through XMLHttpRequest
+	if ( support.cors || xhrSupported && !options.crossDomain ) {
+		return {
+			send: function( headers, complete ) {
+				var i,
+					xhr = options.xhr();
+
+				xhr.open(
+					options.type,
+					options.url,
+					options.async,
+					options.username,
+					options.password
+				);
+
+				// Apply custom fields if provided
+				if ( options.xhrFields ) {
+					for ( i in options.xhrFields ) {
+						xhr[ i ] = options.xhrFields[ i ];
+					}
+				}
+
+				// Override mime type if needed
+				if ( options.mimeType && xhr.overrideMimeType ) {
+					xhr.overrideMimeType( options.mimeType );
+				}
+
+				// X-Requested-With header
+				// For cross-domain requests, seeing as conditions for a preflight are
+				// akin to a jigsaw puzzle, we simply never set it to be sure.
+				// (it can always be set on a per-request basis or even using ajaxSetup)
+				// For same-domain requests, won't change header if already provided.
+				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+					headers[ "X-Requested-With" ] = "XMLHttpRequest";
+				}
+
+				// Set headers
+				for ( i in headers ) {
+					xhr.setRequestHeader( i, headers[ i ] );
+				}
+
+				// Callback
+				callback = function( type ) {
+					return function() {
+						if ( callback ) {
+							callback = errorCallback = xhr.onload =
+								xhr.onerror = xhr.onabort = xhr.ontimeout =
+									xhr.onreadystatechange = null;
+
+							if ( type === "abort" ) {
+								xhr.abort();
+							} else if ( type === "error" ) {
+
+								// Support: IE <=9 only
+								// On a manual native abort, IE9 throws
+								// errors on any property access that is not readyState
+								if ( typeof xhr.status !== "number" ) {
+									complete( 0, "error" );
+								} else {
+									complete(
+
+										// File: protocol always yields status 0; see #8605, #14207
+										xhr.status,
+										xhr.statusText
+									);
+								}
+							} else {
+								complete(
+									xhrSuccessStatus[ xhr.status ] || xhr.status,
+									xhr.statusText,
+
+									// Support: IE <=9 only
+									// IE9 has no XHR2 but throws on binary (trac-11426)
+									// For XHR2 non-text, let the caller handle it (gh-2498)
+									( xhr.responseType || "text" ) !== "text"  ||
+									typeof xhr.responseText !== "string" ?
+										{ binary: xhr.response } :
+										{ text: xhr.responseText },
+									xhr.getAllResponseHeaders()
+								);
+							}
+						}
+					};
+				};
+
+				// Listen to events
+				xhr.onload = callback();
+				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );
+
+				// Support: IE 9 only
+				// Use onreadystatechange to replace onabort
+				// to handle uncaught aborts
+				if ( xhr.onabort !== undefined ) {
+					xhr.onabort = errorCallback;
+				} else {
+					xhr.onreadystatechange = function() {
+
+						// Check readyState before timeout as it changes
+						if ( xhr.readyState === 4 ) {
+
+							// Allow onerror to be called first,
+							// but that will not handle a native abort
+							// Also, save errorCallback to a variable
+							// as xhr.onerror cannot be accessed
+							window.setTimeout( function() {
+								if ( callback ) {
+									errorCallback();
+								}
+							} );
+						}
+					};
+				}
+
+				// Create the abort callback
+				callback = callback( "abort" );
+
+				try {
+
+					// Do send the request (this may raise an exception)
+					xhr.send( options.hasContent && options.data || null );
+				} catch ( e ) {
+
+					// #14683: Only rethrow if this hasn't been notified as an error yet
+					if ( callback ) {
+						throw e;
+					}
+				}
+			},
+
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
+jQuery.ajaxPrefilter( function( s ) {
+	if ( s.crossDomain ) {
+		s.contents.script = false;
+	}
+} );
+
+// Install script dataType
+jQuery.ajaxSetup( {
+	accepts: {
+		script: "text/javascript, application/javascript, " +
+			"application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /\b(?:java|ecma)script\b/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+	}
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+		var script, callback;
+		return {
+			send: function( _, complete ) {
+				script = jQuery( "<script>" ).prop( {
+					charset: s.scriptCharset,
+					src: s.url
+				} ).on(
+					"load error",
+					callback = function( evt ) {
+						script.remove();
+						callback = null;
+						if ( evt ) {
+							complete( evt.type === "error" ? 404 : 200, evt.type );
+						}
+					}
+				);
+
+				// Use native DOM manipulation to avoid our domManip AJAX trickery
+				document.head.appendChild( script[ 0 ] );
+			},
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+var oldCallbacks = [],
+	rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+	jsonp: "callback",
+	jsonpCallback: function() {
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+		this[ callback ] = true;
+		return callback;
+	}
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var callbackName, overwritten, responseContainer,
+		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+			"url" :
+			typeof s.data === "string" &&
+				( s.contentType || "" )
+					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+				rjsonp.test( s.data ) && "data"
+		);
+
+	// Handle iff the expected data type is "jsonp" or we have a parameter to set
+	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+		// Get callback name, remembering preexisting value associated with it
+		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
+			s.jsonpCallback() :
+			s.jsonpCallback;
+
+		// Insert callback into url or form data
+		if ( jsonProp ) {
+			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+		} else if ( s.jsonp !== false ) {
+			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+		}
+
+		// Use data converter to retrieve json after script execution
+		s.converters[ "script json" ] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( callbackName + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// Force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Install callback
+		overwritten = window[ callbackName ];
+		window[ callbackName ] = function() {
+			responseContainer = arguments;
+		};
+
+		// Clean-up function (fires after converters)
+		jqXHR.always( function() {
+
+			// If previous value didn't exist - remove it
+			if ( overwritten === undefined ) {
+				jQuery( window ).removeProp( callbackName );
+
+			// Otherwise restore preexisting value
+			} else {
+				window[ callbackName ] = overwritten;
+			}
+
+			// Save back as free
+			if ( s[ callbackName ] ) {
+
+				// Make sure that re-using the options doesn't screw things around
+				s.jsonpCallback = originalSettings.jsonpCallback;
+
+				// Save the callback name for future use
+				oldCallbacks.push( callbackName );
+			}
+
+			// Call if it was a function and we have a response
+			if ( responseContainer && isFunction( overwritten ) ) {
+				overwritten( responseContainer[ 0 ] );
+			}
+
+			responseContainer = overwritten = undefined;
+		} );
+
+		// Delegate to script
+		return "script";
+	}
+} );
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+	var body = document.implementation.createHTMLDocument( "" ).body;
+	body.innerHTML = "<form></form><form></form>";
+	return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+	if ( typeof data !== "string" ) {
+		return [];
+	}
+	if ( typeof context === "boolean" ) {
+		keepScripts = context;
+		context = false;
+	}
+
+	var base, parsed, scripts;
+
+	if ( !context ) {
+
+		// Stop scripts or inline event handlers from being executed immediately
+		// by using document.implementation
+		if ( support.createHTMLDocument ) {
+			context = document.implementation.createHTMLDocument( "" );
+
+			// Set the base href for the created document
+			// so any parsed elements with URLs
+			// are based on the document's URL (gh-2965)
+			base = context.createElement( "base" );
+			base.href = document.location.href;
+			context.head.appendChild( base );
+		} else {
+			context = document;
+		}
+	}
+
+	parsed = rsingleTag.exec( data );
+	scripts = !keepScripts && [];
+
+	// Single tag
+	if ( parsed ) {
+		return [ context.createElement( parsed[ 1 ] ) ];
+	}
+
+	parsed = buildFragment( [ data ], context, scripts );
+
+	if ( scripts && scripts.length ) {
+		jQuery( scripts ).remove();
+	}
+
+	return jQuery.merge( [], parsed.childNodes );
+};
+
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+	var selector, type, response,
+		self = this,
+		off = url.indexOf( " " );
+
+	if ( off > -1 ) {
+		selector = stripAndCollapse( url.slice( off ) );
+		url = url.slice( 0, off );
+	}
+
+	// If it's a function
+	if ( isFunction( params ) ) {
+
+		// We assume that it's the callback
+		callback = params;
+		params = undefined;
+
+	// Otherwise, build a param string
+	} else if ( params && typeof params === "object" ) {
+		type = "POST";
+	}
+
+	// If we have elements to modify, make the request
+	if ( self.length > 0 ) {
+		jQuery.ajax( {
+			url: url,
+
+			// If "type" variable is undefined, then "GET" method will be used.
+			// Make value of this field explicit since
+			// user can override it through ajaxSetup method
+			type: type || "GET",
+			dataType: "html",
+			data: params
+		} ).done( function( responseText ) {
+
+			// Save response for use in complete callback
+			response = arguments;
+
+			self.html( selector ?
+
+				// If a selector was specified, locate the right elements in a dummy div
+				// Exclude scripts to avoid IE 'Permission Denied' errors
+				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+				// Otherwise use the full result
+				responseText );
+
+		// If the request succeeds, this function gets "data", "status", "jqXHR"
+		// but they are ignored because response was set above.
+		// If it fails, this function gets "jqXHR", "status", "error"
+		} ).always( callback && function( jqXHR, status ) {
+			self.each( function() {
+				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+			} );
+		} );
+	}
+
+	return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+	"ajaxStart",
+	"ajaxStop",
+	"ajaxComplete",
+	"ajaxError",
+	"ajaxSuccess",
+	"ajaxSend"
+], function( i, type ) {
+	jQuery.fn[ type ] = function( fn ) {
+		return this.on( type, fn );
+	};
+} );
+
+
+
+
+jQuery.expr.pseudos.animated = function( elem ) {
+	return jQuery.grep( jQuery.timers, function( fn ) {
+		return elem === fn.elem;
+	} ).length;
+};
+
+
+
+
+jQuery.offset = {
+	setOffset: function( elem, options, i ) {
+		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+			position = jQuery.css( elem, "position" ),
+			curElem = jQuery( elem ),
+			props = {};
+
+		// Set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		curOffset = curElem.offset();
+		curCSSTop = jQuery.css( elem, "top" );
+		curCSSLeft = jQuery.css( elem, "left" );
+		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+		// Need to be able to calculate position if either
+		// top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( isFunction( options ) ) {
+
+			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+
+	// offset() relates an element's border box to the document origin
+	offset: function( options ) {
+
+		// Preserve chaining for setter
+		if ( arguments.length ) {
+			return options === undefined ?
+				this :
+				this.each( function( i ) {
+					jQuery.offset.setOffset( this, options, i );
+				} );
+		}
+
+		var rect, win,
+			elem = this[ 0 ];
+
+		if ( !elem ) {
+			return;
+		}
+
+		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+		// Support: IE <=11 only
+		// Running getBoundingClientRect on a
+		// disconnected node in IE throws an error
+		if ( !elem.getClientRects().length ) {
+			return { top: 0, left: 0 };
+		}
+
+		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
+		rect = elem.getBoundingClientRect();
+		win = elem.ownerDocument.defaultView;
+		return {
+			top: rect.top + win.pageYOffset,
+			left: rect.left + win.pageXOffset
+		};
+	},
+
+	// position() relates an element's margin box to its offset parent's padding box
+	// This corresponds to the behavior of CSS absolute positioning
+	position: function() {
+		if ( !this[ 0 ] ) {
+			return;
+		}
+
+		var offsetParent, offset, doc,
+			elem = this[ 0 ],
+			parentOffset = { top: 0, left: 0 };
+
+		// position:fixed elements are offset from the viewport, which itself always has zero offset
+		if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+			// Assume position:fixed implies availability of getBoundingClientRect
+			offset = elem.getBoundingClientRect();
+
+		} else {
+			offset = this.offset();
+
+			// Account for the *real* offset parent, which can be the document or its root element
+			// when a statically positioned element is identified
+			doc = elem.ownerDocument;
+			offsetParent = elem.offsetParent || doc.documentElement;
+			while ( offsetParent &&
+				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
+				jQuery.css( offsetParent, "position" ) === "static" ) {
+
+				offsetParent = offsetParent.parentNode;
+			}
+			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
+
+				// Incorporate borders into its offset, since they are outside its content origin
+				parentOffset = jQuery( offsetParent ).offset();
+				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
+				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
+			}
+		}
+
+		// Subtract parent offsets and element margins
+		return {
+			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+		};
+	},
+
+	// This method will return documentElement in the following cases:
+	// 1) For the element inside the iframe without offsetParent, this method will return
+	//    documentElement of the parent window
+	// 2) For the hidden or detached element
+	// 3) For body or html element, i.e. in case of the html node - it will return itself
+	//
+	// but those exceptions were never presented as a real life use-cases
+	// and might be considered as more preferable results.
+	//
+	// This logic, however, is not guaranteed and can change at any point in the future
+	offsetParent: function() {
+		return this.map( function() {
+			var offsetParent = this.offsetParent;
+
+			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+
+			return offsetParent || documentElement;
+		} );
+	}
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+	var top = "pageYOffset" === prop;
+
+	jQuery.fn[ method ] = function( val ) {
+		return access( this, function( elem, method, val ) {
+
+			// Coalesce documents and windows
+			var win;
+			if ( isWindow( elem ) ) {
+				win = elem;
+			} else if ( elem.nodeType === 9 ) {
+				win = elem.defaultView;
+			}
+
+			if ( val === undefined ) {
+				return win ? win[ prop ] : elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : win.pageXOffset,
+					top ? val : win.pageYOffset
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length );
+	};
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+		function( elem, computed ) {
+			if ( computed ) {
+				computed = curCSS( elem, prop );
+
+				// If curCSS returns percentage, fallback to offset
+				return rnumnonpx.test( computed ) ?
+					jQuery( elem ).position()[ prop ] + "px" :
+					computed;
+			}
+		}
+	);
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+		function( defaultExtra, funcName ) {
+
+		// Margin is only for outerHeight, outerWidth
+		jQuery.fn[ funcName ] = function( margin, value ) {
+			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+			return access( this, function( elem, type, value ) {
+				var doc;
+
+				if ( isWindow( elem ) ) {
+
+					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+					return funcName.indexOf( "outer" ) === 0 ?
+						elem[ "inner" + name ] :
+						elem.document.documentElement[ "client" + name ];
+				}
+
+				// Get document width or height
+				if ( elem.nodeType === 9 ) {
+					doc = elem.documentElement;
+
+					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+					// whichever is greatest
+					return Math.max(
+						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+						elem.body[ "offset" + name ], doc[ "offset" + name ],
+						doc[ "client" + name ]
+					);
+				}
+
+				return value === undefined ?
+
+					// Get width or height on the element, requesting but not forcing parseFloat
+					jQuery.css( elem, type, extra ) :
+
+					// Set width or height on the element
+					jQuery.style( elem, type, value, extra );
+			}, type, chainable ? margin : undefined, chainable );
+		};
+	} );
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+jQuery.fn.extend( {
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+} );
+
+
+
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	}
+} );
+
+// Bind a function to a context, optionally partially applying any
+// arguments.
+// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
+// However, it is not slated for removal any time soon
+jQuery.proxy = function( fn, context ) {
+	var tmp, args, proxy;
+
+	if ( typeof context === "string" ) {
+		tmp = fn[ context ];
+		context = fn;
+		fn = tmp;
+	}
+
+	// Quick check to determine if target is callable, in the spec
+	// this throws a TypeError, but we will just return undefined.
+	if ( !isFunction( fn ) ) {
+		return undefined;
+	}
+
+	// Simulated bind
+	args = slice.call( arguments, 2 );
+	proxy = function() {
+		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+	};
+
+	// Set the guid of unique handler to the same of original handler, so it can be removed
+	proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+	return proxy;
+};
+
+jQuery.holdReady = function( hold ) {
+	if ( hold ) {
+		jQuery.readyWait++;
+	} else {
+		jQuery.ready( true );
+	}
+};
+jQuery.isArray = Array.isArray;
+jQuery.parseJSON = JSON.parse;
+jQuery.nodeName = nodeName;
+jQuery.isFunction = isFunction;
+jQuery.isWindow = isWindow;
+jQuery.camelCase = camelCase;
+jQuery.type = toType;
+
+jQuery.now = Date.now;
+
+jQuery.isNumeric = function( obj ) {
+
+	// As of jQuery 3.0, isNumeric is limited to
+	// strings and numbers (primitives or objects)
+	// that can be coerced to finite numbers (gh-2662)
+	var type = jQuery.type( obj );
+	return ( type === "number" || type === "string" ) &&
+
+		// parseFloat NaNs numeric-cast false positives ("")
+		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+		// subtraction forces infinities to NaN
+		!isNaN( obj - parseFloat( obj ) );
+};
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+	define( "jquery", [], function() {
+		return jQuery;
+	} );
+}
+
+
+
+
+var
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+	if ( window.$ === jQuery ) {
+		window.$ = _$;
+	}
+
+	if ( deep && window.jQuery === jQuery ) {
+		window.jQuery = _jQuery;
+	}
+
+	return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+	window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+} );
diff --git a/apidocs/1.20/jquery/jquery-migrate-3.0.1.js b/apidocs/1.20/jquery/jquery-migrate-3.0.1.js
new file mode 100644
index 00000000..6c1d4ff2
--- /dev/null
+++ b/apidocs/1.20/jquery/jquery-migrate-3.0.1.js
@@ -0,0 +1,628 @@
+/*!
+ * jQuery Migrate - v3.0.1 - 2017-09-26
+ * Copyright jQuery Foundation and other contributors
+ */
+;( function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+
+		// AMD. Register as an anonymous module.
+		define( [ "jquery" ], window, factory );
+	} else if ( typeof module === "object" && module.exports ) {
+
+		// Node/CommonJS
+		// eslint-disable-next-line no-undef
+		module.exports = factory( require( "jquery" ), window );
+	} else {
+
+		// Browser globals
+		factory( jQuery, window );
+	}
+} )( function( jQuery, window ) {
+"use strict";
+
+
+jQuery.migrateVersion = "3.0.1";
+
+jQuery.migrateMute = true;
+
+/* exported migrateWarn, migrateWarnFunc, migrateWarnProp */
+
+( function() {
+
+	var rbadVersions = /^[12]\./;
+
+	// Support: IE9 only
+	// IE9 only creates console object when dev tools are first opened
+	// IE9 console is a host object, callable but doesn't have .apply()
+	if ( !window.console || !window.console.log ) {
+		return;
+	}
+
+	// Need jQuery 3.0.0+ and no older Migrate loaded
+	if ( !jQuery || rbadVersions.test( jQuery.fn.jquery ) ) {
+		window.console.log( "JQMIGRATE: jQuery 3.0.0+ REQUIRED" );
+	}
+	if ( jQuery.migrateWarnings ) {
+		window.console.log( "JQMIGRATE: Migrate plugin loaded multiple times" );
+	}
+
+	// Show a message on the console so devs know we're active
+	window.console.log( "JQMIGRATE: Migrate is installed" +
+		( jQuery.migrateMute ? "" : " with logging active" ) +
+		", version " + jQuery.migrateVersion );
+
+} )();
+
+var warnedAbout = {};
+
+// List of warnings already given; public read only
+jQuery.migrateWarnings = [];
+
+// Set to false to disable traces that appear with warnings
+if ( jQuery.migrateTrace === undefined ) {
+	jQuery.migrateTrace = true;
+}
+
+// Forget any warnings we've already given; public
+jQuery.migrateReset = function() {
+	warnedAbout = {};
+	jQuery.migrateWarnings.length = 0;
+};
+
+function migrateWarn( msg ) {
+	var console = window.console;
+	if ( !warnedAbout[ msg ] ) {
+		warnedAbout[ msg ] = true;
+		jQuery.migrateWarnings.push( msg );
+		if ( console && console.warn && !jQuery.migrateMute ) {
+			console.warn( "JQMIGRATE: " + msg );
+			if ( jQuery.migrateTrace && console.trace ) {
+				console.trace();
+			}
+		}
+	}
+}
+
+function migrateWarnProp( obj, prop, value, msg ) {
+	Object.defineProperty( obj, prop, {
+		configurable: true,
+		enumerable: true,
+		get: function() {
+			migrateWarn( msg );
+			return value;
+		},
+		set: function( newValue ) {
+			migrateWarn( msg );
+			value = newValue;
+		}
+	} );
+}
+
+function migrateWarnFunc( obj, prop, newFunc, msg ) {
+	obj[ prop ] = function() {
+		migrateWarn( msg );
+		return newFunc.apply( this, arguments );
+	};
+}
+
+if ( window.document.compatMode === "BackCompat" ) {
+
+	// JQuery has never supported or tested Quirks Mode
+	migrateWarn( "jQuery is not compatible with Quirks Mode" );
+}
+
+
+var oldInit = jQuery.fn.init,
+	oldIsNumeric = jQuery.isNumeric,
+	oldFind = jQuery.find,
+	rattrHashTest = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,
+	rattrHashGlob = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;
+
+jQuery.fn.init = function( arg1 ) {
+	var args = Array.prototype.slice.call( arguments );
+
+	if ( typeof arg1 === "string" && arg1 === "#" ) {
+
+		// JQuery( "#" ) is a bogus ID selector, but it returned an empty set before jQuery 3.0
+		migrateWarn( "jQuery( '#' ) is not a valid selector" );
+		args[ 0 ] = [];
+	}
+
+	return oldInit.apply( this, args );
+};
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.find = function( selector ) {
+	var args = Array.prototype.slice.call( arguments );
+
+	// Support: PhantomJS 1.x
+	// String#match fails to match when used with a //g RegExp, only on some strings
+	if ( typeof selector === "string" && rattrHashTest.test( selector ) ) {
+
+		// The nonstandard and undocumented unquoted-hash was removed in jQuery 1.12.0
+		// First see if qS thinks it's a valid selector, if so avoid a false positive
+		try {
+			window.document.querySelector( selector );
+		} catch ( err1 ) {
+
+			// Didn't *look* valid to qSA, warn and try quoting what we think is the value
+			selector = selector.replace( rattrHashGlob, function( _, attr, op, value ) {
+				return "[" + attr + op + "\"" + value + "\"]";
+			} );
+
+			// If the regexp *may* have created an invalid selector, don't update it
+			// Note that there may be false alarms if selector uses jQuery extensions
+			try {
+				window.document.querySelector( selector );
+				migrateWarn( "Attribute selector with '#' must be quoted: " + args[ 0 ] );
+				args[ 0 ] = selector;
+			} catch ( err2 ) {
+				migrateWarn( "Attribute selector with '#' was not fixed: " + args[ 0 ] );
+			}
+		}
+	}
+
+	return oldFind.apply( this, args );
+};
+
+// Copy properties attached to original jQuery.find method (e.g. .attr, .isXML)
+var findProp;
+for ( findProp in oldFind ) {
+	if ( Object.prototype.hasOwnProperty.call( oldFind, findProp ) ) {
+		jQuery.find[ findProp ] = oldFind[ findProp ];
+	}
+}
+
+// The number of elements contained in the matched element set
+jQuery.fn.size = function() {
+	migrateWarn( "jQuery.fn.size() is deprecated and removed; use the .length property" );
+	return this.length;
+};
+
+jQuery.parseJSON = function() {
+	migrateWarn( "jQuery.parseJSON is deprecated; use JSON.parse" );
+	return JSON.parse.apply( null, arguments );
+};
+
+jQuery.isNumeric = function( val ) {
+
+	// The jQuery 2.2.3 implementation of isNumeric
+	function isNumeric2( obj ) {
+		var realStringObj = obj && obj.toString();
+		return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
+	}
+
+	var newValue = oldIsNumeric( val ),
+		oldValue = isNumeric2( val );
+
+	if ( newValue !== oldValue ) {
+		migrateWarn( "jQuery.isNumeric() should not be called on constructed objects" );
+	}
+
+	return oldValue;
+};
+
+migrateWarnFunc( jQuery, "holdReady", jQuery.holdReady,
+	"jQuery.holdReady is deprecated" );
+
+migrateWarnFunc( jQuery, "unique", jQuery.uniqueSort,
+	"jQuery.unique is deprecated; use jQuery.uniqueSort" );
+
+// Now jQuery.expr.pseudos is the standard incantation
+migrateWarnProp( jQuery.expr, "filters", jQuery.expr.pseudos,
+	"jQuery.expr.filters is deprecated; use jQuery.expr.pseudos" );
+migrateWarnProp( jQuery.expr, ":", jQuery.expr.pseudos,
+	"jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos" );
+
+
+var oldAjax = jQuery.ajax;
+
+jQuery.ajax = function( ) {
+	var jQXHR = oldAjax.apply( this, arguments );
+
+	// Be sure we got a jQXHR (e.g., not sync)
+	if ( jQXHR.promise ) {
+		migrateWarnFunc( jQXHR, "success", jQXHR.done,
+			"jQXHR.success is deprecated and removed" );
+		migrateWarnFunc( jQXHR, "error", jQXHR.fail,
+			"jQXHR.error is deprecated and removed" );
+		migrateWarnFunc( jQXHR, "complete", jQXHR.always,
+			"jQXHR.complete is deprecated and removed" );
+	}
+
+	return jQXHR;
+};
+
+
+var oldRemoveAttr = jQuery.fn.removeAttr,
+	oldToggleClass = jQuery.fn.toggleClass,
+	rmatchNonSpace = /\S+/g;
+
+jQuery.fn.removeAttr = function( name ) {
+	var self = this;
+
+	jQuery.each( name.match( rmatchNonSpace ), function( i, attr ) {
+		if ( jQuery.expr.match.bool.test( attr ) ) {
+			migrateWarn( "jQuery.fn.removeAttr no longer sets boolean properties: " + attr );
+			self.prop( attr, false );
+		}
+	} );
+
+	return oldRemoveAttr.apply( this, arguments );
+};
+
+jQuery.fn.toggleClass = function( state ) {
+
+	// Only deprecating no-args or single boolean arg
+	if ( state !== undefined && typeof state !== "boolean" ) {
+		return oldToggleClass.apply( this, arguments );
+	}
+
+	migrateWarn( "jQuery.fn.toggleClass( boolean ) is deprecated" );
+
+	// Toggle entire class name of each element
+	return this.each( function() {
+		var className = this.getAttribute && this.getAttribute( "class" ) || "";
+
+		if ( className ) {
+			jQuery.data( this, "__className__", className );
+		}
+
+		// If the element has a class name or if we're passed `false`,
+		// then remove the whole classname (if there was one, the above saved it).
+		// Otherwise bring back whatever was previously saved (if anything),
+		// falling back to the empty string if nothing was stored.
+		if ( this.setAttribute ) {
+			this.setAttribute( "class",
+				className || state === false ?
+				"" :
+				jQuery.data( this, "__className__" ) || ""
+			);
+		}
+	} );
+};
+
+
+var internalSwapCall = false;
+
+// If this version of jQuery has .swap(), don't false-alarm on internal uses
+if ( jQuery.swap ) {
+	jQuery.each( [ "height", "width", "reliableMarginRight" ], function( _, name ) {
+		var oldHook = jQuery.cssHooks[ name ] && jQuery.cssHooks[ name ].get;
+
+		if ( oldHook ) {
+			jQuery.cssHooks[ name ].get = function() {
+				var ret;
+
+				internalSwapCall = true;
+				ret = oldHook.apply( this, arguments );
+				internalSwapCall = false;
+				return ret;
+			};
+		}
+	} );
+}
+
+jQuery.swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	if ( !internalSwapCall ) {
+		migrateWarn( "jQuery.swap() is undocumented and deprecated" );
+	}
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+var oldData = jQuery.data;
+
+jQuery.data = function( elem, name, value ) {
+	var curData;
+
+	// Name can be an object, and each entry in the object is meant to be set as data
+	if ( name && typeof name === "object" && arguments.length === 2 ) {
+		curData = jQuery.hasData( elem ) && oldData.call( this, elem );
+		var sameKeys = {};
+		for ( var key in name ) {
+			if ( key !== jQuery.camelCase( key ) ) {
+				migrateWarn( "jQuery.data() always sets/gets camelCased names: " + key );
+				curData[ key ] = name[ key ];
+			} else {
+				sameKeys[ key ] = name[ key ];
+			}
+		}
+
+		oldData.call( this, elem, sameKeys );
+
+		return name;
+	}
+
+	// If the name is transformed, look for the un-transformed name in the data object
+	if ( name && typeof name === "string" && name !== jQuery.camelCase( name ) ) {
+		curData = jQuery.hasData( elem ) && oldData.call( this, elem );
+		if ( curData && name in curData ) {
+			migrateWarn( "jQuery.data() always sets/gets camelCased names: " + name );
+			if ( arguments.length > 2 ) {
+				curData[ name ] = value;
+			}
+			return curData[ name ];
+		}
+	}
+
+	return oldData.apply( this, arguments );
+};
+
+var oldTweenRun = jQuery.Tween.prototype.run;
+var linearEasing = function( pct ) {
+		return pct;
+	};
+
+jQuery.Tween.prototype.run = function( ) {
+	if ( jQuery.easing[ this.easing ].length > 1 ) {
+		migrateWarn(
+			"'jQuery.easing." + this.easing.toString() + "' should use only one argument"
+		);
+
+		jQuery.easing[ this.easing ] = linearEasing;
+	}
+
+	oldTweenRun.apply( this, arguments );
+};
+
+jQuery.fx.interval = jQuery.fx.interval || 13;
+
+// Support: IE9, Android <=4.4
+// Avoid false positives on browsers that lack rAF
+if ( window.requestAnimationFrame ) {
+	migrateWarnProp( jQuery.fx, "interval", jQuery.fx.interval,
+		"jQuery.fx.interval is deprecated" );
+}
+
+var oldLoad = jQuery.fn.load,
+	oldEventAdd = jQuery.event.add,
+	originalFix = jQuery.event.fix;
+
+jQuery.event.props = [];
+jQuery.event.fixHooks = {};
+
+migrateWarnProp( jQuery.event.props, "concat", jQuery.event.props.concat,
+	"jQuery.event.props.concat() is deprecated and removed" );
+
+jQuery.event.fix = function( originalEvent ) {
+	var event,
+		type = originalEvent.type,
+		fixHook = this.fixHooks[ type ],
+		props = jQuery.event.props;
+
+	if ( props.length ) {
+		migrateWarn( "jQuery.event.props are deprecated and removed: " + props.join() );
+		while ( props.length ) {
+			jQuery.event.addProp( props.pop() );
+		}
+	}
+
+	if ( fixHook && !fixHook._migrated_ ) {
+		fixHook._migrated_ = true;
+		migrateWarn( "jQuery.event.fixHooks are deprecated and removed: " + type );
+		if ( ( props = fixHook.props ) && props.length ) {
+			while ( props.length ) {
+				jQuery.event.addProp( props.pop() );
+			}
+		}
+	}
+
+	event = originalFix.call( this, originalEvent );
+
+	return fixHook && fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
+};
+
+jQuery.event.add = function( elem, types ) {
+
+	// This misses the multiple-types case but that seems awfully rare
+	if ( elem === window && types === "load" && window.document.readyState === "complete" ) {
+		migrateWarn( "jQuery(window).on('load'...) called after load event occurred" );
+	}
+	return oldEventAdd.apply( this, arguments );
+};
+
+jQuery.each( [ "load", "unload", "error" ], function( _, name ) {
+
+	jQuery.fn[ name ] = function() {
+		var args = Array.prototype.slice.call( arguments, 0 );
+
+		// If this is an ajax load() the first arg should be the string URL;
+		// technically this could also be the "Anything" arg of the event .load()
+		// which just goes to show why this dumb signature has been deprecated!
+		// jQuery custom builds that exclude the Ajax module justifiably die here.
+		if ( name === "load" && typeof args[ 0 ] === "string" ) {
+			return oldLoad.apply( this, args );
+		}
+
+		migrateWarn( "jQuery.fn." + name + "() is deprecated" );
+
+		args.splice( 0, 0, name );
+		if ( arguments.length ) {
+			return this.on.apply( this, args );
+		}
+
+		// Use .triggerHandler here because:
+		// - load and unload events don't need to bubble, only applied to window or image
+		// - error event should not bubble to window, although it does pre-1.7
+		// See http://bugs.jquery.com/ticket/11820
+		this.triggerHandler.apply( this, args );
+		return this;
+	};
+
+} );
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		migrateWarn( "jQuery.fn." + name + "() event shorthand is deprecated" );
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+// Trigger "ready" event only once, on document ready
+jQuery( function() {
+	jQuery( window.document ).triggerHandler( "ready" );
+} );
+
+jQuery.event.special.ready = {
+	setup: function() {
+		if ( this === window.document ) {
+			migrateWarn( "'ready' event is deprecated" );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		migrateWarn( "jQuery.fn.bind() is deprecated" );
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		migrateWarn( "jQuery.fn.unbind() is deprecated" );
+		return this.off( types, null, fn );
+	},
+	delegate: function( selector, types, data, fn ) {
+		migrateWarn( "jQuery.fn.delegate() is deprecated" );
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+		migrateWarn( "jQuery.fn.undelegate() is deprecated" );
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	},
+	hover: function( fnOver, fnOut ) {
+		migrateWarn( "jQuery.fn.hover() is deprecated" );
+		return this.on( "mouseenter", fnOver ).on( "mouseleave", fnOut || fnOver );
+	}
+} );
+
+
+var oldOffset = jQuery.fn.offset;
+
+jQuery.fn.offset = function() {
+	var docElem,
+		elem = this[ 0 ],
+		origin = { top: 0, left: 0 };
+
+	if ( !elem || !elem.nodeType ) {
+		migrateWarn( "jQuery.fn.offset() requires a valid DOM element" );
+		return origin;
+	}
+
+	docElem = ( elem.ownerDocument || window.document ).documentElement;
+	if ( !jQuery.contains( docElem, elem ) ) {
+		migrateWarn( "jQuery.fn.offset() requires an element connected to a document" );
+		return origin;
+	}
+
+	return oldOffset.apply( this, arguments );
+};
+
+
+var oldParam = jQuery.param;
+
+jQuery.param = function( data, traditional ) {
+	var ajaxTraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
+
+	if ( traditional === undefined && ajaxTraditional ) {
+
+		migrateWarn( "jQuery.param() no longer uses jQuery.ajaxSettings.traditional" );
+		traditional = ajaxTraditional;
+	}
+
+	return oldParam.call( this, data, traditional );
+};
+
+var oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
+
+jQuery.fn.andSelf = function() {
+	migrateWarn( "jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()" );
+	return oldSelf.apply( this, arguments );
+};
+
+
+var oldDeferred = jQuery.Deferred,
+	tuples = [
+
+		// Action, add listener, callbacks, .then handlers, final state
+		[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+			jQuery.Callbacks( "once memory" ), "resolved" ],
+		[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+			jQuery.Callbacks( "once memory" ), "rejected" ],
+		[ "notify", "progress", jQuery.Callbacks( "memory" ),
+			jQuery.Callbacks( "memory" ) ]
+	];
+
+jQuery.Deferred = function( func ) {
+	var deferred = oldDeferred(),
+		promise = deferred.promise();
+
+	deferred.pipe = promise.pipe = function( /* fnDone, fnFail, fnProgress */ ) {
+		var fns = arguments;
+
+		migrateWarn( "deferred.pipe() is deprecated" );
+
+		return jQuery.Deferred( function( newDefer ) {
+			jQuery.each( tuples, function( i, tuple ) {
+				var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
+
+				// Deferred.done(function() { bind to newDefer or newDefer.resolve })
+				// deferred.fail(function() { bind to newDefer or newDefer.reject })
+				// deferred.progress(function() { bind to newDefer or newDefer.notify })
+				deferred[ tuple[ 1 ] ]( function() {
+					var returned = fn && fn.apply( this, arguments );
+					if ( returned && jQuery.isFunction( returned.promise ) ) {
+						returned.promise()
+							.done( newDefer.resolve )
+							.fail( newDefer.reject )
+							.progress( newDefer.notify );
+					} else {
+						newDefer[ tuple[ 0 ] + "With" ](
+							this === promise ? newDefer.promise() : this,
+							fn ? [ returned ] : arguments
+						);
+					}
+				} );
+			} );
+			fns = null;
+		} ).promise();
+
+	};
+
+	if ( func ) {
+		func.call( deferred, deferred );
+	}
+
+	return deferred;
+};
+
+// Preserve handler of uncaught exceptions in promise chains
+jQuery.Deferred.exceptionHook = oldDeferred.exceptionHook;
+
+return jQuery;
+} );
diff --git a/apidocs/1.20/jquery/jquery-ui.css b/apidocs/1.20/jquery/jquery-ui.css
new file mode 100644
index 00000000..4f2fc19f
--- /dev/null
+++ b/apidocs/1.20/jquery/jquery-ui.css
@@ -0,0 +1,544 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Includes: core.css, autocomplete.css, menu.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-clearfix {
+	min-height: 0; /* support: IE7 */
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0); /* support: IE8 */
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+}
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	display: block;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-autocomplete {
+	position: absolute;
+	top: 0;
+	left: 0;
+	cursor: default;
+}
+.ui-menu {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+	display: block;
+	outline: none;
+}
+.ui-menu .ui-menu {
+	position: absolute;
+}
+.ui-menu .ui-menu-item {
+	position: relative;
+	margin: 0;
+	padding: 3px 1em 3px .4em;
+	cursor: pointer;
+	min-height: 0; /* support: IE7 */
+	/* support: IE10, see #8844 */
+	list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
+}
+.ui-menu .ui-menu-divider {
+	margin: 5px 0;
+	height: 0;
+	font-size: 0;
+	line-height: 0;
+	border-width: 1px 0 0 0;
+}
+.ui-menu .ui-state-focus,
+.ui-menu .ui-state-active {
+	margin: -1px;
+}
+
+/* icon support */
+.ui-menu-icons {
+	position: relative;
+}
+.ui-menu-icons .ui-menu-item {
+	padding-left: 2em;
+}
+
+/* left-aligned */
+.ui-menu .ui-icon {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	left: .2em;
+	margin: auto 0;
+}
+
+/* right-aligned */
+.ui-menu .ui-menu-icon {
+	left: auto;
+	right: 0;
+}
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+	font-family: Verdana,Arial,sans-serif;
+	font-size: 1.1em;
+}
+.ui-widget .ui-widget {
+	font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+	font-family: Verdana,Arial,sans-serif;
+	font-size: 1em;
+}
+.ui-widget-content {
+	border: 1px solid #aaaaaa;
+	background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
+	color: #222222;
+}
+.ui-widget-content a {
+	color: #222222;
+}
+.ui-widget-header {
+	border: 1px solid #aaaaaa;
+	background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
+	color: #222222;
+	font-weight: bold;
+}
+.ui-widget-header a {
+	color: #222222;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
+	border: 1px solid #d3d3d3;
+	background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
+	font-weight: normal;
+	color: #555555;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited {
+	color: #555555;
+	text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus {
+	border: 1px solid #999999;
+	background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
+	font-weight: normal;
+	color: #212121;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited,
+.ui-state-focus a,
+.ui-state-focus a:hover,
+.ui-state-focus a:link,
+.ui-state-focus a:visited {
+	color: #212121;
+	text-decoration: none;
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active {
+	border: 1px solid #aaaaaa;
+	background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
+	font-weight: normal;
+	color: #212121;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+	color: #212121;
+	text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+	border: 1px solid #fcefa1;
+	background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
+	color: #363636;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+	color: #363636;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+	border: 1px solid #cd0a0a;
+	background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
+	color: #cd0a0a;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+	color: #cd0a0a;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+	color: #cd0a0a;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+	font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+	opacity: .7;
+	filter:Alpha(Opacity=70); /* support: IE8 */
+	font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+	opacity: .35;
+	filter:Alpha(Opacity=35); /* support: IE8 */
+	background-image: none;
+}
+.ui-state-disabled .ui-icon {
+	filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	width: 16px;
+	height: 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url("images/ui-icons_222222_256x240.png");
+}
+.ui-widget-header .ui-icon {
+	background-image: url("images/ui-icons_222222_256x240.png");
+}
+.ui-state-default .ui-icon {
+	background-image: url("images/ui-icons_888888_256x240.png");
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon {
+	background-image: url("images/ui-icons_454545_256x240.png");
+}
+.ui-state-active .ui-icon {
+	background-image: url("images/ui-icons_454545_256x240.png");
+}
+.ui-state-highlight .ui-icon {
+	background-image: url("images/ui-icons_2e83ff_256x240.png");
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+	background-image: url("images/ui-icons_cd0a0a_256x240.png");
+}
+
+/* positioning */
+.ui-icon-blank { background-position: 16px 16px; }
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+	border-top-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+	border-top-right-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+	border-bottom-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+	border-bottom-right-radius: 4px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+	background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
+	opacity: .3;
+	filter: Alpha(Opacity=30); /* support: IE8 */
+}
+.ui-widget-shadow {
+	margin: -8px 0 0 -8px;
+	padding: 8px;
+	background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
+	opacity: .3;
+	filter: Alpha(Opacity=30); /* support: IE8 */
+	border-radius: 8px;
+}
diff --git a/apidocs/1.20/jquery/jquery-ui.js b/apidocs/1.20/jquery/jquery-ui.js
new file mode 100644
index 00000000..e1a68a15
--- /dev/null
+++ b/apidocs/1.20/jquery/jquery-ui.js
@@ -0,0 +1,2610 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Includes: core.js, widget.js, position.js, autocomplete.js, menu.js
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+(function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+
+		// AMD. Register as an anonymous module.
+		define([ "jquery" ], factory );
+	} else {
+
+		// Browser globals
+		factory( jQuery );
+	}
+}(function( $ ) {
+/*!
+ * jQuery UI Core 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/ui-core/
+ */
+
+
+// $.ui might exist from components with no dependencies, e.g., $.ui.position
+$.ui = $.ui || {};
+
+$.extend( $.ui, {
+	version: "1.11.4",
+
+	keyCode: {
+		BACKSPACE: 8,
+		COMMA: 188,
+		DELETE: 46,
+		DOWN: 40,
+		END: 35,
+		ENTER: 13,
+		ESCAPE: 27,
+		HOME: 36,
+		LEFT: 37,
+		PAGE_DOWN: 34,
+		PAGE_UP: 33,
+		PERIOD: 190,
+		RIGHT: 39,
+		SPACE: 32,
+		TAB: 9,
+		UP: 38
+	}
+});
+
+// plugins
+$.fn.extend({
+	scrollParent: function( includeHidden ) {
+		var position = this.css( "position" ),
+			excludeStaticParent = position === "absolute",
+			overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
+			scrollParent = this.parents().filter( function() {
+				var parent = $( this );
+				if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
+					return false;
+				}
+				return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) );
+			}).eq( 0 );
+
+		return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;
+	},
+
+	uniqueId: (function() {
+		var uuid = 0;
+
+		return function() {
+			return this.each(function() {
+				if ( !this.id ) {
+					this.id = "ui-id-" + ( ++uuid );
+				}
+			});
+		};
+	})(),
+
+	removeUniqueId: function() {
+		return this.each(function() {
+			if ( /^ui-id-\d+$/.test( this.id ) ) {
+				$( this ).removeAttr( "id" );
+			}
+		});
+	}
+});
+
+// selectors
+function focusable( element, isTabIndexNotNaN ) {
+	var map, mapName, img,
+		nodeName = element.nodeName.toLowerCase();
+	if ( "area" === nodeName ) {
+		map = element.parentNode;
+		mapName = map.name;
+		if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
+			return false;
+		}
+		img = $( "img[usemap='#" + mapName + "']" )[ 0 ];
+		return !!img && visible( img );
+	}
+	return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ?
+		!element.disabled :
+		"a" === nodeName ?
+			element.href || isTabIndexNotNaN :
+			isTabIndexNotNaN) &&
+		// the element and all of its ancestors must be visible
+		visible( element );
+}
+
+function visible( element ) {
+	return $.expr.filters.visible( element ) &&
+		!$( element ).parents().addBack().filter(function() {
+			return $.css( this, "visibility" ) === "hidden";
+		}).length;
+}
+
+$.extend( $.expr[ ":" ], {
+	data: $.expr.createPseudo ?
+		$.expr.createPseudo(function( dataName ) {
+			return function( elem ) {
+				return !!$.data( elem, dataName );
+			};
+		}) :
+		// support: jQuery <1.8
+		function( elem, i, match ) {
+			return !!$.data( elem, match[ 3 ] );
+		},
+
+	focusable: function( element ) {
+		return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
+	},
+
+	tabbable: function( element ) {
+		var tabIndex = $.attr( element, "tabindex" ),
+			isTabIndexNaN = isNaN( tabIndex );
+		return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
+	}
+});
+
+// support: jQuery <1.8
+if ( !$( "<a>" ).outerWidth( 1 ).jquery ) {
+	$.each( [ "Width", "Height" ], function( i, name ) {
+		var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
+			type = name.toLowerCase(),
+			orig = {
+				innerWidth: $.fn.innerWidth,
+				innerHeight: $.fn.innerHeight,
+				outerWidth: $.fn.outerWidth,
+				outerHeight: $.fn.outerHeight
+			};
+
+		function reduce( elem, size, border, margin ) {
+			$.each( side, function() {
+				size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
+				if ( border ) {
+					size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
+				}
+				if ( margin ) {
+					size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
+				}
+			});
+			return size;
+		}
+
+		$.fn[ "inner" + name ] = function( size ) {
+			if ( size === undefined ) {
+				return orig[ "inner" + name ].call( this );
+			}
+
+			return this.each(function() {
+				$( this ).css( type, reduce( this, size ) + "px" );
+			});
+		};
+
+		$.fn[ "outer" + name] = function( size, margin ) {
+			if ( typeof size !== "number" ) {
+				return orig[ "outer" + name ].call( this, size );
+			}
+
+			return this.each(function() {
+				$( this).css( type, reduce( this, size, true, margin ) + "px" );
+			});
+		};
+	});
+}
+
+// support: jQuery <1.8
+if ( !$.fn.addBack ) {
+	$.fn.addBack = function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	};
+}
+
+// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)
+if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) {
+	$.fn.removeData = (function( removeData ) {
+		return function( key ) {
+			if ( arguments.length ) {
+				return removeData.call( this, $.camelCase( key ) );
+			} else {
+				return removeData.call( this );
+			}
+		};
+	})( $.fn.removeData );
+}
+
+// deprecated
+$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
+
+$.fn.extend({
+	focus: (function( orig ) {
+		return function( delay, fn ) {
+			return typeof delay === "number" ?
+				this.each(function() {
+					var elem = this;
+					setTimeout(function() {
+						$( elem ).focus();
+						if ( fn ) {
+							fn.call( elem );
+						}
+					}, delay );
+				}) :
+				orig.apply( this, arguments );
+		};
+	})( $.fn.focus ),
+
+	disableSelection: (function() {
+		var eventType = "onselectstart" in document.createElement( "div" ) ?
+			"selectstart" :
+			"mousedown";
+
+		return function() {
+			return this.bind( eventType + ".ui-disableSelection", function( event ) {
+				event.preventDefault();
+			});
+		};
+	})(),
+
+	enableSelection: function() {
+		return this.unbind( ".ui-disableSelection" );
+	},
+
+	zIndex: function( zIndex ) {
+		if ( zIndex !== undefined ) {
+			return this.css( "zIndex", zIndex );
+		}
+
+		if ( this.length ) {
+			var elem = $( this[ 0 ] ), position, value;
+			while ( elem.length && elem[ 0 ] !== document ) {
+				// Ignore z-index if position is set to a value where z-index is ignored by the browser
+				// This makes behavior of this function consistent across browsers
+				// WebKit always returns auto if the element is positioned
+				position = elem.css( "position" );
+				if ( position === "absolute" || position === "relative" || position === "fixed" ) {
+					// IE returns 0 when zIndex is not specified
+					// other browsers return a string
+					// we ignore the case of nested elements with an explicit value of 0
+					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
+					value = parseInt( elem.css( "zIndex" ), 10 );
+					if ( !isNaN( value ) && value !== 0 ) {
+						return value;
+					}
+				}
+				elem = elem.parent();
+			}
+		}
+
+		return 0;
+	}
+});
+
+// $.ui.plugin is deprecated. Use $.widget() extensions instead.
+$.ui.plugin = {
+	add: function( module, option, set ) {
+		var i,
+			proto = $.ui[ module ].prototype;
+		for ( i in set ) {
+			proto.plugins[ i ] = proto.plugins[ i ] || [];
+			proto.plugins[ i ].push( [ option, set[ i ] ] );
+		}
+	},
+	call: function( instance, name, args, allowDisconnected ) {
+		var i,
+			set = instance.plugins[ name ];
+
+		if ( !set ) {
+			return;
+		}
+
+		if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
+			return;
+		}
+
+		for ( i = 0; i < set.length; i++ ) {
+			if ( instance.options[ set[ i ][ 0 ] ] ) {
+				set[ i ][ 1 ].apply( instance.element, args );
+			}
+		}
+	}
+};
+
+
+/*!
+ * jQuery UI Widget 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/jQuery.widget/
+ */
+
+
+var widget_uuid = 0,
+	widget_slice = Array.prototype.slice;
+
+$.cleanData = (function( orig ) {
+	return function( elems ) {
+		var events, elem, i;
+		for ( i = 0; (elem = elems[i]) != null; i++ ) {
+			try {
+
+				// Only trigger remove when necessary to save time
+				events = $._data( elem, "events" );
+				if ( events && events.remove ) {
+					$( elem ).triggerHandler( "remove" );
+				}
+
+			// http://bugs.jquery.com/ticket/8235
+			} catch ( e ) {}
+		}
+		orig( elems );
+	};
+})( $.cleanData );
+
+$.widget = function( name, base, prototype ) {
+	var fullName, existingConstructor, constructor, basePrototype,
+		// proxiedPrototype allows the provided prototype to remain unmodified
+		// so that it can be used as a mixin for multiple widgets (#8876)
+		proxiedPrototype = {},
+		namespace = name.split( "." )[ 0 ];
+
+	name = name.split( "." )[ 1 ];
+	fullName = namespace + "-" + name;
+
+	if ( !prototype ) {
+		prototype = base;
+		base = $.Widget;
+	}
+
+	// create selector for plugin
+	$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
+		return !!$.data( elem, fullName );
+	};
+
+	$[ namespace ] = $[ namespace ] || {};
+	existingConstructor = $[ namespace ][ name ];
+	constructor = $[ namespace ][ name ] = function( options, element ) {
+		// allow instantiation without "new" keyword
+		if ( !this._createWidget ) {
+			return new constructor( options, element );
+		}
+
+		// allow instantiation without initializing for simple inheritance
+		// must use "new" keyword (the code above always passes args)
+		if ( arguments.length ) {
+			this._createWidget( options, element );
+		}
+	};
+	// extend with the existing constructor to carry over any static properties
+	$.extend( constructor, existingConstructor, {
+		version: prototype.version,
+		// copy the object used to create the prototype in case we need to
+		// redefine the widget later
+		_proto: $.extend( {}, prototype ),
+		// track widgets that inherit from this widget in case this widget is
+		// redefined after a widget inherits from it
+		_childConstructors: []
+	});
+
+	basePrototype = new base();
+	// we need to make the options hash a property directly on the new instance
+	// otherwise we'll modify the options hash on the prototype that we're
+	// inheriting from
+	basePrototype.options = $.widget.extend( {}, basePrototype.options );
+	$.each( prototype, function( prop, value ) {
+		if ( !$.isFunction( value ) ) {
+			proxiedPrototype[ prop ] = value;
+			return;
+		}
+		proxiedPrototype[ prop ] = (function() {
+			var _super = function() {
+					return base.prototype[ prop ].apply( this, arguments );
+				},
+				_superApply = function( args ) {
+					return base.prototype[ prop ].apply( this, args );
+				};
+			return function() {
+				var __super = this._super,
+					__superApply = this._superApply,
+					returnValue;
+
+				this._super = _super;
+				this._superApply = _superApply;
+
+				returnValue = value.apply( this, arguments );
+
+				this._super = __super;
+				this._superApply = __superApply;
+
+				return returnValue;
+			};
+		})();
+	});
+	constructor.prototype = $.widget.extend( basePrototype, {
+		// TODO: remove support for widgetEventPrefix
+		// always use the name + a colon as the prefix, e.g., draggable:start
+		// don't prefix for widgets that aren't DOM-based
+		widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name
+	}, proxiedPrototype, {
+		constructor: constructor,
+		namespace: namespace,
+		widgetName: name,
+		widgetFullName: fullName
+	});
+
+	// If this widget is being redefined then we need to find all widgets that
+	// are inheriting from it and redefine all of them so that they inherit from
+	// the new version of this widget. We're essentially trying to replace one
+	// level in the prototype chain.
+	if ( existingConstructor ) {
+		$.each( existingConstructor._childConstructors, function( i, child ) {
+			var childPrototype = child.prototype;
+
+			// redefine the child widget using the same prototype that was
+			// originally used, but inherit from the new version of the base
+			$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
+		});
+		// remove the list of existing child constructors from the old constructor
+		// so the old child constructors can be garbage collected
+		delete existingConstructor._childConstructors;
+	} else {
+		base._childConstructors.push( constructor );
+	}
+
+	$.widget.bridge( name, constructor );
+
+	return constructor;
+};
+
+$.widget.extend = function( target ) {
+	var input = widget_slice.call( arguments, 1 ),
+		inputIndex = 0,
+		inputLength = input.length,
+		key,
+		value;
+	for ( ; inputIndex < inputLength; inputIndex++ ) {
+		for ( key in input[ inputIndex ] ) {
+			value = input[ inputIndex ][ key ];
+			if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
+				// Clone objects
+				if ( $.isPlainObject( value ) ) {
+					target[ key ] = $.isPlainObject( target[ key ] ) ?
+						$.widget.extend( {}, target[ key ], value ) :
+						// Don't extend strings, arrays, etc. with objects
+						$.widget.extend( {}, value );
+				// Copy everything else by reference
+				} else {
+					target[ key ] = value;
+				}
+			}
+		}
+	}
+	return target;
+};
+
+$.widget.bridge = function( name, object ) {
+	var fullName = object.prototype.widgetFullName || name;
+	$.fn[ name ] = function( options ) {
+		var isMethodCall = typeof options === "string",
+			args = widget_slice.call( arguments, 1 ),
+			returnValue = this;
+
+		if ( isMethodCall ) {
+			this.each(function() {
+				var methodValue,
+					instance = $.data( this, fullName );
+				if ( options === "instance" ) {
+					returnValue = instance;
+					return false;
+				}
+				if ( !instance ) {
+					return $.error( "cannot call methods on " + name + " prior to initialization; " +
+						"attempted to call method '" + options + "'" );
+				}
+				if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
+					return $.error( "no such method '" + options + "' for " + name + " widget instance" );
+				}
+				methodValue = instance[ options ].apply( instance, args );
+				if ( methodValue !== instance && methodValue !== undefined ) {
+					returnValue = methodValue && methodValue.jquery ?
+						returnValue.pushStack( methodValue.get() ) :
+						methodValue;
+					return false;
+				}
+			});
+		} else {
+
+			// Allow multiple hashes to be passed on init
+			if ( args.length ) {
+				options = $.widget.extend.apply( null, [ options ].concat(args) );
+			}
+
+			this.each(function() {
+				var instance = $.data( this, fullName );
+				if ( instance ) {
+					instance.option( options || {} );
+					if ( instance._init ) {
+						instance._init();
+					}
+				} else {
+					$.data( this, fullName, new object( options, this ) );
+				}
+			});
+		}
+
+		return returnValue;
+	};
+};
+
+$.Widget = function( /* options, element */ ) {};
+$.Widget._childConstructors = [];
+
+$.Widget.prototype = {
+	widgetName: "widget",
+	widgetEventPrefix: "",
+	defaultElement: "<div>",
+	options: {
+		disabled: false,
+
+		// callbacks
+		create: null
+	},
+	_createWidget: function( options, element ) {
+		element = $( element || this.defaultElement || this )[ 0 ];
+		this.element = $( element );
+		this.uuid = widget_uuid++;
+		this.eventNamespace = "." + this.widgetName + this.uuid;
+
+		this.bindings = $();
+		this.hoverable = $();
+		this.focusable = $();
+
+		if ( element !== this ) {
+			$.data( element, this.widgetFullName, this );
+			this._on( true, this.element, {
+				remove: function( event ) {
+					if ( event.target === element ) {
+						this.destroy();
+					}
+				}
+			});
+			this.document = $( element.style ?
+				// element within the document
+				element.ownerDocument :
+				// element is window or document
+				element.document || element );
+			this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
+		}
+
+		this.options = $.widget.extend( {},
+			this.options,
+			this._getCreateOptions(),
+			options );
+
+		this._create();
+		this._trigger( "create", null, this._getCreateEventData() );
+		this._init();
+	},
+	_getCreateOptions: $.noop,
+	_getCreateEventData: $.noop,
+	_create: $.noop,
+	_init: $.noop,
+
+	destroy: function() {
+		this._destroy();
+		// we can probably remove the unbind calls in 2.0
+		// all event bindings should go through this._on()
+		this.element
+			.unbind( this.eventNamespace )
+			.removeData( this.widgetFullName )
+			// support: jquery <1.6.3
+			// http://bugs.jquery.com/ticket/9413
+			.removeData( $.camelCase( this.widgetFullName ) );
+		this.widget()
+			.unbind( this.eventNamespace )
+			.removeAttr( "aria-disabled" )
+			.removeClass(
+				this.widgetFullName + "-disabled " +
+				"ui-state-disabled" );
+
+		// clean up events and states
+		this.bindings.unbind( this.eventNamespace );
+		this.hoverable.removeClass( "ui-state-hover" );
+		this.focusable.removeClass( "ui-state-focus" );
+	},
+	_destroy: $.noop,
+
+	widget: function() {
+		return this.element;
+	},
+
+	option: function( key, value ) {
+		var options = key,
+			parts,
+			curOption,
+			i;
+
+		if ( arguments.length === 0 ) {
+			// don't return a reference to the internal hash
+			return $.widget.extend( {}, this.options );
+		}
+
+		if ( typeof key === "string" ) {
+			// handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
+			options = {};
+			parts = key.split( "." );
+			key = parts.shift();
+			if ( parts.length ) {
+				curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
+				for ( i = 0; i < parts.length - 1; i++ ) {
+					curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
+					curOption = curOption[ parts[ i ] ];
+				}
+				key = parts.pop();
+				if ( arguments.length === 1 ) {
+					return curOption[ key ] === undefined ? null : curOption[ key ];
+				}
+				curOption[ key ] = value;
+			} else {
+				if ( arguments.length === 1 ) {
+					return this.options[ key ] === undefined ? null : this.options[ key ];
+				}
+				options[ key ] = value;
+			}
+		}
+
+		this._setOptions( options );
+
+		return this;
+	},
+	_setOptions: function( options ) {
+		var key;
+
+		for ( key in options ) {
+			this._setOption( key, options[ key ] );
+		}
+
+		return this;
+	},
+	_setOption: function( key, value ) {
+		this.options[ key ] = value;
+
+		if ( key === "disabled" ) {
+			this.widget()
+				.toggleClass( this.widgetFullName + "-disabled", !!value );
+
+			// If the widget is becoming disabled, then nothing is interactive
+			if ( value ) {
+				this.hoverable.removeClass( "ui-state-hover" );
+				this.focusable.removeClass( "ui-state-focus" );
+			}
+		}
+
+		return this;
+	},
+
+	enable: function() {
+		return this._setOptions({ disabled: false });
+	},
+	disable: function() {
+		return this._setOptions({ disabled: true });
+	},
+
+	_on: function( suppressDisabledCheck, element, handlers ) {
+		var delegateElement,
+			instance = this;
+
+		// no suppressDisabledCheck flag, shuffle arguments
+		if ( typeof suppressDisabledCheck !== "boolean" ) {
+			handlers = element;
+			element = suppressDisabledCheck;
+			suppressDisabledCheck = false;
+		}
+
+		// no element argument, shuffle and use this.element
+		if ( !handlers ) {
+			handlers = element;
+			element = this.element;
+			delegateElement = this.widget();
+		} else {
+			element = delegateElement = $( element );
+			this.bindings = this.bindings.add( element );
+		}
+
+		$.each( handlers, function( event, handler ) {
+			function handlerProxy() {
+				// allow widgets to customize the disabled handling
+				// - disabled as an array instead of boolean
+				// - disabled class as method for disabling individual parts
+				if ( !suppressDisabledCheck &&
+						( instance.options.disabled === true ||
+							$( this ).hasClass( "ui-state-disabled" ) ) ) {
+					return;
+				}
+				return ( typeof handler === "string" ? instance[ handler ] : handler )
+					.apply( instance, arguments );
+			}
+
+			// copy the guid so direct unbinding works
+			if ( typeof handler !== "string" ) {
+				handlerProxy.guid = handler.guid =
+					handler.guid || handlerProxy.guid || $.guid++;
+			}
+
+			var match = event.match( /^([\w:-]*)\s*(.*)$/ ),
+				eventName = match[1] + instance.eventNamespace,
+				selector = match[2];
+			if ( selector ) {
+				delegateElement.delegate( selector, eventName, handlerProxy );
+			} else {
+				element.bind( eventName, handlerProxy );
+			}
+		});
+	},
+
+	_off: function( element, eventName ) {
+		eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) +
+			this.eventNamespace;
+		element.unbind( eventName ).undelegate( eventName );
+
+		// Clear the stack to avoid memory leaks (#10056)
+		this.bindings = $( this.bindings.not( element ).get() );
+		this.focusable = $( this.focusable.not( element ).get() );
+		this.hoverable = $( this.hoverable.not( element ).get() );
+	},
+
+	_delay: function( handler, delay ) {
+		function handlerProxy() {
+			return ( typeof handler === "string" ? instance[ handler ] : handler )
+				.apply( instance, arguments );
+		}
+		var instance = this;
+		return setTimeout( handlerProxy, delay || 0 );
+	},
+
+	_hoverable: function( element ) {
+		this.hoverable = this.hoverable.add( element );
+		this._on( element, {
+			mouseenter: function( event ) {
+				$( event.currentTarget ).addClass( "ui-state-hover" );
+			},
+			mouseleave: function( event ) {
+				$( event.currentTarget ).removeClass( "ui-state-hover" );
+			}
+		});
+	},
+
+	_focusable: function( element ) {
+		this.focusable = this.focusable.add( element );
+		this._on( element, {
+			focusin: function( event ) {
+				$( event.currentTarget ).addClass( "ui-state-focus" );
+			},
+			focusout: function( event ) {
+				$( event.currentTarget ).removeClass( "ui-state-focus" );
+			}
+		});
+	},
+
+	_trigger: function( type, event, data ) {
+		var prop, orig,
+			callback = this.options[ type ];
+
+		data = data || {};
+		event = $.Event( event );
+		event.type = ( type === this.widgetEventPrefix ?
+			type :
+			this.widgetEventPrefix + type ).toLowerCase();
+		// the original event may come from any element
+		// so we need to reset the target on the new event
+		event.target = this.element[ 0 ];
+
+		// copy original event properties over to the new event
+		orig = event.originalEvent;
+		if ( orig ) {
+			for ( prop in orig ) {
+				if ( !( prop in event ) ) {
+					event[ prop ] = orig[ prop ];
+				}
+			}
+		}
+
+		this.element.trigger( event, data );
+		return !( $.isFunction( callback ) &&
+			callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
+			event.isDefaultPrevented() );
+	}
+};
+
+$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
+	$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
+		if ( typeof options === "string" ) {
+			options = { effect: options };
+		}
+		var hasOptions,
+			effectName = !options ?
+				method :
+				options === true || typeof options === "number" ?
+					defaultEffect :
+					options.effect || defaultEffect;
+		options = options || {};
+		if ( typeof options === "number" ) {
+			options = { duration: options };
+		}
+		hasOptions = !$.isEmptyObject( options );
+		options.complete = callback;
+		if ( options.delay ) {
+			element.delay( options.delay );
+		}
+		if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
+			element[ method ]( options );
+		} else if ( effectName !== method && element[ effectName ] ) {
+			element[ effectName ]( options.duration, options.easing, callback );
+		} else {
+			element.queue(function( next ) {
+				$( this )[ method ]();
+				if ( callback ) {
+					callback.call( element[ 0 ] );
+				}
+				next();
+			});
+		}
+	};
+});
+
+var widget = $.widget;
+
+
+/*!
+ * jQuery UI Position 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/position/
+ */
+
+(function() {
+
+$.ui = $.ui || {};
+
+var cachedScrollbarWidth, supportsOffsetFractions,
+	max = Math.max,
+	abs = Math.abs,
+	round = Math.round,
+	rhorizontal = /left|center|right/,
+	rvertical = /top|center|bottom/,
+	roffset = /[\+\-]\d+(\.[\d]+)?%?/,
+	rposition = /^\w+/,
+	rpercent = /%$/,
+	_position = $.fn.position;
+
+function getOffsets( offsets, width, height ) {
+	return [
+		parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
+		parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
+	];
+}
+
+function parseCss( element, property ) {
+	return parseInt( $.css( element, property ), 10 ) || 0;
+}
+
+function getDimensions( elem ) {
+	var raw = elem[0];
+	if ( raw.nodeType === 9 ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: 0, left: 0 }
+		};
+	}
+	if ( $.isWindow( raw ) ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
+		};
+	}
+	if ( raw.preventDefault ) {
+		return {
+			width: 0,
+			height: 0,
+			offset: { top: raw.pageY, left: raw.pageX }
+		};
+	}
+	return {
+		width: elem.outerWidth(),
+		height: elem.outerHeight(),
+		offset: elem.offset()
+	};
+}
+
+$.position = {
+	scrollbarWidth: function() {
+		if ( cachedScrollbarWidth !== undefined ) {
+			return cachedScrollbarWidth;
+		}
+		var w1, w2,
+			div = $( "<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>" ),
+			innerDiv = div.children()[0];
+
+		$( "body" ).append( div );
+		w1 = innerDiv.offsetWidth;
+		div.css( "overflow", "scroll" );
+
+		w2 = innerDiv.offsetWidth;
+
+		if ( w1 === w2 ) {
+			w2 = div[0].clientWidth;
+		}
+
+		div.remove();
+
+		return (cachedScrollbarWidth = w1 - w2);
+	},
+	getScrollInfo: function( within ) {
+		var overflowX = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-x" ),
+			overflowY = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-y" ),
+			hasOverflowX = overflowX === "scroll" ||
+				( overflowX === "auto" && within.width < within.element[0].scrollWidth ),
+			hasOverflowY = overflowY === "scroll" ||
+				( overflowY === "auto" && within.height < within.element[0].scrollHeight );
+		return {
+			width: hasOverflowY ? $.position.scrollbarWidth() : 0,
+			height: hasOverflowX ? $.position.scrollbarWidth() : 0
+		};
+	},
+	getWithinInfo: function( element ) {
+		var withinElement = $( element || window ),
+			isWindow = $.isWindow( withinElement[0] ),
+			isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9;
+		return {
+			element: withinElement,
+			isWindow: isWindow,
+			isDocument: isDocument,
+			offset: withinElement.offset() || { left: 0, top: 0 },
+			scrollLeft: withinElement.scrollLeft(),
+			scrollTop: withinElement.scrollTop(),
+
+			// support: jQuery 1.6.x
+			// jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows
+			width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(),
+			height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight()
+		};
+	}
+};
+
+$.fn.position = function( options ) {
+	if ( !options || !options.of ) {
+		return _position.apply( this, arguments );
+	}
+
+	// make a copy, we don't want to modify arguments
+	options = $.extend( {}, options );
+
+	var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
+		target = $( options.of ),
+		within = $.position.getWithinInfo( options.within ),
+		scrollInfo = $.position.getScrollInfo( within ),
+		collision = ( options.collision || "flip" ).split( " " ),
+		offsets = {};
+
+	dimensions = getDimensions( target );
+	if ( target[0].preventDefault ) {
+		// force left top to allow flipping
+		options.at = "left top";
+	}
+	targetWidth = dimensions.width;
+	targetHeight = dimensions.height;
+	targetOffset = dimensions.offset;
+	// clone to reuse original targetOffset later
+	basePosition = $.extend( {}, targetOffset );
+
+	// force my and at to have valid horizontal and vertical positions
+	// if a value is missing or invalid, it will be converted to center
+	$.each( [ "my", "at" ], function() {
+		var pos = ( options[ this ] || "" ).split( " " ),
+			horizontalOffset,
+			verticalOffset;
+
+		if ( pos.length === 1) {
+			pos = rhorizontal.test( pos[ 0 ] ) ?
+				pos.concat( [ "center" ] ) :
+				rvertical.test( pos[ 0 ] ) ?
+					[ "center" ].concat( pos ) :
+					[ "center", "center" ];
+		}
+		pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
+		pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
+
+		// calculate offsets
+		horizontalOffset = roffset.exec( pos[ 0 ] );
+		verticalOffset = roffset.exec( pos[ 1 ] );
+		offsets[ this ] = [
+			horizontalOffset ? horizontalOffset[ 0 ] : 0,
+			verticalOffset ? verticalOffset[ 0 ] : 0
+		];
+
+		// reduce to just the positions without the offsets
+		options[ this ] = [
+			rposition.exec( pos[ 0 ] )[ 0 ],
+			rposition.exec( pos[ 1 ] )[ 0 ]
+		];
+	});
+
+	// normalize collision option
+	if ( collision.length === 1 ) {
+		collision[ 1 ] = collision[ 0 ];
+	}
+
+	if ( options.at[ 0 ] === "right" ) {
+		basePosition.left += targetWidth;
+	} else if ( options.at[ 0 ] === "center" ) {
+		basePosition.left += targetWidth / 2;
+	}
+
+	if ( options.at[ 1 ] === "bottom" ) {
+		basePosition.top += targetHeight;
+	} else if ( options.at[ 1 ] === "center" ) {
+		basePosition.top += targetHeight / 2;
+	}
+
+	atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
+	basePosition.left += atOffset[ 0 ];
+	basePosition.top += atOffset[ 1 ];
+
+	return this.each(function() {
+		var collisionPosition, using,
+			elem = $( this ),
+			elemWidth = elem.outerWidth(),
+			elemHeight = elem.outerHeight(),
+			marginLeft = parseCss( this, "marginLeft" ),
+			marginTop = parseCss( this, "marginTop" ),
+			collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width,
+			collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height,
+			position = $.extend( {}, basePosition ),
+			myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
+
+		if ( options.my[ 0 ] === "right" ) {
+			position.left -= elemWidth;
+		} else if ( options.my[ 0 ] === "center" ) {
+			position.left -= elemWidth / 2;
+		}
+
+		if ( options.my[ 1 ] === "bottom" ) {
+			position.top -= elemHeight;
+		} else if ( options.my[ 1 ] === "center" ) {
+			position.top -= elemHeight / 2;
+		}
+
+		position.left += myOffset[ 0 ];
+		position.top += myOffset[ 1 ];
+
+		// if the browser doesn't support fractions, then round for consistent results
+		if ( !supportsOffsetFractions ) {
+			position.left = round( position.left );
+			position.top = round( position.top );
+		}
+
+		collisionPosition = {
+			marginLeft: marginLeft,
+			marginTop: marginTop
+		};
+
+		$.each( [ "left", "top" ], function( i, dir ) {
+			if ( $.ui.position[ collision[ i ] ] ) {
+				$.ui.position[ collision[ i ] ][ dir ]( position, {
+					targetWidth: targetWidth,
+					targetHeight: targetHeight,
+					elemWidth: elemWidth,
+					elemHeight: elemHeight,
+					collisionPosition: collisionPosition,
+					collisionWidth: collisionWidth,
+					collisionHeight: collisionHeight,
+					offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
+					my: options.my,
+					at: options.at,
+					within: within,
+					elem: elem
+				});
+			}
+		});
+
+		if ( options.using ) {
+			// adds feedback as second argument to using callback, if present
+			using = function( props ) {
+				var left = targetOffset.left - position.left,
+					right = left + targetWidth - elemWidth,
+					top = targetOffset.top - position.top,
+					bottom = top + targetHeight - elemHeight,
+					feedback = {
+						target: {
+							element: target,
+							left: targetOffset.left,
+							top: targetOffset.top,
+							width: targetWidth,
+							height: targetHeight
+						},
+						element: {
+							element: elem,
+							left: position.left,
+							top: position.top,
+							width: elemWidth,
+							height: elemHeight
+						},
+						horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
+						vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
+					};
+				if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
+					feedback.horizontal = "center";
+				}
+				if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
+					feedback.vertical = "middle";
+				}
+				if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
+					feedback.important = "horizontal";
+				} else {
+					feedback.important = "vertical";
+				}
+				options.using.call( this, props, feedback );
+			};
+		}
+
+		elem.offset( $.extend( position, { using: using } ) );
+	});
+};
+
+$.ui.position = {
+	fit: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
+				outerWidth = within.width,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = withinOffset - collisionPosLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
+				newOverRight;
+
+			// element is wider than within
+			if ( data.collisionWidth > outerWidth ) {
+				// element is initially over the left side of within
+				if ( overLeft > 0 && overRight <= 0 ) {
+					newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;
+					position.left += overLeft - newOverRight;
+				// element is initially over right side of within
+				} else if ( overRight > 0 && overLeft <= 0 ) {
+					position.left = withinOffset;
+				// element is initially over both left and right sides of within
+				} else {
+					if ( overLeft > overRight ) {
+						position.left = withinOffset + outerWidth - data.collisionWidth;
+					} else {
+						position.left = withinOffset;
+					}
+				}
+			// too far left -> align with left edge
+			} else if ( overLeft > 0 ) {
+				position.left += overLeft;
+			// too far right -> align with right edge
+			} else if ( overRight > 0 ) {
+				position.left -= overRight;
+			// adjust based on position and margin
+			} else {
+				position.left = max( position.left - collisionPosLeft, position.left );
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
+				outerHeight = data.within.height,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = withinOffset - collisionPosTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
+				newOverBottom;
+
+			// element is taller than within
+			if ( data.collisionHeight > outerHeight ) {
+				// element is initially over the top of within
+				if ( overTop > 0 && overBottom <= 0 ) {
+					newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;
+					position.top += overTop - newOverBottom;
+				// element is initially over bottom of within
+				} else if ( overBottom > 0 && overTop <= 0 ) {
+					position.top = withinOffset;
+				// element is initially over both top and bottom of within
+				} else {
+					if ( overTop > overBottom ) {
+						position.top = withinOffset + outerHeight - data.collisionHeight;
+					} else {
+						position.top = withinOffset;
+					}
+				}
+			// too far up -> align with top
+			} else if ( overTop > 0 ) {
+				position.top += overTop;
+			// too far down -> align with bottom edge
+			} else if ( overBottom > 0 ) {
+				position.top -= overBottom;
+			// adjust based on position and margin
+			} else {
+				position.top = max( position.top - collisionPosTop, position.top );
+			}
+		}
+	},
+	flip: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.left + within.scrollLeft,
+				outerWidth = within.width,
+				offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = collisionPosLeft - offsetLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
+				myOffset = data.my[ 0 ] === "left" ?
+					-data.elemWidth :
+					data.my[ 0 ] === "right" ?
+						data.elemWidth :
+						0,
+				atOffset = data.at[ 0 ] === "left" ?
+					data.targetWidth :
+					data.at[ 0 ] === "right" ?
+						-data.targetWidth :
+						0,
+				offset = -2 * data.offset[ 0 ],
+				newOverRight,
+				newOverLeft;
+
+			if ( overLeft < 0 ) {
+				newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
+				if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			} else if ( overRight > 0 ) {
+				newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
+				if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.top + within.scrollTop,
+				outerHeight = within.height,
+				offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = collisionPosTop - offsetTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
+				top = data.my[ 1 ] === "top",
+				myOffset = top ?
+					-data.elemHeight :
+					data.my[ 1 ] === "bottom" ?
+						data.elemHeight :
+						0,
+				atOffset = data.at[ 1 ] === "top" ?
+					data.targetHeight :
+					data.at[ 1 ] === "bottom" ?
+						-data.targetHeight :
+						0,
+				offset = -2 * data.offset[ 1 ],
+				newOverTop,
+				newOverBottom;
+			if ( overTop < 0 ) {
+				newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;
+				if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			} else if ( overBottom > 0 ) {
+				newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
+				if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			}
+		}
+	},
+	flipfit: {
+		left: function() {
+			$.ui.position.flip.left.apply( this, arguments );
+			$.ui.position.fit.left.apply( this, arguments );
+		},
+		top: function() {
+			$.ui.position.flip.top.apply( this, arguments );
+			$.ui.position.fit.top.apply( this, arguments );
+		}
+	}
+};
+
+// fraction support test
+(function() {
+	var testElement, testElementParent, testElementStyle, offsetLeft, i,
+		body = document.getElementsByTagName( "body" )[ 0 ],
+		div = document.createElement( "div" );
+
+	//Create a "fake body" for testing based on method used in jQuery.support
+	testElement = document.createElement( body ? "div" : "body" );
+	testElementStyle = {
+		visibility: "hidden",
+		width: 0,
+		height: 0,
+		border: 0,
+		margin: 0,
+		background: "none"
+	};
+	if ( body ) {
+		$.extend( testElementStyle, {
+			position: "absolute",
+			left: "-1000px",
+			top: "-1000px"
+		});
+	}
+	for ( i in testElementStyle ) {
+		testElement.style[ i ] = testElementStyle[ i ];
+	}
+	testElement.appendChild( div );
+	testElementParent = body || document.documentElement;
+	testElementParent.insertBefore( testElement, testElementParent.firstChild );
+
+	div.style.cssText = "position: absolute; left: 10.7432222px;";
+
+	offsetLeft = $( div ).offset().left;
+	supportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11;
+
+	testElement.innerHTML = "";
+	testElementParent.removeChild( testElement );
+})();
+
+})();
+
+var position = $.ui.position;
+
+
+/*!
+ * jQuery UI Menu 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/menu/
+ */
+
+
+var menu = $.widget( "ui.menu", {
+	version: "1.11.4",
+	defaultElement: "<ul>",
+	delay: 300,
+	options: {
+		icons: {
+			submenu: "ui-icon-carat-1-e"
+		},
+		items: "> *",
+		menus: "ul",
+		position: {
+			my: "left-1 top",
+			at: "right top"
+		},
+		role: "menu",
+
+		// callbacks
+		blur: null,
+		focus: null,
+		select: null
+	},
+
+	_create: function() {
+		this.activeMenu = this.element;
+
+		// Flag used to prevent firing of the click handler
+		// as the event bubbles up through nested menus
+		this.mouseHandled = false;
+		this.element
+			.uniqueId()
+			.addClass( "ui-menu ui-widget ui-widget-content" )
+			.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length )
+			.attr({
+				role: this.options.role,
+				tabIndex: 0
+			});
+
+		if ( this.options.disabled ) {
+			this.element
+				.addClass( "ui-state-disabled" )
+				.attr( "aria-disabled", "true" );
+		}
+
+		this._on({
+			// Prevent focus from sticking to links inside menu after clicking
+			// them (focus should always stay on UL during navigation).
+			"mousedown .ui-menu-item": function( event ) {
+				event.preventDefault();
+			},
+			"click .ui-menu-item": function( event ) {
+				var target = $( event.target );
+				if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
+					this.select( event );
+
+					// Only set the mouseHandled flag if the event will bubble, see #9469.
+					if ( !event.isPropagationStopped() ) {
+						this.mouseHandled = true;
+					}
+
+					// Open submenu on click
+					if ( target.has( ".ui-menu" ).length ) {
+						this.expand( event );
+					} else if ( !this.element.is( ":focus" ) && $( this.document[ 0 ].activeElement ).closest( ".ui-menu" ).length ) {
+
+						// Redirect focus to the menu
+						this.element.trigger( "focus", [ true ] );
+
+						// If the active item is on the top level, let it stay active.
+						// Otherwise, blur the active item since it is no longer visible.
+						if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) {
+							clearTimeout( this.timer );
+						}
+					}
+				}
+			},
+			"mouseenter .ui-menu-item": function( event ) {
+				// Ignore mouse events while typeahead is active, see #10458.
+				// Prevents focusing the wrong item when typeahead causes a scroll while the mouse
+				// is over an item in the menu
+				if ( this.previousFilter ) {
+					return;
+				}
+				var target = $( event.currentTarget );
+				// Remove ui-state-active class from siblings of the newly focused menu item
+				// to avoid a jump caused by adjacent elements both having a class with a border
+				target.siblings( ".ui-state-active" ).removeClass( "ui-state-active" );
+				this.focus( event, target );
+			},
+			mouseleave: "collapseAll",
+			"mouseleave .ui-menu": "collapseAll",
+			focus: function( event, keepActiveItem ) {
+				// If there's already an active item, keep it active
+				// If not, activate the first item
+				var item = this.active || this.element.find( this.options.items ).eq( 0 );
+
+				if ( !keepActiveItem ) {
+					this.focus( event, item );
+				}
+			},
+			blur: function( event ) {
+				this._delay(function() {
+					if ( !$.contains( this.element[0], this.document[0].activeElement ) ) {
+						this.collapseAll( event );
+					}
+				});
+			},
+			keydown: "_keydown"
+		});
+
+		this.refresh();
+
+		// Clicks outside of a menu collapse any open menus
+		this._on( this.document, {
+			click: function( event ) {
+				if ( this._closeOnDocumentClick( event ) ) {
+					this.collapseAll( event );
+				}
+
+				// Reset the mouseHandled flag
+				this.mouseHandled = false;
+			}
+		});
+	},
+
+	_destroy: function() {
+		// Destroy (sub)menus
+		this.element
+			.removeAttr( "aria-activedescendant" )
+			.find( ".ui-menu" ).addBack()
+				.removeClass( "ui-menu ui-widget ui-widget-content ui-menu-icons ui-front" )
+				.removeAttr( "role" )
+				.removeAttr( "tabIndex" )
+				.removeAttr( "aria-labelledby" )
+				.removeAttr( "aria-expanded" )
+				.removeAttr( "aria-hidden" )
+				.removeAttr( "aria-disabled" )
+				.removeUniqueId()
+				.show();
+
+		// Destroy menu items
+		this.element.find( ".ui-menu-item" )
+			.removeClass( "ui-menu-item" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-disabled" )
+			.removeUniqueId()
+			.removeClass( "ui-state-hover" )
+			.removeAttr( "tabIndex" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-haspopup" )
+			.children().each( function() {
+				var elem = $( this );
+				if ( elem.data( "ui-menu-submenu-carat" ) ) {
+					elem.remove();
+				}
+			});
+
+		// Destroy menu dividers
+		this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" );
+	},
+
+	_keydown: function( event ) {
+		var match, prev, character, skip,
+			preventDefault = true;
+
+		switch ( event.keyCode ) {
+		case $.ui.keyCode.PAGE_UP:
+			this.previousPage( event );
+			break;
+		case $.ui.keyCode.PAGE_DOWN:
+			this.nextPage( event );
+			break;
+		case $.ui.keyCode.HOME:
+			this._move( "first", "first", event );
+			break;
+		case $.ui.keyCode.END:
+			this._move( "last", "last", event );
+			break;
+		case $.ui.keyCode.UP:
+			this.previous( event );
+			break;
+		case $.ui.keyCode.DOWN:
+			this.next( event );
+			break;
+		case $.ui.keyCode.LEFT:
+			this.collapse( event );
+			break;
+		case $.ui.keyCode.RIGHT:
+			if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
+				this.expand( event );
+			}
+			break;
+		case $.ui.keyCode.ENTER:
+		case $.ui.keyCode.SPACE:
+			this._activate( event );
+			break;
+		case $.ui.keyCode.ESCAPE:
+			this.collapse( event );
+			break;
+		default:
+			preventDefault = false;
+			prev = this.previousFilter || "";
+			character = String.fromCharCode( event.keyCode );
+			skip = false;
+
+			clearTimeout( this.filterTimer );
+
+			if ( character === prev ) {
+				skip = true;
+			} else {
+				character = prev + character;
+			}
+
+			match = this._filterMenuItems( character );
+			match = skip && match.index( this.active.next() ) !== -1 ?
+				this.active.nextAll( ".ui-menu-item" ) :
+				match;
+
+			// If no matches on the current filter, reset to the last character pressed
+			// to move down the menu to the first item that starts with that character
+			if ( !match.length ) {
+				character = String.fromCharCode( event.keyCode );
+				match = this._filterMenuItems( character );
+			}
+
+			if ( match.length ) {
+				this.focus( event, match );
+				this.previousFilter = character;
+				this.filterTimer = this._delay(function() {
+					delete this.previousFilter;
+				}, 1000 );
+			} else {
+				delete this.previousFilter;
+			}
+		}
+
+		if ( preventDefault ) {
+			event.preventDefault();
+		}
+	},
+
+	_activate: function( event ) {
+		if ( !this.active.is( ".ui-state-disabled" ) ) {
+			if ( this.active.is( "[aria-haspopup='true']" ) ) {
+				this.expand( event );
+			} else {
+				this.select( event );
+			}
+		}
+	},
+
+	refresh: function() {
+		var menus, items,
+			that = this,
+			icon = this.options.icons.submenu,
+			submenus = this.element.find( this.options.menus );
+
+		this.element.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length );
+
+		// Initialize nested menus
+		submenus.filter( ":not(.ui-menu)" )
+			.addClass( "ui-menu ui-widget ui-widget-content ui-front" )
+			.hide()
+			.attr({
+				role: this.options.role,
+				"aria-hidden": "true",
+				"aria-expanded": "false"
+			})
+			.each(function() {
+				var menu = $( this ),
+					item = menu.parent(),
+					submenuCarat = $( "<span>" )
+						.addClass( "ui-menu-icon ui-icon " + icon )
+						.data( "ui-menu-submenu-carat", true );
+
+				item
+					.attr( "aria-haspopup", "true" )
+					.prepend( submenuCarat );
+				menu.attr( "aria-labelledby", item.attr( "id" ) );
+			});
+
+		menus = submenus.add( this.element );
+		items = menus.find( this.options.items );
+
+		// Initialize menu-items containing spaces and/or dashes only as dividers
+		items.not( ".ui-menu-item" ).each(function() {
+			var item = $( this );
+			if ( that._isDivider( item ) ) {
+				item.addClass( "ui-widget-content ui-menu-divider" );
+			}
+		});
+
+		// Don't refresh list items that are already adapted
+		items.not( ".ui-menu-item, .ui-menu-divider" )
+			.addClass( "ui-menu-item" )
+			.uniqueId()
+			.attr({
+				tabIndex: -1,
+				role: this._itemRole()
+			});
+
+		// Add aria-disabled attribute to any disabled menu item
+		items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
+
+		// If the active item has been removed, blur the menu
+		if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
+			this.blur();
+		}
+	},
+
+	_itemRole: function() {
+		return {
+			menu: "menuitem",
+			listbox: "option"
+		}[ this.options.role ];
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icons" ) {
+			this.element.find( ".ui-menu-icon" )
+				.removeClass( this.options.icons.submenu )
+				.addClass( value.submenu );
+		}
+		if ( key === "disabled" ) {
+			this.element
+				.toggleClass( "ui-state-disabled", !!value )
+				.attr( "aria-disabled", value );
+		}
+		this._super( key, value );
+	},
+
+	focus: function( event, item ) {
+		var nested, focused;
+		this.blur( event, event && event.type === "focus" );
+
+		this._scrollIntoView( item );
+
+		this.active = item.first();
+		focused = this.active.addClass( "ui-state-focus" ).removeClass( "ui-state-active" );
+		// Only update aria-activedescendant if there's a role
+		// otherwise we assume focus is managed elsewhere
+		if ( this.options.role ) {
+			this.element.attr( "aria-activedescendant", focused.attr( "id" ) );
+		}
+
+		// Highlight active parent menu item, if any
+		this.active
+			.parent()
+			.closest( ".ui-menu-item" )
+			.addClass( "ui-state-active" );
+
+		if ( event && event.type === "keydown" ) {
+			this._close();
+		} else {
+			this.timer = this._delay(function() {
+				this._close();
+			}, this.delay );
+		}
+
+		nested = item.children( ".ui-menu" );
+		if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {
+			this._startOpening(nested);
+		}
+		this.activeMenu = item.parent();
+
+		this._trigger( "focus", event, { item: item } );
+	},
+
+	_scrollIntoView: function( item ) {
+		var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
+		if ( this._hasScroll() ) {
+			borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0;
+			paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0;
+			offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
+			scroll = this.activeMenu.scrollTop();
+			elementHeight = this.activeMenu.height();
+			itemHeight = item.outerHeight();
+
+			if ( offset < 0 ) {
+				this.activeMenu.scrollTop( scroll + offset );
+			} else if ( offset + itemHeight > elementHeight ) {
+				this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
+			}
+		}
+	},
+
+	blur: function( event, fromFocus ) {
+		if ( !fromFocus ) {
+			clearTimeout( this.timer );
+		}
+
+		if ( !this.active ) {
+			return;
+		}
+
+		this.active.removeClass( "ui-state-focus" );
+		this.active = null;
+
+		this._trigger( "blur", event, { item: this.active } );
+	},
+
+	_startOpening: function( submenu ) {
+		clearTimeout( this.timer );
+
+		// Don't open if already open fixes a Firefox bug that caused a .5 pixel
+		// shift in the submenu position when mousing over the carat icon
+		if ( submenu.attr( "aria-hidden" ) !== "true" ) {
+			return;
+		}
+
+		this.timer = this._delay(function() {
+			this._close();
+			this._open( submenu );
+		}, this.delay );
+	},
+
+	_open: function( submenu ) {
+		var position = $.extend({
+			of: this.active
+		}, this.options.position );
+
+		clearTimeout( this.timer );
+		this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) )
+			.hide()
+			.attr( "aria-hidden", "true" );
+
+		submenu
+			.show()
+			.removeAttr( "aria-hidden" )
+			.attr( "aria-expanded", "true" )
+			.position( position );
+	},
+
+	collapseAll: function( event, all ) {
+		clearTimeout( this.timer );
+		this.timer = this._delay(function() {
+			// If we were passed an event, look for the submenu that contains the event
+			var currentMenu = all ? this.element :
+				$( event && event.target ).closest( this.element.find( ".ui-menu" ) );
+
+			// If we found no valid submenu ancestor, use the main menu to close all sub menus anyway
+			if ( !currentMenu.length ) {
+				currentMenu = this.element;
+			}
+
+			this._close( currentMenu );
+
+			this.blur( event );
+			this.activeMenu = currentMenu;
+		}, this.delay );
+	},
+
+	// With no arguments, closes the currently active menu - if nothing is active
+	// it closes all menus.  If passed an argument, it will search for menus BELOW
+	_close: function( startMenu ) {
+		if ( !startMenu ) {
+			startMenu = this.active ? this.active.parent() : this.element;
+		}
+
+		startMenu
+			.find( ".ui-menu" )
+				.hide()
+				.attr( "aria-hidden", "true" )
+				.attr( "aria-expanded", "false" )
+			.end()
+			.find( ".ui-state-active" ).not( ".ui-state-focus" )
+				.removeClass( "ui-state-active" );
+	},
+
+	_closeOnDocumentClick: function( event ) {
+		return !$( event.target ).closest( ".ui-menu" ).length;
+	},
+
+	_isDivider: function( item ) {
+
+		// Match hyphen, em dash, en dash
+		return !/[^\-\u2014\u2013\s]/.test( item.text() );
+	},
+
+	collapse: function( event ) {
+		var newItem = this.active &&
+			this.active.parent().closest( ".ui-menu-item", this.element );
+		if ( newItem && newItem.length ) {
+			this._close();
+			this.focus( event, newItem );
+		}
+	},
+
+	expand: function( event ) {
+		var newItem = this.active &&
+			this.active
+				.children( ".ui-menu " )
+				.find( this.options.items )
+				.first();
+
+		if ( newItem && newItem.length ) {
+			this._open( newItem.parent() );
+
+			// Delay so Firefox will not hide activedescendant change in expanding submenu from AT
+			this._delay(function() {
+				this.focus( event, newItem );
+			});
+		}
+	},
+
+	next: function( event ) {
+		this._move( "next", "first", event );
+	},
+
+	previous: function( event ) {
+		this._move( "prev", "last", event );
+	},
+
+	isFirstItem: function() {
+		return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
+	},
+
+	isLastItem: function() {
+		return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
+	},
+
+	_move: function( direction, filter, event ) {
+		var next;
+		if ( this.active ) {
+			if ( direction === "first" || direction === "last" ) {
+				next = this.active
+					[ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
+					.eq( -1 );
+			} else {
+				next = this.active
+					[ direction + "All" ]( ".ui-menu-item" )
+					.eq( 0 );
+			}
+		}
+		if ( !next || !next.length || !this.active ) {
+			next = this.activeMenu.find( this.options.items )[ filter ]();
+		}
+
+		this.focus( event, next );
+	},
+
+	nextPage: function( event ) {
+		var item, base, height;
+
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isLastItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.nextAll( ".ui-menu-item" ).each(function() {
+				item = $( this );
+				return item.offset().top - base - height < 0;
+			});
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items )
+				[ !this.active ? "first" : "last" ]() );
+		}
+	},
+
+	previousPage: function( event ) {
+		var item, base, height;
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isFirstItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.prevAll( ".ui-menu-item" ).each(function() {
+				item = $( this );
+				return item.offset().top - base + height > 0;
+			});
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items ).first() );
+		}
+	},
+
+	_hasScroll: function() {
+		return this.element.outerHeight() < this.element.prop( "scrollHeight" );
+	},
+
+	select: function( event ) {
+		// TODO: It should never be possible to not have an active item at this
+		// point, but the tests don't trigger mouseenter before click.
+		this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
+		var ui = { item: this.active };
+		if ( !this.active.has( ".ui-menu" ).length ) {
+			this.collapseAll( event, true );
+		}
+		this._trigger( "select", event, ui );
+	},
+
+	_filterMenuItems: function(character) {
+		var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ),
+			regex = new RegExp( "^" + escapedCharacter, "i" );
+
+		return this.activeMenu
+			.find( this.options.items )
+
+			// Only match on items, not dividers or other content (#10571)
+			.filter( ".ui-menu-item" )
+			.filter(function() {
+				return regex.test( $.trim( $( this ).text() ) );
+			});
+	}
+});
+
+
+/*!
+ * jQuery UI Autocomplete 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/autocomplete/
+ */
+
+
+$.widget( "ui.autocomplete", {
+	version: "1.11.4",
+	defaultElement: "<input>",
+	options: {
+		appendTo: null,
+		autoFocus: false,
+		delay: 300,
+		minLength: 1,
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		source: null,
+
+		// callbacks
+		change: null,
+		close: null,
+		focus: null,
+		open: null,
+		response: null,
+		search: null,
+		select: null
+	},
+
+	requestIndex: 0,
+	pending: 0,
+
+	_create: function() {
+		// Some browsers only repeat keydown events, not keypress events,
+		// so we use the suppressKeyPress flag to determine if we've already
+		// handled the keydown event. #7269
+		// Unfortunately the code for & in keypress is the same as the up arrow,
+		// so we use the suppressKeyPressRepeat flag to avoid handling keypress
+		// events when we know the keydown event was used to modify the
+		// search term. #7799
+		var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
+			nodeName = this.element[ 0 ].nodeName.toLowerCase(),
+			isTextarea = nodeName === "textarea",
+			isInput = nodeName === "input";
+
+		this.isMultiLine =
+			// Textareas are always multi-line
+			isTextarea ? true :
+			// Inputs are always single-line, even if inside a contentEditable element
+			// IE also treats inputs as contentEditable
+			isInput ? false :
+			// All other element types are determined by whether or not they're contentEditable
+			this.element.prop( "isContentEditable" );
+
+		this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];
+		this.isNewMenu = true;
+
+		this.element
+			.addClass( "ui-autocomplete-input" )
+			.attr( "autocomplete", "off" );
+
+		this._on( this.element, {
+			keydown: function( event ) {
+				if ( this.element.prop( "readOnly" ) ) {
+					suppressKeyPress = true;
+					suppressInput = true;
+					suppressKeyPressRepeat = true;
+					return;
+				}
+
+				suppressKeyPress = false;
+				suppressInput = false;
+				suppressKeyPressRepeat = false;
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					suppressKeyPress = true;
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					suppressKeyPress = true;
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					suppressKeyPress = true;
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					suppressKeyPress = true;
+					this._keyEvent( "next", event );
+					break;
+				case keyCode.ENTER:
+					// when menu is open and has focus
+					if ( this.menu.active ) {
+						// #6055 - Opera still allows the keypress to occur
+						// which causes forms to submit
+						suppressKeyPress = true;
+						event.preventDefault();
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.TAB:
+					if ( this.menu.active ) {
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.ESCAPE:
+					if ( this.menu.element.is( ":visible" ) ) {
+						if ( !this.isMultiLine ) {
+							this._value( this.term );
+						}
+						this.close( event );
+						// Different browsers have different default behavior for escape
+						// Single press can mean undo or clear
+						// Double press in IE means clear the whole form
+						event.preventDefault();
+					}
+					break;
+				default:
+					suppressKeyPressRepeat = true;
+					// search timeout should be triggered before the input value is changed
+					this._searchTimeout( event );
+					break;
+				}
+			},
+			keypress: function( event ) {
+				if ( suppressKeyPress ) {
+					suppressKeyPress = false;
+					if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+						event.preventDefault();
+					}
+					return;
+				}
+				if ( suppressKeyPressRepeat ) {
+					return;
+				}
+
+				// replicate some key handlers to allow them to repeat in Firefox and Opera
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					this._keyEvent( "next", event );
+					break;
+				}
+			},
+			input: function( event ) {
+				if ( suppressInput ) {
+					suppressInput = false;
+					event.preventDefault();
+					return;
+				}
+				this._searchTimeout( event );
+			},
+			focus: function() {
+				this.selectedItem = null;
+				this.previous = this._value();
+			},
+			blur: function( event ) {
+				if ( this.cancelBlur ) {
+					delete this.cancelBlur;
+					return;
+				}
+
+				clearTimeout( this.searching );
+				this.close( event );
+				this._change( event );
+			}
+		});
+
+		this._initSource();
+		this.menu = $( "<ul>" )
+			.addClass( "ui-autocomplete ui-front" )
+			.appendTo( this._appendTo() )
+			.menu({
+				// disable ARIA support, the live region takes care of that
+				role: null
+			})
+			.hide()
+			.menu( "instance" );
+
+		this._on( this.menu.element, {
+			mousedown: function( event ) {
+				// prevent moving focus out of the text field
+				event.preventDefault();
+
+				// IE doesn't prevent moving focus even with event.preventDefault()
+				// so we set a flag to know when we should ignore the blur event
+				this.cancelBlur = true;
+				this._delay(function() {
+					delete this.cancelBlur;
+				});
+
+				// clicking on the scrollbar causes focus to shift to the body
+				// but we can't detect a mouseup or a click immediately afterward
+				// so we have to track the next mousedown and close the menu if
+				// the user clicks somewhere outside of the autocomplete
+				var menuElement = this.menu.element[ 0 ];
+				if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
+					this._delay(function() {
+						var that = this;
+						this.document.one( "mousedown", function( event ) {
+							if ( event.target !== that.element[ 0 ] &&
+									event.target !== menuElement &&
+									!$.contains( menuElement, event.target ) ) {
+								that.close();
+							}
+						});
+					});
+				}
+			},
+			menufocus: function( event, ui ) {
+				var label, item;
+				// support: Firefox
+				// Prevent accidental activation of menu items in Firefox (#7024 #9118)
+				if ( this.isNewMenu ) {
+					this.isNewMenu = false;
+					if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {
+						this.menu.blur();
+
+						this.document.one( "mousemove", function() {
+							$( event.target ).trigger( event.originalEvent );
+						});
+
+						return;
+					}
+				}
+
+				item = ui.item.data( "ui-autocomplete-item" );
+				if ( false !== this._trigger( "focus", event, { item: item } ) ) {
+					// use value to match what will end up in the input, if it was a key event
+					if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {
+						this._value( item.value );
+					}
+				}
+
+				// Announce the value in the liveRegion
+				label = ui.item.attr( "aria-label" ) || item.value;
+				if ( label && $.trim( label ).length ) {
+					this.liveRegion.children().hide();
+					$( "<div>" ).text( label ).appendTo( this.liveRegion );
+				}
+			},
+			menuselect: function( event, ui ) {
+				var item = ui.item.data( "ui-autocomplete-item" ),
+					previous = this.previous;
+
+				// only trigger when focus was lost (click on menu)
+				if ( this.element[ 0 ] !== this.document[ 0 ].activeElement ) {
+					this.element.focus();
+					this.previous = previous;
+					// #6109 - IE triggers two focus events and the second
+					// is asynchronous, so we need to reset the previous
+					// term synchronously and asynchronously :-(
+					this._delay(function() {
+						this.previous = previous;
+						this.selectedItem = item;
+					});
+				}
+
+				if ( false !== this._trigger( "select", event, { item: item } ) ) {
+					this._value( item.value );
+				}
+				// reset the term after the select event
+				// this allows custom select handling to work properly
+				this.term = this._value();
+
+				this.close( event );
+				this.selectedItem = item;
+			}
+		});
+
+		this.liveRegion = $( "<span>", {
+				role: "status",
+				"aria-live": "assertive",
+				"aria-relevant": "additions"
+			})
+			.addClass( "ui-helper-hidden-accessible" )
+			.appendTo( this.document[ 0 ].body );
+
+		// turning off autocomplete prevents the browser from remembering the
+		// value when navigating through history, so we re-enable autocomplete
+		// if the page is unloaded before the widget is destroyed. #7790
+		this._on( this.window, {
+			beforeunload: function() {
+				this.element.removeAttr( "autocomplete" );
+			}
+		});
+	},
+
+	_destroy: function() {
+		clearTimeout( this.searching );
+		this.element
+			.removeClass( "ui-autocomplete-input" )
+			.removeAttr( "autocomplete" );
+		this.menu.element.remove();
+		this.liveRegion.remove();
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "source" ) {
+			this._initSource();
+		}
+		if ( key === "appendTo" ) {
+			this.menu.element.appendTo( this._appendTo() );
+		}
+		if ( key === "disabled" && value && this.xhr ) {
+			this.xhr.abort();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+
+		if ( element ) {
+			element = element.jquery || element.nodeType ?
+				$( element ) :
+				this.document.find( element ).eq( 0 );
+		}
+
+		if ( !element || !element[ 0 ] ) {
+			element = this.element.closest( ".ui-front" );
+		}
+
+		if ( !element.length ) {
+			element = this.document[ 0 ].body;
+		}
+
+		return element;
+	},
+
+	_initSource: function() {
+		var array, url,
+			that = this;
+		if ( $.isArray( this.options.source ) ) {
+			array = this.options.source;
+			this.source = function( request, response ) {
+				response( $.ui.autocomplete.filter( array, request.term ) );
+			};
+		} else if ( typeof this.options.source === "string" ) {
+			url = this.options.source;
+			this.source = function( request, response ) {
+				if ( that.xhr ) {
+					that.xhr.abort();
+				}
+				that.xhr = $.ajax({
+					url: url,
+					data: request,
+					dataType: "json",
+					success: function( data ) {
+						response( data );
+					},
+					error: function() {
+						response([]);
+					}
+				});
+			};
+		} else {
+			this.source = this.options.source;
+		}
+	},
+
+	_searchTimeout: function( event ) {
+		clearTimeout( this.searching );
+		this.searching = this._delay(function() {
+
+			// Search if the value has changed, or if the user retypes the same value (see #7434)
+			var equalValues = this.term === this._value(),
+				menuVisible = this.menu.element.is( ":visible" ),
+				modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
+
+			if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {
+				this.selectedItem = null;
+				this.search( null, event );
+			}
+		}, this.options.delay );
+	},
+
+	search: function( value, event ) {
+		value = value != null ? value : this._value();
+
+		// always save the actual value, not the one passed as an argument
+		this.term = this._value();
+
+		if ( value.length < this.options.minLength ) {
+			return this.close( event );
+		}
+
+		if ( this._trigger( "search", event ) === false ) {
+			return;
+		}
+
+		return this._search( value );
+	},
+
+	_search: function( value ) {
+		this.pending++;
+		this.element.addClass( "ui-autocomplete-loading" );
+		this.cancelSearch = false;
+
+		this.source( { term: value }, this._response() );
+	},
+
+	_response: function() {
+		var index = ++this.requestIndex;
+
+		return $.proxy(function( content ) {
+			if ( index === this.requestIndex ) {
+				this.__response( content );
+			}
+
+			this.pending--;
+			if ( !this.pending ) {
+				this.element.removeClass( "ui-autocomplete-loading" );
+			}
+		}, this );
+	},
+
+	__response: function( content ) {
+		if ( content ) {
+			content = this._normalize( content );
+		}
+		this._trigger( "response", null, { content: content } );
+		if ( !this.options.disabled && content && content.length && !this.cancelSearch ) {
+			this._suggest( content );
+			this._trigger( "open" );
+		} else {
+			// use ._close() instead of .close() so we don't cancel future searches
+			this._close();
+		}
+	},
+
+	close: function( event ) {
+		this.cancelSearch = true;
+		this._close( event );
+	},
+
+	_close: function( event ) {
+		if ( this.menu.element.is( ":visible" ) ) {
+			this.menu.element.hide();
+			this.menu.blur();
+			this.isNewMenu = true;
+			this._trigger( "close", event );
+		}
+	},
+
+	_change: function( event ) {
+		if ( this.previous !== this._value() ) {
+			this._trigger( "change", event, { item: this.selectedItem } );
+		}
+	},
+
+	_normalize: function( items ) {
+		// assume all items have the right format when the first item is complete
+		if ( items.length && items[ 0 ].label && items[ 0 ].value ) {
+			return items;
+		}
+		return $.map( items, function( item ) {
+			if ( typeof item === "string" ) {
+				return {
+					label: item,
+					value: item
+				};
+			}
+			return $.extend( {}, item, {
+				label: item.label || item.value,
+				value: item.value || item.label
+			});
+		});
+	},
+
+	_suggest: function( items ) {
+		var ul = this.menu.element.empty();
+		this._renderMenu( ul, items );
+		this.isNewMenu = true;
+		this.menu.refresh();
+
+		// size and position menu
+		ul.show();
+		this._resizeMenu();
+		ul.position( $.extend({
+			of: this.element
+		}, this.options.position ) );
+
+		if ( this.options.autoFocus ) {
+			this.menu.next();
+		}
+	},
+
+	_resizeMenu: function() {
+		var ul = this.menu.element;
+		ul.outerWidth( Math.max(
+			// Firefox wraps long text (possibly a rounding bug)
+			// so we add 1px to avoid the wrapping (#7513)
+			ul.width( "" ).outerWidth() + 1,
+			this.element.outerWidth()
+		) );
+	},
+
+	_renderMenu: function( ul, items ) {
+		var that = this;
+		$.each( items, function( index, item ) {
+			that._renderItemData( ul, item );
+		});
+	},
+
+	_renderItemData: function( ul, item ) {
+		return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
+	},
+
+	_renderItem: function( ul, item ) {
+		return $( "<li>" ).text( item.label ).appendTo( ul );
+	},
+
+	_move: function( direction, event ) {
+		if ( !this.menu.element.is( ":visible" ) ) {
+			this.search( null, event );
+			return;
+		}
+		if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
+				this.menu.isLastItem() && /^next/.test( direction ) ) {
+
+			if ( !this.isMultiLine ) {
+				this._value( this.term );
+			}
+
+			this.menu.blur();
+			return;
+		}
+		this.menu[ direction ]( event );
+	},
+
+	widget: function() {
+		return this.menu.element;
+	},
+
+	_value: function() {
+		return this.valueMethod.apply( this.element, arguments );
+	},
+
+	_keyEvent: function( keyEvent, event ) {
+		if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+			this._move( keyEvent, event );
+
+			// prevents moving cursor to beginning/end of the text field in some browsers
+			event.preventDefault();
+		}
+	}
+});
+
+$.extend( $.ui.autocomplete, {
+	escapeRegex: function( value ) {
+		return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
+	},
+	filter: function( array, term ) {
+		var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
+		return $.grep( array, function( value ) {
+			return matcher.test( value.label || value.value || value );
+		});
+	}
+});
+
+// live region extension, adding a `messages` option
+// NOTE: This is an experimental API. We are still investigating
+// a full solution for string manipulation and internationalization.
+$.widget( "ui.autocomplete", $.ui.autocomplete, {
+	options: {
+		messages: {
+			noResults: "No search results.",
+			results: function( amount ) {
+				return amount + ( amount > 1 ? " results are" : " result is" ) +
+					" available, use up and down arrow keys to navigate.";
+			}
+		}
+	},
+
+	__response: function( content ) {
+		var message;
+		this._superApply( arguments );
+		if ( this.options.disabled || this.cancelSearch ) {
+			return;
+		}
+		if ( content && content.length ) {
+			message = this.options.messages.results( content.length );
+		} else {
+			message = this.options.messages.noResults;
+		}
+		this.liveRegion.children().hide();
+		$( "<div>" ).text( message ).appendTo( this.liveRegion );
+	}
+});
+
+var autocomplete = $.ui.autocomplete;
+
+
+
+}));
diff --git a/apidocs/1.20/jquery/jquery-ui.min.css b/apidocs/1.20/jquery/jquery-ui.min.css
new file mode 100644
index 00000000..94816ca0
--- /dev/null
+++ b/apidocs/1.20/jquery/jquery-ui.min.css
@@ -0,0 +1,7 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Includes: core.css, autocomplete.css, menu.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
diff --git a/apidocs/1.20/jquery/jquery-ui.min.js b/apidocs/1.20/jquery/jquery-ui.min.js
new file mode 100644
index 00000000..e1ae5f60
--- /dev/null
+++ b/apidocs/1.20/jquery/jquery-ui.min.js
@@ -0,0 +1,7 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Includes: core.js, widget.js, position.js, autocomplete.js, menu.js
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,a){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var n,a=e.ui[t].prototype;for(n in s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var s=0,n=Array.prototype.slice;e.cleanData=function(t){return function(i){var s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var n,a,o,r,h={},l=t.split(".")[0];return t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return e.isFunction(s)?(h[t]=function(){var e=function(){return i.prototype[t].apply(this,arguments)},n=function(e){return i.prototype[t].apply(this,e)};return function(){var t,i=this._super,a=this._superApply;return this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void 0):(h[t]=s,void 0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var i,s,a=n.call(arguments,1),o=0,r=a.length;r>o;o++)for(i in a[o])s=a[o][i],a[o].hasOwnProperty(i)&&void 0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return t},e.widget.bridge=function(t,i){var s=i.prototype.widgetFullName||t;e.fn[t]=function(a){var o="string"==typeof a,r=n.call(arguments,1),h=this;return o?this.each(function(){var i,n=e.data(this,s);return"instance"===a?(h=n,!1):n?e.isFunction(n[a])&&"_"!==a.charAt(0)?(i=n[a].apply(n,r),i!==n&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):e.error("no such method '"+a+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; "+"attempted to call method '"+a+"'")}):(r.length&&(a=e.widget.extend.apply(null,[a].concat(r))),this.each(function(){var t=e.data(this,s);t?(t.option(a||{}),t._init&&t._init()):e.data(this,s,new i(a,this))})),h}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=s++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var s,n,a,o=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=i}return this._setOptions(o),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(t,i,s){var n,a=this;"boolean"!=typeof t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function r(){return t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n in a)n in i||(i[n]=a[n]);return this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof n?i:n.effect||i:t;n=n||{},"number"==typeof n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget,function(){function t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,i,s=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),a=s.children()[0];return e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth,a="scroll"===s||"auto"===s&&t.height<t.element[0].scrollHeight;return{width:a?e.position.scrollbarWidth():0,height:n?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var i=e(t||window),s=e.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s||n?i.width():i.outerWidth(),height:s||n?i.height():i.outerHeight()}}},e.fn.position=function(n){if(!n||!n.of)return f.apply(this,arguments);n=e.extend({},n);var p,m,g,v,y,b,_=e(n.of),x=e.position.getWithinInfo(n.within),w=e.position.getScrollInfo(x),k=(n.collision||"flip").split(" "),T={};return b=s(_),_[0].preventDefault&&(n.at="left top"),m=b.width,g=b.height,v=b.offset,y=e.extend({},v),e.each(["my","at"],function(){var e,t,i=(n[this]||"").split(" ");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):u.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=u.test(i[1])?i[1]:"center",e=d.exec(i[0]),t=d.exec(i[1]),T[this]=[e?e[0]:0,t?t[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===n.at[0]?y.left+=m:"center"===n.at[0]&&(y.left+=m/2),"bottom"===n.at[1]?y.top+=g:"center"===n.at[1]&&(y.top+=g/2),p=t(T.at,m,g),y.left+=p[0],y.top+=p[1],this.each(function(){var s,l,u=e(this),d=u.outerWidth(),c=u.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),D=d+f+i(this,"marginRight")+w.width,S=c+b+i(this,"marginBottom")+w.height,N=e.extend({},y),M=t(T.my,u.outerWidth(),u.outerHeight());"right"===n.my[0]?N.left-=d:"center"===n.my[0]&&(N.left-=d/2),"bottom"===n.my[1]?N.top-=c:"center"===n.my[1]&&(N.top-=c/2),N.left+=M[0],N.top+=M[1],a||(N.left=h(N.left),N.top=h(N.top)),s={marginLeft:f,marginTop:b},e.each(["left","top"],function(t,i){e.ui.position[k[t]]&&e.ui.position[k[t]][i](N,{targetWidth:m,targetHeight:g,elemWidth:d,elemHeight:c,collisionPosition:s,collisionWidth:D,collisionHeight:S,offset:[p[0]+M[0],p[1]+M[1]],my:n.my,at:n.at,within:x,elem:u})}),n.using&&(l=function(e){var t=v.left-N.left,i=t+m-d,s=v.top-N.top,a=s+g-c,h={target:{element:_,left:v.left,top:v.top,width:m,height:g},element:{element:u,left:N.left,top:N.top,width:d,height:c},horizontal:0>i?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(N,{using:l}))})},e.ui.position={fit:{left:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position: absolute; left: 10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var i=e(t.currentTarget);i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){var i,s,n,a,o=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:o=!1,s=this.previousFilter||"",n=String.fromCharCode(t.keyCode),a=!1,clearTimeout(this.filterTimer),n===s?a=!0:n=s+n,i=this._filterMenuItems(n),i=a&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(t.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(t,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(e):this.select(e))},refresh:function(){var t,i,s=this,n=this.options.icons.submenu,a=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),i=t.parent(),s=e("<span>").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);i.attr("aria-haspopup","true").prepend(s),t.attr("aria-labelledby",i.attr("id"))}),t=a.add(this.element),i=t.find(this.options.items),i.not(".ui-menu-item").each(function(){var t=e(this);s._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){"icons"===e&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this._super(e,t)},focus:function(e,t){var i,s;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=t.children(".ui-menu"),i.length&&e&&/^mouse/.test(e.type)&&this._startOpening(i),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,n=t.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=t.outerHeight(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active}))},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var i=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(t,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(t),this.activeMenu=s},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,i){var s;this.active&&(s="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[t]()),this.focus(i,s)},nextPage:function(t){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=e(this),0>i.offset().top-s-n}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(t),void 0)},previousPage:function(t){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=e(this),i.offset().top-s+n>0}),this.focus(t,i)):this.focus(t,this.activeMenu.find(this.options.items).first())),void 0):(this.next(t),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,i)},_filterMenuItems:function(t){var i=t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(e.trim(e(this).text()))})}}),e.widget("ui.autocomplete",{version:"1.11.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,void 0;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),void 0):(this._searchTimeout(e),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(e),this._change(e),void 0)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(s){s.target===t.element[0]||s.target===i||e.contains(i,s.target)||t.close()})})},menufocus:function(t,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:n})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&e.trim(s).length&&(this.liveRegion.children().hide(),e("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,s=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(i,s){s(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,n){s.xhr&&s.xhr.abort(),s.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){n(e)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),i=this.menu.element.is(":visible"),s=e.altKey||e.ctrlKey||e.metaKey||e.shiftKey;(!t||t&&!i&&!s)&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):this._trigger("search",t)!==!1?this._search(e):void 0},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var t=++this.requestIndex;return e.proxy(function(e){t===this.requestIndex&&this.__response(e),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return"string"==typeof t?{label:t,value:t}:e.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var i=this.menu.element.empty();this._renderMenu(i,t),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()
+},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,i){var s=this;e.each(i,function(e,i){s._renderItemData(t,i)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,i){return e("<li>").text(i.label).appendTo(t)},_move:function(e,t){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[e](t),void 0):(this.search(null,t),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,i){var s=RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,function(e){return s.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.children().hide(),e("<div>").text(i).appendTo(this.liveRegion))}}),e.ui.autocomplete});
diff --git a/apidocs/1.20/jquery/jquery-ui.structure.css b/apidocs/1.20/jquery/jquery-ui.structure.css
new file mode 100644
index 00000000..1a53ab4a
--- /dev/null
+++ b/apidocs/1.20/jquery/jquery-ui.structure.css
@@ -0,0 +1,152 @@
+/*!
+ * jQuery UI CSS Framework 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/theming/
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-clearfix {
+	min-height: 0; /* support: IE7 */
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0); /* support: IE8 */
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+}
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	display: block;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-autocomplete {
+	position: absolute;
+	top: 0;
+	left: 0;
+	cursor: default;
+}
+.ui-menu {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+	display: block;
+	outline: none;
+}
+.ui-menu .ui-menu {
+	position: absolute;
+}
+.ui-menu .ui-menu-item {
+	position: relative;
+	margin: 0;
+	padding: 3px 1em 3px .4em;
+	cursor: pointer;
+	min-height: 0; /* support: IE7 */
+	/* support: IE10, see #8844 */
+	list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
+}
+.ui-menu .ui-menu-divider {
+	margin: 5px 0;
+	height: 0;
+	font-size: 0;
+	line-height: 0;
+	border-width: 1px 0 0 0;
+}
+.ui-menu .ui-state-focus,
+.ui-menu .ui-state-active {
+	margin: -1px;
+}
+
+/* icon support */
+.ui-menu-icons {
+	position: relative;
+}
+.ui-menu-icons .ui-menu-item {
+	padding-left: 2em;
+}
+
+/* left-aligned */
+.ui-menu .ui-icon {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	left: .2em;
+	margin: auto 0;
+}
+
+/* right-aligned */
+.ui-menu .ui-menu-icon {
+	left: auto;
+	right: 0;
+}
diff --git a/apidocs/1.20/jquery/jquery-ui.structure.min.css b/apidocs/1.20/jquery/jquery-ui.structure.min.css
new file mode 100644
index 00000000..7f29f9a0
--- /dev/null
+++ b/apidocs/1.20/jquery/jquery-ui.structure.min.css
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.11.4 - 2015-05-20
+* http://jqueryui.com
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}
diff --git a/apidocs/1.20/jquery/jszip-utils/dist/jszip-utils-ie.js b/apidocs/1.20/jquery/jszip-utils/dist/jszip-utils-ie.js
new file mode 100644
index 00000000..a74cc709
--- /dev/null
+++ b/apidocs/1.20/jquery/jszip-utils/dist/jszip-utils-ie.js
@@ -0,0 +1,56 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+;(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+var global=typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {};/* jshint evil: true, newcap: false */
+/* global IEBinaryToArray_ByteStr, IEBinaryToArray_ByteStr_Last */
+"use strict";
+
+// Adapted from http://stackoverflow.com/questions/1095102/how-do-i-load-binary-image-data-using-javascript-and-xmlhttprequest
+var IEBinaryToArray_ByteStr_Script =
+    "<!-- IEBinaryToArray_ByteStr -->\r\n"+
+    "<script type='text/vbscript'>\r\n"+
+    "Function IEBinaryToArray_ByteStr(Binary)\r\n"+
+    "   IEBinaryToArray_ByteStr = CStr(Binary)\r\n"+
+    "End Function\r\n"+
+    "Function IEBinaryToArray_ByteStr_Last(Binary)\r\n"+
+    "   Dim lastIndex\r\n"+
+    "   lastIndex = LenB(Binary)\r\n"+
+    "   if lastIndex mod 2 Then\r\n"+
+    "       IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n"+
+    "   Else\r\n"+
+    "       IEBinaryToArray_ByteStr_Last = "+'""'+"\r\n"+
+    "   End If\r\n"+
+    "End Function\r\n"+
+    "</script>\r\n";
+
+// inject VBScript
+document.write(IEBinaryToArray_ByteStr_Script);
+
+global.JSZipUtils._getBinaryFromXHR = function (xhr) {
+    var binary = xhr.responseBody;
+    var byteMapping = {};
+    for ( var i = 0; i < 256; i++ ) {
+        for ( var j = 0; j < 256; j++ ) {
+            byteMapping[ String.fromCharCode( i + (j << 8) ) ] =
+                String.fromCharCode(i) + String.fromCharCode(j);
+        }
+    }
+    var rawBytes = IEBinaryToArray_ByteStr(binary);
+    var lastChr = IEBinaryToArray_ByteStr_Last(binary);
+    return rawBytes.replace(/[\s\S]/g, function( match ) {
+        return byteMapping[match];
+    }) + lastChr;
+};
+
+// enforcing Stuk's coding style
+// vim: set shiftwidth=4 softtabstop=4:
+
+},{}]},{},[1])
+;
diff --git a/apidocs/1.20/jquery/jszip-utils/dist/jszip-utils-ie.min.js b/apidocs/1.20/jquery/jszip-utils/dist/jszip-utils-ie.min.js
new file mode 100644
index 00000000..93d8bc8e
--- /dev/null
+++ b/apidocs/1.20/jquery/jszip-utils/dist/jszip-utils-ie.min.js
@@ -0,0 +1,10 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(){var a="undefined"!=typeof self?self:"undefined"!=typeof window?window:{},b="<!-- IEBinaryToArray_ByteStr -->\r\n<script type='text/vbscript'>\r\nFunction IEBinaryToArray_ByteStr(Binary)\r\n   IEBinaryToArray_ByteStr = CStr(Binary)\r\nEnd Function\r\nFunction IEBinaryToArray_ByteStr_Last(Binary)\r\n   Dim lastIndex\r\n   lastIndex = LenB(Binary)\r\n   if lastIndex mod 2 Then\r\n       IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n   Else\r\n       IEBinaryToArray_ByteStr_Last = \"\"\r\n   End If\r\nEnd Function\r\n</script>\r\n";document.write(b),a.JSZipUtils._getBinaryFromXHR=function(a){for(var b=a.responseBody,c={},d=0;256>d;d++)for(var e=0;256>e;e++)c[String.fromCharCode(d+(e<<8))]=String.fromCharCode(d)+String.fromCharCode(e);var f=IEBinaryToArray_ByteStr(b),g=IEBinaryToArray_ByteStr_Last(b);return f.replace(/[\s\S]/g,function(a){return c[a]})+g}},{}]},{},[1]);
diff --git a/apidocs/1.20/jquery/jszip-utils/dist/jszip-utils.js b/apidocs/1.20/jquery/jszip-utils/dist/jszip-utils.js
new file mode 100644
index 00000000..775895ec
--- /dev/null
+++ b/apidocs/1.20/jquery/jszip-utils/dist/jszip-utils.js
@@ -0,0 +1,118 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSZipUtils=e():"undefined"!=typeof global?global.JSZipUtils=e():"undefined"!=typeof self&&(self.JSZipUtils=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+'use strict';
+
+var JSZipUtils = {};
+// just use the responseText with xhr1, response with xhr2.
+// The transformation doesn't throw away high-order byte (with responseText)
+// because JSZip handles that case. If not used with JSZip, you may need to
+// do it, see https://developer.mozilla.org/En/Using_XMLHttpRequest#Handling_binary_data
+JSZipUtils._getBinaryFromXHR = function (xhr) {
+    // for xhr.responseText, the 0xFF mask is applied by JSZip
+    return xhr.response || xhr.responseText;
+};
+
+// taken from jQuery
+function createStandardXHR() {
+    try {
+        return new window.XMLHttpRequest();
+    } catch( e ) {}
+}
+
+function createActiveXHR() {
+    try {
+        return new window.ActiveXObject("Microsoft.XMLHTTP");
+    } catch( e ) {}
+}
+
+// Create the request object
+var createXHR = window.ActiveXObject ?
+    /* Microsoft failed to properly
+     * implement the XMLHttpRequest in IE7 (can't request local files),
+     * so we use the ActiveXObject when it is available
+     * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
+     * we need a fallback.
+     */
+    function() {
+    return createStandardXHR() || createActiveXHR();
+} :
+    // For all other browsers, use the standard XMLHttpRequest object
+    createStandardXHR;
+
+
+
+JSZipUtils.getBinaryContent = function(path, callback) {
+    /*
+     * Here is the tricky part : getting the data.
+     * In firefox/chrome/opera/... setting the mimeType to 'text/plain; charset=x-user-defined'
+     * is enough, the result is in the standard xhr.responseText.
+     * cf https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest#Receiving_binary_data_in_older_browsers
+     * In IE <= 9, we must use (the IE only) attribute responseBody
+     * (for binary data, its content is different from responseText).
+     * In IE 10, the 'charset=x-user-defined' trick doesn't work, only the
+     * responseType will work :
+     * http://msdn.microsoft.com/en-us/library/ie/hh673569%28v=vs.85%29.aspx#Binary_Object_upload_and_download
+     *
+     * I'd like to use jQuery to avoid this XHR madness, but it doesn't support
+     * the responseType attribute : http://bugs.jquery.com/ticket/11461
+     */
+    try {
+
+        var xhr = createXHR();
+
+        xhr.open('GET', path, true);
+
+        // recent browsers
+        if ("responseType" in xhr) {
+            xhr.responseType = "arraybuffer";
+        }
+
+        // older browser
+        if(xhr.overrideMimeType) {
+            xhr.overrideMimeType("text/plain; charset=x-user-defined");
+        }
+
+        xhr.onreadystatechange = function(evt) {
+            var file, err;
+            // use `xhr` and not `this`... thanks IE
+            if (xhr.readyState === 4) {
+                if (xhr.status === 200 || xhr.status === 0) {
+                    file = null;
+                    err = null;
+                    try {
+                        file = JSZipUtils._getBinaryFromXHR(xhr);
+                    } catch(e) {
+                        err = new Error(e);
+                    }
+                    callback(err, file);
+                } else {
+                    callback(new Error("Ajax error for " + path + " : " + this.status + " " + this.statusText), null);
+                }
+            }
+        };
+
+        xhr.send();
+
+    } catch (e) {
+        callback(new Error(e), null);
+    }
+};
+
+// export
+module.exports = JSZipUtils;
+
+// enforcing Stuk's coding style
+// vim: set shiftwidth=4 softtabstop=4:
+
+},{}]},{},[1])
+(1)
+});
+;
diff --git a/apidocs/1.20/jquery/jszip-utils/dist/jszip-utils.min.js b/apidocs/1.20/jquery/jszip-utils/dist/jszip-utils.min.js
new file mode 100644
index 00000000..78c7f5e5
--- /dev/null
+++ b/apidocs/1.20/jquery/jszip-utils/dist/jszip-utils.min.js
@@ -0,0 +1,10 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.JSZipUtils=a():"undefined"!=typeof global?global.JSZipUtils=a():"undefined"!=typeof self&&(self.JSZipUtils=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b){"use strict";function c(){try{return new window.XMLHttpRequest}catch(a){}}function d(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}}var e={};e._getBinaryFromXHR=function(a){return a.response||a.responseText};var f=window.ActiveXObject?function(){return c()||d()}:c;e.getBinaryContent=function(a,b){try{var c=f();c.open("GET",a,!0),"responseType"in c&&(c.responseType="arraybuffer"),c.overrideMimeType&&c.overrideMimeType("text/plain; charset=x-user-defined"),c.onreadystatechange=function(){var d,f;if(4===c.readyState)if(200===c.status||0===c.status){d=null,f=null;try{d=e._getBinaryFromXHR(c)}catch(g){f=new Error(g)}b(f,d)}else b(new Error("Ajax error for "+a+" : "+this.status+" "+this.statusText),null)},c.send()}catch(d){b(new Error(d),null)}},b.exports=e},{}]},{},[1])(1)});
diff --git a/apidocs/1.20/jquery/jszip/dist/jszip.js b/apidocs/1.20/jquery/jszip/dist/jszip.js
new file mode 100644
index 00000000..02804cdf
--- /dev/null
+++ b/apidocs/1.20/jquery/jszip/dist/jszip.js
@@ -0,0 +1,11623 @@
+/*!
+
+JSZip v3.1.5 - A JavaScript class for generating and reading zip files
+<http://stuartk.com/jszip>
+
+(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.
+
+JSZip uses the library pako released under the MIT license :
+https://github.com/nodeca/pako/blob/master/LICENSE
+*/
+
+(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.JSZip = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+'use strict';
+var utils = require('./utils');
+var support = require('./support');
+// private property
+var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+
+
+// public method for encoding
+exports.encode = function(input) {
+    var output = [];
+    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
+    var i = 0, len = input.length, remainingBytes = len;
+
+    var isArray = utils.getTypeOf(input) !== "string";
+    while (i < input.length) {
+        remainingBytes = len - i;
+
+        if (!isArray) {
+            chr1 = input.charCodeAt(i++);
+            chr2 = i < len ? input.charCodeAt(i++) : 0;
+            chr3 = i < len ? input.charCodeAt(i++) : 0;
+        } else {
+            chr1 = input[i++];
+            chr2 = i < len ? input[i++] : 0;
+            chr3 = i < len ? input[i++] : 0;
+        }
+
+        enc1 = chr1 >> 2;
+        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
+        enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64;
+        enc4 = remainingBytes > 2 ? (chr3 & 63) : 64;
+
+        output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4));
+
+    }
+
+    return output.join("");
+};
+
+// public method for decoding
+exports.decode = function(input) {
+    var chr1, chr2, chr3;
+    var enc1, enc2, enc3, enc4;
+    var i = 0, resultIndex = 0;
+
+    var dataUrlPrefix = "data:";
+
+    if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) {
+        // This is a common error: people give a data url
+        // (data:image/png;base64,iVBOR...) with a {base64: true} and
+        // wonders why things don't work.
+        // We can detect that the string input looks like a data url but we
+        // *can't* be sure it is one: removing everything up to the comma would
+        // be too dangerous.
+        throw new Error("Invalid base64 input, it looks like a data url.");
+    }
+
+    input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
+
+    var totalLength = input.length * 3 / 4;
+    if(input.charAt(input.length - 1) === _keyStr.charAt(64)) {
+        totalLength--;
+    }
+    if(input.charAt(input.length - 2) === _keyStr.charAt(64)) {
+        totalLength--;
+    }
+    if (totalLength % 1 !== 0) {
+        // totalLength is not an integer, the length does not match a valid
+        // base64 content. That can happen if:
+        // - the input is not a base64 content
+        // - the input is *almost* a base64 content, with a extra chars at the
+        //   beginning or at the end
+        // - the input uses a base64 variant (base64url for example)
+        throw new Error("Invalid base64 input, bad content length.");
+    }
+    var output;
+    if (support.uint8array) {
+        output = new Uint8Array(totalLength|0);
+    } else {
+        output = new Array(totalLength|0);
+    }
+
+    while (i < input.length) {
+
+        enc1 = _keyStr.indexOf(input.charAt(i++));
+        enc2 = _keyStr.indexOf(input.charAt(i++));
+        enc3 = _keyStr.indexOf(input.charAt(i++));
+        enc4 = _keyStr.indexOf(input.charAt(i++));
+
+        chr1 = (enc1 << 2) | (enc2 >> 4);
+        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
+        chr3 = ((enc3 & 3) << 6) | enc4;
+
+        output[resultIndex++] = chr1;
+
+        if (enc3 !== 64) {
+            output[resultIndex++] = chr2;
+        }
+        if (enc4 !== 64) {
+            output[resultIndex++] = chr3;
+        }
+
+    }
+
+    return output;
+};
+
+},{"./support":30,"./utils":32}],2:[function(require,module,exports){
+'use strict';
+
+var external = require("./external");
+var DataWorker = require('./stream/DataWorker');
+var DataLengthProbe = require('./stream/DataLengthProbe');
+var Crc32Probe = require('./stream/Crc32Probe');
+var DataLengthProbe = require('./stream/DataLengthProbe');
+
+/**
+ * Represent a compressed object, with everything needed to decompress it.
+ * @constructor
+ * @param {number} compressedSize the size of the data compressed.
+ * @param {number} uncompressedSize the size of the data after decompression.
+ * @param {number} crc32 the crc32 of the decompressed file.
+ * @param {object} compression the type of compression, see lib/compressions.js.
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the compressed data.
+ */
+function CompressedObject(compressedSize, uncompressedSize, crc32, compression, data) {
+    this.compressedSize = compressedSize;
+    this.uncompressedSize = uncompressedSize;
+    this.crc32 = crc32;
+    this.compression = compression;
+    this.compressedContent = data;
+}
+
+CompressedObject.prototype = {
+    /**
+     * Create a worker to get the uncompressed content.
+     * @return {GenericWorker} the worker.
+     */
+    getContentWorker : function () {
+        var worker = new DataWorker(external.Promise.resolve(this.compressedContent))
+        .pipe(this.compression.uncompressWorker())
+        .pipe(new DataLengthProbe("data_length"));
+
+        var that = this;
+        worker.on("end", function () {
+            if(this.streamInfo['data_length'] !== that.uncompressedSize) {
+                throw new Error("Bug : uncompressed data size mismatch");
+            }
+        });
+        return worker;
+    },
+    /**
+     * Create a worker to get the compressed content.
+     * @return {GenericWorker} the worker.
+     */
+    getCompressedWorker : function () {
+        return new DataWorker(external.Promise.resolve(this.compressedContent))
+        .withStreamInfo("compressedSize", this.compressedSize)
+        .withStreamInfo("uncompressedSize", this.uncompressedSize)
+        .withStreamInfo("crc32", this.crc32)
+        .withStreamInfo("compression", this.compression)
+        ;
+    }
+};
+
+/**
+ * Chain the given worker with other workers to compress the content with the
+ * given compresion.
+ * @param {GenericWorker} uncompressedWorker the worker to pipe.
+ * @param {Object} compression the compression object.
+ * @param {Object} compressionOptions the options to use when compressing.
+ * @return {GenericWorker} the new worker compressing the content.
+ */
+CompressedObject.createWorkerFrom = function (uncompressedWorker, compression, compressionOptions) {
+    return uncompressedWorker
+    .pipe(new Crc32Probe())
+    .pipe(new DataLengthProbe("uncompressedSize"))
+    .pipe(compression.compressWorker(compressionOptions))
+    .pipe(new DataLengthProbe("compressedSize"))
+    .withStreamInfo("compression", compression);
+};
+
+module.exports = CompressedObject;
+
+},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(require,module,exports){
+'use strict';
+
+var GenericWorker = require("./stream/GenericWorker");
+
+exports.STORE = {
+    magic: "\x00\x00",
+    compressWorker : function (compressionOptions) {
+        return new GenericWorker("STORE compression");
+    },
+    uncompressWorker : function () {
+        return new GenericWorker("STORE decompression");
+    }
+};
+exports.DEFLATE = require('./flate');
+
+},{"./flate":7,"./stream/GenericWorker":28}],4:[function(require,module,exports){
+'use strict';
+
+var utils = require('./utils');
+
+/**
+ * The following functions come from pako, from pako/lib/zlib/crc32.js
+ * released under the MIT license, see pako https://github.com/nodeca/pako/
+ */
+
+// Use ordinary array, since untyped makes no boost here
+function makeTable() {
+    var c, table = [];
+
+    for(var n =0; n < 256; n++){
+        c = n;
+        for(var k =0; k < 8; k++){
+            c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
+        }
+        table[n] = c;
+    }
+
+    return table;
+}
+
+// Create table on load. Just 255 signed longs. Not a problem.
+var crcTable = makeTable();
+
+
+function crc32(crc, buf, len, pos) {
+    var t = crcTable, end = pos + len;
+
+    crc = crc ^ (-1);
+
+    for (var i = pos; i < end; i++ ) {
+        crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];
+    }
+
+    return (crc ^ (-1)); // >>> 0;
+}
+
+// That's all for the pako functions.
+
+/**
+ * Compute the crc32 of a string.
+ * This is almost the same as the function crc32, but for strings. Using the
+ * same function for the two use cases leads to horrible performances.
+ * @param {Number} crc the starting value of the crc.
+ * @param {String} str the string to use.
+ * @param {Number} len the length of the string.
+ * @param {Number} pos the starting position for the crc32 computation.
+ * @return {Number} the computed crc32.
+ */
+function crc32str(crc, str, len, pos) {
+    var t = crcTable, end = pos + len;
+
+    crc = crc ^ (-1);
+
+    for (var i = pos; i < end; i++ ) {
+        crc = (crc >>> 8) ^ t[(crc ^ str.charCodeAt(i)) & 0xFF];
+    }
+
+    return (crc ^ (-1)); // >>> 0;
+}
+
+module.exports = function crc32wrapper(input, crc) {
+    if (typeof input === "undefined" || !input.length) {
+        return 0;
+    }
+
+    var isArray = utils.getTypeOf(input) !== "string";
+
+    if(isArray) {
+        return crc32(crc|0, input, input.length, 0);
+    } else {
+        return crc32str(crc|0, input, input.length, 0);
+    }
+};
+
+},{"./utils":32}],5:[function(require,module,exports){
+'use strict';
+exports.base64 = false;
+exports.binary = false;
+exports.dir = false;
+exports.createFolders = true;
+exports.date = null;
+exports.compression = null;
+exports.compressionOptions = null;
+exports.comment = null;
+exports.unixPermissions = null;
+exports.dosPermissions = null;
+
+},{}],6:[function(require,module,exports){
+/* global Promise */
+'use strict';
+
+// load the global object first:
+// - it should be better integrated in the system (unhandledRejection in node)
+// - the environment may have a custom Promise implementation (see zone.js)
+var ES6Promise = null;
+if (typeof Promise !== "undefined") {
+    ES6Promise = Promise;
+} else {
+    ES6Promise = require("lie");
+}
+
+/**
+ * Let the user use/change some implementations.
+ */
+module.exports = {
+    Promise: ES6Promise
+};
+
+},{"lie":58}],7:[function(require,module,exports){
+'use strict';
+var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined');
+
+var pako = require("pako");
+var utils = require("./utils");
+var GenericWorker = require("./stream/GenericWorker");
+
+var ARRAY_TYPE = USE_TYPEDARRAY ? "uint8array" : "array";
+
+exports.magic = "\x08\x00";
+
+/**
+ * Create a worker that uses pako to inflate/deflate.
+ * @constructor
+ * @param {String} action the name of the pako function to call : either "Deflate" or "Inflate".
+ * @param {Object} options the options to use when (de)compressing.
+ */
+function FlateWorker(action, options) {
+    GenericWorker.call(this, "FlateWorker/" + action);
+
+    this._pako = null;
+    this._pakoAction = action;
+    this._pakoOptions = options;
+    // the `meta` object from the last chunk received
+    // this allow this worker to pass around metadata
+    this.meta = {};
+}
+
+utils.inherits(FlateWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+FlateWorker.prototype.processChunk = function (chunk) {
+    this.meta = chunk.meta;
+    if (this._pako === null) {
+        this._createPako();
+    }
+    this._pako.push(utils.transformTo(ARRAY_TYPE, chunk.data), false);
+};
+
+/**
+ * @see GenericWorker.flush
+ */
+FlateWorker.prototype.flush = function () {
+    GenericWorker.prototype.flush.call(this);
+    if (this._pako === null) {
+        this._createPako();
+    }
+    this._pako.push([], true);
+};
+/**
+ * @see GenericWorker.cleanUp
+ */
+FlateWorker.prototype.cleanUp = function () {
+    GenericWorker.prototype.cleanUp.call(this);
+    this._pako = null;
+};
+
+/**
+ * Create the _pako object.
+ * TODO: lazy-loading this object isn't the best solution but it's the
+ * quickest. The best solution is to lazy-load the worker list. See also the
+ * issue #446.
+ */
+FlateWorker.prototype._createPako = function () {
+    this._pako = new pako[this._pakoAction]({
+        raw: true,
+        level: this._pakoOptions.level || -1 // default compression
+    });
+    var self = this;
+    this._pako.onData = function(data) {
+        self.push({
+            data : data,
+            meta : self.meta
+        });
+    };
+};
+
+exports.compressWorker = function (compressionOptions) {
+    return new FlateWorker("Deflate", compressionOptions);
+};
+exports.uncompressWorker = function () {
+    return new FlateWorker("Inflate", {});
+};
+
+},{"./stream/GenericWorker":28,"./utils":32,"pako":59}],8:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var GenericWorker = require('../stream/GenericWorker');
+var utf8 = require('../utf8');
+var crc32 = require('../crc32');
+var signature = require('../signature');
+
+/**
+ * Transform an integer into a string in hexadecimal.
+ * @private
+ * @param {number} dec the number to convert.
+ * @param {number} bytes the number of bytes to generate.
+ * @returns {string} the result.
+ */
+var decToHex = function(dec, bytes) {
+    var hex = "", i;
+    for (i = 0; i < bytes; i++) {
+        hex += String.fromCharCode(dec & 0xff);
+        dec = dec >>> 8;
+    }
+    return hex;
+};
+
+/**
+ * Generate the UNIX part of the external file attributes.
+ * @param {Object} unixPermissions the unix permissions or null.
+ * @param {Boolean} isDir true if the entry is a directory, false otherwise.
+ * @return {Number} a 32 bit integer.
+ *
+ * adapted from http://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute :
+ *
+ * TTTTsstrwxrwxrwx0000000000ADVSHR
+ * ^^^^____________________________ file type, see zipinfo.c (UNX_*)
+ *     ^^^_________________________ setuid, setgid, sticky
+ *        ^^^^^^^^^________________ permissions
+ *                 ^^^^^^^^^^______ not used ?
+ *                           ^^^^^^ DOS attribute bits : Archive, Directory, Volume label, System file, Hidden, Read only
+ */
+var generateUnixExternalFileAttr = function (unixPermissions, isDir) {
+
+    var result = unixPermissions;
+    if (!unixPermissions) {
+        // I can't use octal values in strict mode, hence the hexa.
+        //  040775 => 0x41fd
+        // 0100664 => 0x81b4
+        result = isDir ? 0x41fd : 0x81b4;
+    }
+    return (result & 0xFFFF) << 16;
+};
+
+/**
+ * Generate the DOS part of the external file attributes.
+ * @param {Object} dosPermissions the dos permissions or null.
+ * @param {Boolean} isDir true if the entry is a directory, false otherwise.
+ * @return {Number} a 32 bit integer.
+ *
+ * Bit 0     Read-Only
+ * Bit 1     Hidden
+ * Bit 2     System
+ * Bit 3     Volume Label
+ * Bit 4     Directory
+ * Bit 5     Archive
+ */
+var generateDosExternalFileAttr = function (dosPermissions, isDir) {
+
+    // the dir flag is already set for compatibility
+    return (dosPermissions || 0)  & 0x3F;
+};
+
+/**
+ * Generate the various parts used in the construction of the final zip file.
+ * @param {Object} streamInfo the hash with informations about the compressed file.
+ * @param {Boolean} streamedContent is the content streamed ?
+ * @param {Boolean} streamingEnded is the stream finished ?
+ * @param {number} offset the current offset from the start of the zip file.
+ * @param {String} platform let's pretend we are this platform (change platform dependents fields)
+ * @param {Function} encodeFileName the function to encode the file name / comment.
+ * @return {Object} the zip parts.
+ */
+var generateZipParts = function(streamInfo, streamedContent, streamingEnded, offset, platform, encodeFileName) {
+    var file = streamInfo['file'],
+    compression = streamInfo['compression'],
+    useCustomEncoding = encodeFileName !== utf8.utf8encode,
+    encodedFileName = utils.transformTo("string", encodeFileName(file.name)),
+    utfEncodedFileName = utils.transformTo("string", utf8.utf8encode(file.name)),
+    comment = file.comment,
+    encodedComment = utils.transformTo("string", encodeFileName(comment)),
+    utfEncodedComment = utils.transformTo("string", utf8.utf8encode(comment)),
+    useUTF8ForFileName = utfEncodedFileName.length !== file.name.length,
+    useUTF8ForComment = utfEncodedComment.length !== comment.length,
+    dosTime,
+    dosDate,
+    extraFields = "",
+    unicodePathExtraField = "",
+    unicodeCommentExtraField = "",
+    dir = file.dir,
+    date = file.date;
+
+
+    var dataInfo = {
+        crc32 : 0,
+        compressedSize : 0,
+        uncompressedSize : 0
+    };
+
+    // if the content is streamed, the sizes/crc32 are only available AFTER
+    // the end of the stream.
+    if (!streamedContent || streamingEnded) {
+        dataInfo.crc32 = streamInfo['crc32'];
+        dataInfo.compressedSize = streamInfo['compressedSize'];
+        dataInfo.uncompressedSize = streamInfo['uncompressedSize'];
+    }
+
+    var bitflag = 0;
+    if (streamedContent) {
+        // Bit 3: the sizes/crc32 are set to zero in the local header.
+        // The correct values are put in the data descriptor immediately
+        // following the compressed data.
+        bitflag |= 0x0008;
+    }
+    if (!useCustomEncoding && (useUTF8ForFileName || useUTF8ForComment)) {
+        // Bit 11: Language encoding flag (EFS).
+        bitflag |= 0x0800;
+    }
+
+
+    var extFileAttr = 0;
+    var versionMadeBy = 0;
+    if (dir) {
+        // dos or unix, we set the dos dir flag
+        extFileAttr |= 0x00010;
+    }
+    if(platform === "UNIX") {
+        versionMadeBy = 0x031E; // UNIX, version 3.0
+        extFileAttr |= generateUnixExternalFileAttr(file.unixPermissions, dir);
+    } else { // DOS or other, fallback to DOS
+        versionMadeBy = 0x0014; // DOS, version 2.0
+        extFileAttr |= generateDosExternalFileAttr(file.dosPermissions, dir);
+    }
+
+    // date
+    // @see http://www.delorie.com/djgpp/doc/rbinter/it/52/13.html
+    // @see http://www.delorie.com/djgpp/doc/rbinter/it/65/16.html
+    // @see http://www.delorie.com/djgpp/doc/rbinter/it/66/16.html
+
+    dosTime = date.getUTCHours();
+    dosTime = dosTime << 6;
+    dosTime = dosTime | date.getUTCMinutes();
+    dosTime = dosTime << 5;
+    dosTime = dosTime | date.getUTCSeconds() / 2;
+
+    dosDate = date.getUTCFullYear() - 1980;
+    dosDate = dosDate << 4;
+    dosDate = dosDate | (date.getUTCMonth() + 1);
+    dosDate = dosDate << 5;
+    dosDate = dosDate | date.getUTCDate();
+
+    if (useUTF8ForFileName) {
+        // set the unicode path extra field. unzip needs at least one extra
+        // field to correctly handle unicode path, so using the path is as good
+        // as any other information. This could improve the situation with
+        // other archive managers too.
+        // This field is usually used without the utf8 flag, with a non
+        // unicode path in the header (winrar, winzip). This helps (a bit)
+        // with the messy Windows' default compressed folders feature but
+        // breaks on p7zip which doesn't seek the unicode path extra field.
+        // So for now, UTF-8 everywhere !
+        unicodePathExtraField =
+            // Version
+            decToHex(1, 1) +
+            // NameCRC32
+            decToHex(crc32(encodedFileName), 4) +
+            // UnicodeName
+            utfEncodedFileName;
+
+        extraFields +=
+            // Info-ZIP Unicode Path Extra Field
+            "\x75\x70" +
+            // size
+            decToHex(unicodePathExtraField.length, 2) +
+            // content
+            unicodePathExtraField;
+    }
+
+    if(useUTF8ForComment) {
+
+        unicodeCommentExtraField =
+            // Version
+            decToHex(1, 1) +
+            // CommentCRC32
+            decToHex(crc32(encodedComment), 4) +
+            // UnicodeName
+            utfEncodedComment;
+
+        extraFields +=
+            // Info-ZIP Unicode Path Extra Field
+            "\x75\x63" +
+            // size
+            decToHex(unicodeCommentExtraField.length, 2) +
+            // content
+            unicodeCommentExtraField;
+    }
+
+    var header = "";
+
+    // version needed to extract
+    header += "\x0A\x00";
+    // general purpose bit flag
+    header += decToHex(bitflag, 2);
+    // compression method
+    header += compression.magic;
+    // last mod file time
+    header += decToHex(dosTime, 2);
+    // last mod file date
+    header += decToHex(dosDate, 2);
+    // crc-32
+    header += decToHex(dataInfo.crc32, 4);
+    // compressed size
+    header += decToHex(dataInfo.compressedSize, 4);
+    // uncompressed size
+    header += decToHex(dataInfo.uncompressedSize, 4);
+    // file name length
+    header += decToHex(encodedFileName.length, 2);
+    // extra field length
+    header += decToHex(extraFields.length, 2);
+
+
+    var fileRecord = signature.LOCAL_FILE_HEADER + header + encodedFileName + extraFields;
+
+    var dirRecord = signature.CENTRAL_FILE_HEADER +
+        // version made by (00: DOS)
+        decToHex(versionMadeBy, 2) +
+        // file header (common to file and central directory)
+        header +
+        // file comment length
+        decToHex(encodedComment.length, 2) +
+        // disk number start
+        "\x00\x00" +
+        // internal file attributes TODO
+        "\x00\x00" +
+        // external file attributes
+        decToHex(extFileAttr, 4) +
+        // relative offset of local header
+        decToHex(offset, 4) +
+        // file name
+        encodedFileName +
+        // extra field
+        extraFields +
+        // file comment
+        encodedComment;
+
+    return {
+        fileRecord: fileRecord,
+        dirRecord: dirRecord
+    };
+};
+
+/**
+ * Generate the EOCD record.
+ * @param {Number} entriesCount the number of entries in the zip file.
+ * @param {Number} centralDirLength the length (in bytes) of the central dir.
+ * @param {Number} localDirLength the length (in bytes) of the local dir.
+ * @param {String} comment the zip file comment as a binary string.
+ * @param {Function} encodeFileName the function to encode the comment.
+ * @return {String} the EOCD record.
+ */
+var generateCentralDirectoryEnd = function (entriesCount, centralDirLength, localDirLength, comment, encodeFileName) {
+    var dirEnd = "";
+    var encodedComment = utils.transformTo("string", encodeFileName(comment));
+
+    // end of central dir signature
+    dirEnd = signature.CENTRAL_DIRECTORY_END +
+        // number of this disk
+        "\x00\x00" +
+        // number of the disk with the start of the central directory
+        "\x00\x00" +
+        // total number of entries in the central directory on this disk
+        decToHex(entriesCount, 2) +
+        // total number of entries in the central directory
+        decToHex(entriesCount, 2) +
+        // size of the central directory   4 bytes
+        decToHex(centralDirLength, 4) +
+        // offset of start of central directory with respect to the starting disk number
+        decToHex(localDirLength, 4) +
+        // .ZIP file comment length
+        decToHex(encodedComment.length, 2) +
+        // .ZIP file comment
+        encodedComment;
+
+    return dirEnd;
+};
+
+/**
+ * Generate data descriptors for a file entry.
+ * @param {Object} streamInfo the hash generated by a worker, containing informations
+ * on the file entry.
+ * @return {String} the data descriptors.
+ */
+var generateDataDescriptors = function (streamInfo) {
+    var descriptor = "";
+    descriptor = signature.DATA_DESCRIPTOR +
+        // crc-32                          4 bytes
+        decToHex(streamInfo['crc32'], 4) +
+        // compressed size                 4 bytes
+        decToHex(streamInfo['compressedSize'], 4) +
+        // uncompressed size               4 bytes
+        decToHex(streamInfo['uncompressedSize'], 4);
+
+    return descriptor;
+};
+
+
+/**
+ * A worker to concatenate other workers to create a zip file.
+ * @param {Boolean} streamFiles `true` to stream the content of the files,
+ * `false` to accumulate it.
+ * @param {String} comment the comment to use.
+ * @param {String} platform the platform to use, "UNIX" or "DOS".
+ * @param {Function} encodeFileName the function to encode file names and comments.
+ */
+function ZipFileWorker(streamFiles, comment, platform, encodeFileName) {
+    GenericWorker.call(this, "ZipFileWorker");
+    // The number of bytes written so far. This doesn't count accumulated chunks.
+    this.bytesWritten = 0;
+    // The comment of the zip file
+    this.zipComment = comment;
+    // The platform "generating" the zip file.
+    this.zipPlatform = platform;
+    // the function to encode file names and comments.
+    this.encodeFileName = encodeFileName;
+    // Should we stream the content of the files ?
+    this.streamFiles = streamFiles;
+    // If `streamFiles` is false, we will need to accumulate the content of the
+    // files to calculate sizes / crc32 (and write them *before* the content).
+    // This boolean indicates if we are accumulating chunks (it will change a lot
+    // during the lifetime of this worker).
+    this.accumulate = false;
+    // The buffer receiving chunks when accumulating content.
+    this.contentBuffer = [];
+    // The list of generated directory records.
+    this.dirRecords = [];
+    // The offset (in bytes) from the beginning of the zip file for the current source.
+    this.currentSourceOffset = 0;
+    // The total number of entries in this zip file.
+    this.entriesCount = 0;
+    // the name of the file currently being added, null when handling the end of the zip file.
+    // Used for the emited metadata.
+    this.currentFile = null;
+
+
+
+    this._sources = [];
+}
+utils.inherits(ZipFileWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.push
+ */
+ZipFileWorker.prototype.push = function (chunk) {
+
+    var currentFilePercent = chunk.meta.percent || 0;
+    var entriesCount = this.entriesCount;
+    var remainingFiles = this._sources.length;
+
+    if(this.accumulate) {
+        this.contentBuffer.push(chunk);
+    } else {
+        this.bytesWritten += chunk.data.length;
+
+        GenericWorker.prototype.push.call(this, {
+            data : chunk.data,
+            meta : {
+                currentFile : this.currentFile,
+                percent : entriesCount ? (currentFilePercent + 100 * (entriesCount - remainingFiles - 1)) / entriesCount : 100
+            }
+        });
+    }
+};
+
+/**
+ * The worker started a new source (an other worker).
+ * @param {Object} streamInfo the streamInfo object from the new source.
+ */
+ZipFileWorker.prototype.openedSource = function (streamInfo) {
+    this.currentSourceOffset = this.bytesWritten;
+    this.currentFile = streamInfo['file'].name;
+
+    var streamedContent = this.streamFiles && !streamInfo['file'].dir;
+
+    // don't stream folders (because they don't have any content)
+    if(streamedContent) {
+        var record = generateZipParts(streamInfo, streamedContent, false, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
+        this.push({
+            data : record.fileRecord,
+            meta : {percent:0}
+        });
+    } else {
+        // we need to wait for the whole file before pushing anything
+        this.accumulate = true;
+    }
+};
+
+/**
+ * The worker finished a source (an other worker).
+ * @param {Object} streamInfo the streamInfo object from the finished source.
+ */
+ZipFileWorker.prototype.closedSource = function (streamInfo) {
+    this.accumulate = false;
+    var streamedContent = this.streamFiles && !streamInfo['file'].dir;
+    var record = generateZipParts(streamInfo, streamedContent, true, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
+
+    this.dirRecords.push(record.dirRecord);
+    if(streamedContent) {
+        // after the streamed file, we put data descriptors
+        this.push({
+            data : generateDataDescriptors(streamInfo),
+            meta : {percent:100}
+        });
+    } else {
+        // the content wasn't streamed, we need to push everything now
+        // first the file record, then the content
+        this.push({
+            data : record.fileRecord,
+            meta : {percent:0}
+        });
+        while(this.contentBuffer.length) {
+            this.push(this.contentBuffer.shift());
+        }
+    }
+    this.currentFile = null;
+};
+
+/**
+ * @see GenericWorker.flush
+ */
+ZipFileWorker.prototype.flush = function () {
+
+    var localDirLength = this.bytesWritten;
+    for(var i = 0; i < this.dirRecords.length; i++) {
+        this.push({
+            data : this.dirRecords[i],
+            meta : {percent:100}
+        });
+    }
+    var centralDirLength = this.bytesWritten - localDirLength;
+
+    var dirEnd = generateCentralDirectoryEnd(this.dirRecords.length, centralDirLength, localDirLength, this.zipComment, this.encodeFileName);
+
+    this.push({
+        data : dirEnd,
+        meta : {percent:100}
+    });
+};
+
+/**
+ * Prepare the next source to be read.
+ */
+ZipFileWorker.prototype.prepareNextSource = function () {
+    this.previous = this._sources.shift();
+    this.openedSource(this.previous.streamInfo);
+    if (this.isPaused) {
+        this.previous.pause();
+    } else {
+        this.previous.resume();
+    }
+};
+
+/**
+ * @see GenericWorker.registerPrevious
+ */
+ZipFileWorker.prototype.registerPrevious = function (previous) {
+    this._sources.push(previous);
+    var self = this;
+
+    previous.on('data', function (chunk) {
+        self.processChunk(chunk);
+    });
+    previous.on('end', function () {
+        self.closedSource(self.previous.streamInfo);
+        if(self._sources.length) {
+            self.prepareNextSource();
+        } else {
+            self.end();
+        }
+    });
+    previous.on('error', function (e) {
+        self.error(e);
+    });
+    return this;
+};
+
+/**
+ * @see GenericWorker.resume
+ */
+ZipFileWorker.prototype.resume = function () {
+    if(!GenericWorker.prototype.resume.call(this)) {
+        return false;
+    }
+
+    if (!this.previous && this._sources.length) {
+        this.prepareNextSource();
+        return true;
+    }
+    if (!this.previous && !this._sources.length && !this.generatedError) {
+        this.end();
+        return true;
+    }
+};
+
+/**
+ * @see GenericWorker.error
+ */
+ZipFileWorker.prototype.error = function (e) {
+    var sources = this._sources;
+    if(!GenericWorker.prototype.error.call(this, e)) {
+        return false;
+    }
+    for(var i = 0; i < sources.length; i++) {
+        try {
+            sources[i].error(e);
+        } catch(e) {
+            // the `error` exploded, nothing to do
+        }
+    }
+    return true;
+};
+
+/**
+ * @see GenericWorker.lock
+ */
+ZipFileWorker.prototype.lock = function () {
+    GenericWorker.prototype.lock.call(this);
+    var sources = this._sources;
+    for(var i = 0; i < sources.length; i++) {
+        sources[i].lock();
+    }
+};
+
+module.exports = ZipFileWorker;
+
+},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(require,module,exports){
+'use strict';
+
+var compressions = require('../compressions');
+var ZipFileWorker = require('./ZipFileWorker');
+
+/**
+ * Find the compression to use.
+ * @param {String} fileCompression the compression defined at the file level, if any.
+ * @param {String} zipCompression the compression defined at the load() level.
+ * @return {Object} the compression object to use.
+ */
+var getCompression = function (fileCompression, zipCompression) {
+
+    var compressionName = fileCompression || zipCompression;
+    var compression = compressions[compressionName];
+    if (!compression) {
+        throw new Error(compressionName + " is not a valid compression method !");
+    }
+    return compression;
+};
+
+/**
+ * Create a worker to generate a zip file.
+ * @param {JSZip} zip the JSZip instance at the right root level.
+ * @param {Object} options to generate the zip file.
+ * @param {String} comment the comment to use.
+ */
+exports.generateWorker = function (zip, options, comment) {
+
+    var zipFileWorker = new ZipFileWorker(options.streamFiles, comment, options.platform, options.encodeFileName);
+    var entriesCount = 0;
+    try {
+
+        zip.forEach(function (relativePath, file) {
+            entriesCount++;
+            var compression = getCompression(file.options.compression, options.compression);
+            var compressionOptions = file.options.compressionOptions || options.compressionOptions || {};
+            var dir = file.dir, date = file.date;
+
+            file._compressWorker(compression, compressionOptions)
+            .withStreamInfo("file", {
+                name : relativePath,
+                dir : dir,
+                date : date,
+                comment : file.comment || "",
+                unixPermissions : file.unixPermissions,
+                dosPermissions : file.dosPermissions
+            })
+            .pipe(zipFileWorker);
+        });
+        zipFileWorker.entriesCount = entriesCount;
+    } catch (e) {
+        zipFileWorker.error(e);
+    }
+
+    return zipFileWorker;
+};
+
+},{"../compressions":3,"./ZipFileWorker":8}],10:[function(require,module,exports){
+'use strict';
+
+/**
+ * Representation a of zip file in js
+ * @constructor
+ */
+function JSZip() {
+    // if this constructor is used without `new`, it adds `new` before itself:
+    if(!(this instanceof JSZip)) {
+        return new JSZip();
+    }
+
+    if(arguments.length) {
+        throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");
+    }
+
+    // object containing the files :
+    // {
+    //   "folder/" : {...},
+    //   "folder/data.txt" : {...}
+    // }
+    this.files = {};
+
+    this.comment = null;
+
+    // Where we are in the hierarchy
+    this.root = "";
+    this.clone = function() {
+        var newObj = new JSZip();
+        for (var i in this) {
+            if (typeof this[i] !== "function") {
+                newObj[i] = this[i];
+            }
+        }
+        return newObj;
+    };
+}
+JSZip.prototype = require('./object');
+JSZip.prototype.loadAsync = require('./load');
+JSZip.support = require('./support');
+JSZip.defaults = require('./defaults');
+
+// TODO find a better way to handle this version,
+// a require('package.json').version doesn't work with webpack, see #327
+JSZip.version = "3.1.5";
+
+JSZip.loadAsync = function (content, options) {
+    return new JSZip().loadAsync(content, options);
+};
+
+JSZip.external = require("./external");
+module.exports = JSZip;
+
+},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(require,module,exports){
+'use strict';
+var utils = require('./utils');
+var external = require("./external");
+var utf8 = require('./utf8');
+var utils = require('./utils');
+var ZipEntries = require('./zipEntries');
+var Crc32Probe = require('./stream/Crc32Probe');
+var nodejsUtils = require("./nodejsUtils");
+
+/**
+ * Check the CRC32 of an entry.
+ * @param {ZipEntry} zipEntry the zip entry to check.
+ * @return {Promise} the result.
+ */
+function checkEntryCRC32(zipEntry) {
+    return new external.Promise(function (resolve, reject) {
+        var worker = zipEntry.decompressed.getContentWorker().pipe(new Crc32Probe());
+        worker.on("error", function (e) {
+            reject(e);
+        })
+        .on("end", function () {
+            if (worker.streamInfo.crc32 !== zipEntry.decompressed.crc32) {
+                reject(new Error("Corrupted zip : CRC32 mismatch"));
+            } else {
+                resolve();
+            }
+        })
+        .resume();
+    });
+}
+
+module.exports = function(data, options) {
+    var zip = this;
+    options = utils.extend(options || {}, {
+        base64: false,
+        checkCRC32: false,
+        optimizedBinaryString: false,
+        createFolders: false,
+        decodeFileName: utf8.utf8decode
+    });
+
+    if (nodejsUtils.isNode && nodejsUtils.isStream(data)) {
+        return external.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file."));
+    }
+
+    return utils.prepareContent("the loaded zip file", data, true, options.optimizedBinaryString, options.base64)
+    .then(function(data) {
+        var zipEntries = new ZipEntries(options);
+        zipEntries.load(data);
+        return zipEntries;
+    }).then(function checkCRC32(zipEntries) {
+        var promises = [external.Promise.resolve(zipEntries)];
+        var files = zipEntries.files;
+        if (options.checkCRC32) {
+            for (var i = 0; i < files.length; i++) {
+                promises.push(checkEntryCRC32(files[i]));
+            }
+        }
+        return external.Promise.all(promises);
+    }).then(function addFiles(results) {
+        var zipEntries = results.shift();
+        var files = zipEntries.files;
+        for (var i = 0; i < files.length; i++) {
+            var input = files[i];
+            zip.file(input.fileNameStr, input.decompressed, {
+                binary: true,
+                optimizedBinaryString: true,
+                date: input.date,
+                dir: input.dir,
+                comment : input.fileCommentStr.length ? input.fileCommentStr : null,
+                unixPermissions : input.unixPermissions,
+                dosPermissions : input.dosPermissions,
+                createFolders: options.createFolders
+            });
+        }
+        if (zipEntries.zipComment.length) {
+            zip.comment = zipEntries.zipComment;
+        }
+
+        return zip;
+    });
+};
+
+},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(require,module,exports){
+"use strict";
+
+var utils = require('../utils');
+var GenericWorker = require('../stream/GenericWorker');
+
+/**
+ * A worker that use a nodejs stream as source.
+ * @constructor
+ * @param {String} filename the name of the file entry for this stream.
+ * @param {Readable} stream the nodejs stream.
+ */
+function NodejsStreamInputAdapter(filename, stream) {
+    GenericWorker.call(this, "Nodejs stream input adapter for " + filename);
+    this._upstreamEnded = false;
+    this._bindStream(stream);
+}
+
+utils.inherits(NodejsStreamInputAdapter, GenericWorker);
+
+/**
+ * Prepare the stream and bind the callbacks on it.
+ * Do this ASAP on node 0.10 ! A lazy binding doesn't always work.
+ * @param {Stream} stream the nodejs stream to use.
+ */
+NodejsStreamInputAdapter.prototype._bindStream = function (stream) {
+    var self = this;
+    this._stream = stream;
+    stream.pause();
+    stream
+    .on("data", function (chunk) {
+        self.push({
+            data: chunk,
+            meta : {
+                percent : 0
+            }
+        });
+    })
+    .on("error", function (e) {
+        if(self.isPaused) {
+            this.generatedError = e;
+        } else {
+            self.error(e);
+        }
+    })
+    .on("end", function () {
+        if(self.isPaused) {
+            self._upstreamEnded = true;
+        } else {
+            self.end();
+        }
+    });
+};
+NodejsStreamInputAdapter.prototype.pause = function () {
+    if(!GenericWorker.prototype.pause.call(this)) {
+        return false;
+    }
+    this._stream.pause();
+    return true;
+};
+NodejsStreamInputAdapter.prototype.resume = function () {
+    if(!GenericWorker.prototype.resume.call(this)) {
+        return false;
+    }
+
+    if(this._upstreamEnded) {
+        this.end();
+    } else {
+        this._stream.resume();
+    }
+
+    return true;
+};
+
+module.exports = NodejsStreamInputAdapter;
+
+},{"../stream/GenericWorker":28,"../utils":32}],13:[function(require,module,exports){
+'use strict';
+
+var Readable = require('readable-stream').Readable;
+
+var utils = require('../utils');
+utils.inherits(NodejsStreamOutputAdapter, Readable);
+
+/**
+* A nodejs stream using a worker as source.
+* @see the SourceWrapper in http://nodejs.org/api/stream.html
+* @constructor
+* @param {StreamHelper} helper the helper wrapping the worker
+* @param {Object} options the nodejs stream options
+* @param {Function} updateCb the update callback.
+*/
+function NodejsStreamOutputAdapter(helper, options, updateCb) {
+    Readable.call(this, options);
+    this._helper = helper;
+
+    var self = this;
+    helper.on("data", function (data, meta) {
+        if (!self.push(data)) {
+            self._helper.pause();
+        }
+        if(updateCb) {
+            updateCb(meta);
+        }
+    })
+    .on("error", function(e) {
+        self.emit('error', e);
+    })
+    .on("end", function () {
+        self.push(null);
+    });
+}
+
+
+NodejsStreamOutputAdapter.prototype._read = function() {
+    this._helper.resume();
+};
+
+module.exports = NodejsStreamOutputAdapter;
+
+},{"../utils":32,"readable-stream":16}],14:[function(require,module,exports){
+'use strict';
+
+module.exports = {
+    /**
+     * True if this is running in Nodejs, will be undefined in a browser.
+     * In a browser, browserify won't include this file and the whole module
+     * will be resolved an empty object.
+     */
+    isNode : typeof Buffer !== "undefined",
+    /**
+     * Create a new nodejs Buffer from an existing content.
+     * @param {Object} data the data to pass to the constructor.
+     * @param {String} encoding the encoding to use.
+     * @return {Buffer} a new Buffer.
+     */
+    newBufferFrom: function(data, encoding) {
+        // XXX We can't use `Buffer.from` which comes from `Uint8Array.from`
+        // in nodejs v4 (< v.4.5). It's not the expected implementation (and
+        // has a different signature).
+        // see https://github.com/nodejs/node/issues/8053
+        // A condition on nodejs' version won't solve the issue as we don't
+        // control the Buffer polyfills that may or may not be used.
+        return new Buffer(data, encoding);
+    },
+    /**
+     * Create a new nodejs Buffer with the specified size.
+     * @param {Integer} size the size of the buffer.
+     * @return {Buffer} a new Buffer.
+     */
+    allocBuffer: function (size) {
+        if (Buffer.alloc) {
+            return Buffer.alloc(size);
+        } else {
+            return new Buffer(size);
+        }
+    },
+    /**
+     * Find out if an object is a Buffer.
+     * @param {Object} b the object to test.
+     * @return {Boolean} true if the object is a Buffer, false otherwise.
+     */
+    isBuffer : function(b){
+        return Buffer.isBuffer(b);
+    },
+
+    isStream : function (obj) {
+        return obj &&
+            typeof obj.on === "function" &&
+            typeof obj.pause === "function" &&
+            typeof obj.resume === "function";
+    }
+};
+
+},{}],15:[function(require,module,exports){
+'use strict';
+var utf8 = require('./utf8');
+var utils = require('./utils');
+var GenericWorker = require('./stream/GenericWorker');
+var StreamHelper = require('./stream/StreamHelper');
+var defaults = require('./defaults');
+var CompressedObject = require('./compressedObject');
+var ZipObject = require('./zipObject');
+var generate = require("./generate");
+var nodejsUtils = require("./nodejsUtils");
+var NodejsStreamInputAdapter = require("./nodejs/NodejsStreamInputAdapter");
+
+
+/**
+ * Add a file in the current folder.
+ * @private
+ * @param {string} name the name of the file
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file
+ * @param {Object} originalOptions the options of the file
+ * @return {Object} the new file.
+ */
+var fileAdd = function(name, data, originalOptions) {
+    // be sure sub folders exist
+    var dataType = utils.getTypeOf(data),
+        parent;
+
+
+    /*
+     * Correct options.
+     */
+
+    var o = utils.extend(originalOptions || {}, defaults);
+    o.date = o.date || new Date();
+    if (o.compression !== null) {
+        o.compression = o.compression.toUpperCase();
+    }
+
+    if (typeof o.unixPermissions === "string") {
+        o.unixPermissions = parseInt(o.unixPermissions, 8);
+    }
+
+    // UNX_IFDIR  0040000 see zipinfo.c
+    if (o.unixPermissions && (o.unixPermissions & 0x4000)) {
+        o.dir = true;
+    }
+    // Bit 4    Directory
+    if (o.dosPermissions && (o.dosPermissions & 0x0010)) {
+        o.dir = true;
+    }
+
+    if (o.dir) {
+        name = forceTrailingSlash(name);
+    }
+    if (o.createFolders && (parent = parentFolder(name))) {
+        folderAdd.call(this, parent, true);
+    }
+
+    var isUnicodeString = dataType === "string" && o.binary === false && o.base64 === false;
+    if (!originalOptions || typeof originalOptions.binary === "undefined") {
+        o.binary = !isUnicodeString;
+    }
+
+
+    var isCompressedEmpty = (data instanceof CompressedObject) && data.uncompressedSize === 0;
+
+    if (isCompressedEmpty || o.dir || !data || data.length === 0) {
+        o.base64 = false;
+        o.binary = true;
+        data = "";
+        o.compression = "STORE";
+        dataType = "string";
+    }
+
+    /*
+     * Convert content to fit.
+     */
+
+    var zipObjectContent = null;
+    if (data instanceof CompressedObject || data instanceof GenericWorker) {
+        zipObjectContent = data;
+    } else if (nodejsUtils.isNode && nodejsUtils.isStream(data)) {
+        zipObjectContent = new NodejsStreamInputAdapter(name, data);
+    } else {
+        zipObjectContent = utils.prepareContent(name, data, o.binary, o.optimizedBinaryString, o.base64);
+    }
+
+    var object = new ZipObject(name, zipObjectContent, o);
+    this.files[name] = object;
+    /*
+    TODO: we can't throw an exception because we have async promises
+    (we can have a promise of a Date() for example) but returning a
+    promise is useless because file(name, data) returns the JSZip
+    object for chaining. Should we break that to allow the user
+    to catch the error ?
+
+    return external.Promise.resolve(zipObjectContent)
+    .then(function () {
+        return object;
+    });
+    */
+};
+
+/**
+ * Find the parent folder of the path.
+ * @private
+ * @param {string} path the path to use
+ * @return {string} the parent folder, or ""
+ */
+var parentFolder = function (path) {
+    if (path.slice(-1) === '/') {
+        path = path.substring(0, path.length - 1);
+    }
+    var lastSlash = path.lastIndexOf('/');
+    return (lastSlash > 0) ? path.substring(0, lastSlash) : "";
+};
+
+/**
+ * Returns the path with a slash at the end.
+ * @private
+ * @param {String} path the path to check.
+ * @return {String} the path with a trailing slash.
+ */
+var forceTrailingSlash = function(path) {
+    // Check the name ends with a /
+    if (path.slice(-1) !== "/") {
+        path += "/"; // IE doesn't like substr(-1)
+    }
+    return path;
+};
+
+/**
+ * Add a (sub) folder in the current folder.
+ * @private
+ * @param {string} name the folder's name
+ * @param {boolean=} [createFolders] If true, automatically create sub
+ *  folders. Defaults to false.
+ * @return {Object} the new folder.
+ */
+var folderAdd = function(name, createFolders) {
+    createFolders = (typeof createFolders !== 'undefined') ? createFolders : defaults.createFolders;
+
+    name = forceTrailingSlash(name);
+
+    // Does this folder already exist?
+    if (!this.files[name]) {
+        fileAdd.call(this, name, null, {
+            dir: true,
+            createFolders: createFolders
+        });
+    }
+    return this.files[name];
+};
+
+/**
+* Cross-window, cross-Node-context regular expression detection
+* @param  {Object}  object Anything
+* @return {Boolean}        true if the object is a regular expression,
+* false otherwise
+*/
+function isRegExp(object) {
+    return Object.prototype.toString.call(object) === "[object RegExp]";
+}
+
+// return the actual prototype of JSZip
+var out = {
+    /**
+     * @see loadAsync
+     */
+    load: function() {
+        throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
+    },
+
+
+    /**
+     * Call a callback function for each entry at this folder level.
+     * @param {Function} cb the callback function:
+     * function (relativePath, file) {...}
+     * It takes 2 arguments : the relative path and the file.
+     */
+    forEach: function(cb) {
+        var filename, relativePath, file;
+        for (filename in this.files) {
+            if (!this.files.hasOwnProperty(filename)) {
+                continue;
+            }
+            file = this.files[filename];
+            relativePath = filename.slice(this.root.length, filename.length);
+            if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root
+                cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn...
+            }
+        }
+    },
+
+    /**
+     * Filter nested files/folders with the specified function.
+     * @param {Function} search the predicate to use :
+     * function (relativePath, file) {...}
+     * It takes 2 arguments : the relative path and the file.
+     * @return {Array} An array of matching elements.
+     */
+    filter: function(search) {
+        var result = [];
+        this.forEach(function (relativePath, entry) {
+            if (search(relativePath, entry)) { // the file matches the function
+                result.push(entry);
+            }
+
+        });
+        return result;
+    },
+
+    /**
+     * Add a file to the zip file, or search a file.
+     * @param   {string|RegExp} name The name of the file to add (if data is defined),
+     * the name of the file to find (if no data) or a regex to match files.
+     * @param   {String|ArrayBuffer|Uint8Array|Buffer} data  The file data, either raw or base64 encoded
+     * @param   {Object} o     File options
+     * @return  {JSZip|Object|Array} this JSZip object (when adding a file),
+     * a file (when searching by string) or an array of files (when searching by regex).
+     */
+    file: function(name, data, o) {
+        if (arguments.length === 1) {
+            if (isRegExp(name)) {
+                var regexp = name;
+                return this.filter(function(relativePath, file) {
+                    return !file.dir && regexp.test(relativePath);
+                });
+            }
+            else { // text
+                var obj = this.files[this.root + name];
+                if (obj && !obj.dir) {
+                    return obj;
+                } else {
+                    return null;
+                }
+            }
+        }
+        else { // more than one argument : we have data !
+            name = this.root + name;
+            fileAdd.call(this, name, data, o);
+        }
+        return this;
+    },
+
+    /**
+     * Add a directory to the zip file, or search.
+     * @param   {String|RegExp} arg The name of the directory to add, or a regex to search folders.
+     * @return  {JSZip} an object with the new directory as the root, or an array containing matching folders.
+     */
+    folder: function(arg) {
+        if (!arg) {
+            return this;
+        }
+
+        if (isRegExp(arg)) {
+            return this.filter(function(relativePath, file) {
+                return file.dir && arg.test(relativePath);
+            });
+        }
+
+        // else, name is a new folder
+        var name = this.root + arg;
+        var newFolder = folderAdd.call(this, name);
+
+        // Allow chaining by returning a new object with this folder as the root
+        var ret = this.clone();
+        ret.root = newFolder.name;
+        return ret;
+    },
+
+    /**
+     * Delete a file, or a directory and all sub-files, from the zip
+     * @param {string} name the name of the file to delete
+     * @return {JSZip} this JSZip object
+     */
+    remove: function(name) {
+        name = this.root + name;
+        var file = this.files[name];
+        if (!file) {
+            // Look for any folders
+            if (name.slice(-1) !== "/") {
+                name += "/";
+            }
+            file = this.files[name];
+        }
+
+        if (file && !file.dir) {
+            // file
+            delete this.files[name];
+        } else {
+            // maybe a folder, delete recursively
+            var kids = this.filter(function(relativePath, file) {
+                return file.name.slice(0, name.length) === name;
+            });
+            for (var i = 0; i < kids.length; i++) {
+                delete this.files[kids[i].name];
+            }
+        }
+
+        return this;
+    },
+
+    /**
+     * Generate the complete zip file
+     * @param {Object} options the options to generate the zip file :
+     * - compression, "STORE" by default.
+     * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob.
+     * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file
+     */
+    generate: function(options) {
+        throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
+    },
+
+    /**
+     * Generate the complete zip file as an internal stream.
+     * @param {Object} options the options to generate the zip file :
+     * - compression, "STORE" by default.
+     * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob.
+     * @return {StreamHelper} the streamed zip file.
+     */
+    generateInternalStream: function(options) {
+      var worker, opts = {};
+      try {
+          opts = utils.extend(options || {}, {
+              streamFiles: false,
+              compression: "STORE",
+              compressionOptions : null,
+              type: "",
+              platform: "DOS",
+              comment: null,
+              mimeType: 'application/zip',
+              encodeFileName: utf8.utf8encode
+          });
+
+          opts.type = opts.type.toLowerCase();
+          opts.compression = opts.compression.toUpperCase();
+
+          // "binarystring" is prefered but the internals use "string".
+          if(opts.type === "binarystring") {
+            opts.type = "string";
+          }
+
+          if (!opts.type) {
+            throw new Error("No output type specified.");
+          }
+
+          utils.checkSupport(opts.type);
+
+          // accept nodejs `process.platform`
+          if(
+              opts.platform === 'darwin' ||
+              opts.platform === 'freebsd' ||
+              opts.platform === 'linux' ||
+              opts.platform === 'sunos'
+          ) {
+              opts.platform = "UNIX";
+          }
+          if (opts.platform === 'win32') {
+              opts.platform = "DOS";
+          }
+
+          var comment = opts.comment || this.comment || "";
+          worker = generate.generateWorker(this, opts, comment);
+      } catch (e) {
+        worker = new GenericWorker("error");
+        worker.error(e);
+      }
+      return new StreamHelper(worker, opts.type || "string", opts.mimeType);
+    },
+    /**
+     * Generate the complete zip file asynchronously.
+     * @see generateInternalStream
+     */
+    generateAsync: function(options, onUpdate) {
+        return this.generateInternalStream(options).accumulate(onUpdate);
+    },
+    /**
+     * Generate the complete zip file asynchronously.
+     * @see generateInternalStream
+     */
+    generateNodeStream: function(options, onUpdate) {
+        options = options || {};
+        if (!options.type) {
+            options.type = "nodebuffer";
+        }
+        return this.generateInternalStream(options).toNodejsStream(onUpdate);
+    }
+};
+module.exports = out;
+
+},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(require,module,exports){
+/*
+ * This file is used by module bundlers (browserify/webpack/etc) when
+ * including a stream implementation. We use "readable-stream" to get a
+ * consistent behavior between nodejs versions but bundlers often have a shim
+ * for "stream". Using this shim greatly improve the compatibility and greatly
+ * reduce the final size of the bundle (only one stream implementation, not
+ * two).
+ */
+module.exports = require("stream");
+
+},{"stream":undefined}],17:[function(require,module,exports){
+'use strict';
+var DataReader = require('./DataReader');
+var utils = require('../utils');
+
+function ArrayReader(data) {
+    DataReader.call(this, data);
+	for(var i = 0; i < this.data.length; i++) {
+		data[i] = data[i] & 0xFF;
+	}
+}
+utils.inherits(ArrayReader, DataReader);
+/**
+ * @see DataReader.byteAt
+ */
+ArrayReader.prototype.byteAt = function(i) {
+    return this.data[this.zero + i];
+};
+/**
+ * @see DataReader.lastIndexOfSignature
+ */
+ArrayReader.prototype.lastIndexOfSignature = function(sig) {
+    var sig0 = sig.charCodeAt(0),
+        sig1 = sig.charCodeAt(1),
+        sig2 = sig.charCodeAt(2),
+        sig3 = sig.charCodeAt(3);
+    for (var i = this.length - 4; i >= 0; --i) {
+        if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) {
+            return i - this.zero;
+        }
+    }
+
+    return -1;
+};
+/**
+ * @see DataReader.readAndCheckSignature
+ */
+ArrayReader.prototype.readAndCheckSignature = function (sig) {
+    var sig0 = sig.charCodeAt(0),
+        sig1 = sig.charCodeAt(1),
+        sig2 = sig.charCodeAt(2),
+        sig3 = sig.charCodeAt(3),
+        data = this.readData(4);
+    return sig0 === data[0] && sig1 === data[1] && sig2 === data[2] && sig3 === data[3];
+};
+/**
+ * @see DataReader.readData
+ */
+ArrayReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    if(size === 0) {
+        return [];
+    }
+    var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = ArrayReader;
+
+},{"../utils":32,"./DataReader":18}],18:[function(require,module,exports){
+'use strict';
+var utils = require('../utils');
+
+function DataReader(data) {
+    this.data = data; // type : see implementation
+    this.length = data.length;
+    this.index = 0;
+    this.zero = 0;
+}
+DataReader.prototype = {
+    /**
+     * Check that the offset will not go too far.
+     * @param {string} offset the additional offset to check.
+     * @throws {Error} an Error if the offset is out of bounds.
+     */
+    checkOffset: function(offset) {
+        this.checkIndex(this.index + offset);
+    },
+    /**
+     * Check that the specified index will not be too far.
+     * @param {string} newIndex the index to check.
+     * @throws {Error} an Error if the index is out of bounds.
+     */
+    checkIndex: function(newIndex) {
+        if (this.length < this.zero + newIndex || newIndex < 0) {
+            throw new Error("End of data reached (data length = " + this.length + ", asked index = " + (newIndex) + "). Corrupted zip ?");
+        }
+    },
+    /**
+     * Change the index.
+     * @param {number} newIndex The new index.
+     * @throws {Error} if the new index is out of the data.
+     */
+    setIndex: function(newIndex) {
+        this.checkIndex(newIndex);
+        this.index = newIndex;
+    },
+    /**
+     * Skip the next n bytes.
+     * @param {number} n the number of bytes to skip.
+     * @throws {Error} if the new index is out of the data.
+     */
+    skip: function(n) {
+        this.setIndex(this.index + n);
+    },
+    /**
+     * Get the byte at the specified index.
+     * @param {number} i the index to use.
+     * @return {number} a byte.
+     */
+    byteAt: function(i) {
+        // see implementations
+    },
+    /**
+     * Get the next number with a given byte size.
+     * @param {number} size the number of bytes to read.
+     * @return {number} the corresponding number.
+     */
+    readInt: function(size) {
+        var result = 0,
+            i;
+        this.checkOffset(size);
+        for (i = this.index + size - 1; i >= this.index; i--) {
+            result = (result << 8) + this.byteAt(i);
+        }
+        this.index += size;
+        return result;
+    },
+    /**
+     * Get the next string with a given byte size.
+     * @param {number} size the number of bytes to read.
+     * @return {string} the corresponding string.
+     */
+    readString: function(size) {
+        return utils.transformTo("string", this.readData(size));
+    },
+    /**
+     * Get raw data without conversion, <size> bytes.
+     * @param {number} size the number of bytes to read.
+     * @return {Object} the raw data, implementation specific.
+     */
+    readData: function(size) {
+        // see implementations
+    },
+    /**
+     * Find the last occurence of a zip signature (4 bytes).
+     * @param {string} sig the signature to find.
+     * @return {number} the index of the last occurence, -1 if not found.
+     */
+    lastIndexOfSignature: function(sig) {
+        // see implementations
+    },
+    /**
+     * Read the signature (4 bytes) at the current position and compare it with sig.
+     * @param {string} sig the expected signature
+     * @return {boolean} true if the signature matches, false otherwise.
+     */
+    readAndCheckSignature: function(sig) {
+        // see implementations
+    },
+    /**
+     * Get the next date.
+     * @return {Date} the date.
+     */
+    readDate: function() {
+        var dostime = this.readInt(4);
+        return new Date(Date.UTC(
+        ((dostime >> 25) & 0x7f) + 1980, // year
+        ((dostime >> 21) & 0x0f) - 1, // month
+        (dostime >> 16) & 0x1f, // day
+        (dostime >> 11) & 0x1f, // hour
+        (dostime >> 5) & 0x3f, // minute
+        (dostime & 0x1f) << 1)); // second
+    }
+};
+module.exports = DataReader;
+
+},{"../utils":32}],19:[function(require,module,exports){
+'use strict';
+var Uint8ArrayReader = require('./Uint8ArrayReader');
+var utils = require('../utils');
+
+function NodeBufferReader(data) {
+    Uint8ArrayReader.call(this, data);
+}
+utils.inherits(NodeBufferReader, Uint8ArrayReader);
+
+/**
+ * @see DataReader.readData
+ */
+NodeBufferReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = NodeBufferReader;
+
+},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(require,module,exports){
+'use strict';
+var DataReader = require('./DataReader');
+var utils = require('../utils');
+
+function StringReader(data) {
+    DataReader.call(this, data);
+}
+utils.inherits(StringReader, DataReader);
+/**
+ * @see DataReader.byteAt
+ */
+StringReader.prototype.byteAt = function(i) {
+    return this.data.charCodeAt(this.zero + i);
+};
+/**
+ * @see DataReader.lastIndexOfSignature
+ */
+StringReader.prototype.lastIndexOfSignature = function(sig) {
+    return this.data.lastIndexOf(sig) - this.zero;
+};
+/**
+ * @see DataReader.readAndCheckSignature
+ */
+StringReader.prototype.readAndCheckSignature = function (sig) {
+    var data = this.readData(4);
+    return sig === data;
+};
+/**
+ * @see DataReader.readData
+ */
+StringReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    // this will work because the constructor applied the "& 0xff" mask.
+    var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = StringReader;
+
+},{"../utils":32,"./DataReader":18}],21:[function(require,module,exports){
+'use strict';
+var ArrayReader = require('./ArrayReader');
+var utils = require('../utils');
+
+function Uint8ArrayReader(data) {
+    ArrayReader.call(this, data);
+}
+utils.inherits(Uint8ArrayReader, ArrayReader);
+/**
+ * @see DataReader.readData
+ */
+Uint8ArrayReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    if(size === 0) {
+        // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of [].
+        return new Uint8Array(0);
+    }
+    var result = this.data.subarray(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = Uint8ArrayReader;
+
+},{"../utils":32,"./ArrayReader":17}],22:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var support = require('../support');
+var ArrayReader = require('./ArrayReader');
+var StringReader = require('./StringReader');
+var NodeBufferReader = require('./NodeBufferReader');
+var Uint8ArrayReader = require('./Uint8ArrayReader');
+
+/**
+ * Create a reader adapted to the data.
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read.
+ * @return {DataReader} the data reader.
+ */
+module.exports = function (data) {
+    var type = utils.getTypeOf(data);
+    utils.checkSupport(type);
+    if (type === "string" && !support.uint8array) {
+        return new StringReader(data);
+    }
+    if (type === "nodebuffer") {
+        return new NodeBufferReader(data);
+    }
+    if (support.uint8array) {
+        return new Uint8ArrayReader(utils.transformTo("uint8array", data));
+    }
+    return new ArrayReader(utils.transformTo("array", data));
+};
+
+},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(require,module,exports){
+'use strict';
+exports.LOCAL_FILE_HEADER = "PK\x03\x04";
+exports.CENTRAL_FILE_HEADER = "PK\x01\x02";
+exports.CENTRAL_DIRECTORY_END = "PK\x05\x06";
+exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x06\x07";
+exports.ZIP64_CENTRAL_DIRECTORY_END = "PK\x06\x06";
+exports.DATA_DESCRIPTOR = "PK\x07\x08";
+
+},{}],24:[function(require,module,exports){
+'use strict';
+
+var GenericWorker = require('./GenericWorker');
+var utils = require('../utils');
+
+/**
+ * A worker which convert chunks to a specified type.
+ * @constructor
+ * @param {String} destType the destination type.
+ */
+function ConvertWorker(destType) {
+    GenericWorker.call(this, "ConvertWorker to " + destType);
+    this.destType = destType;
+}
+utils.inherits(ConvertWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+ConvertWorker.prototype.processChunk = function (chunk) {
+    this.push({
+        data : utils.transformTo(this.destType, chunk.data),
+        meta : chunk.meta
+    });
+};
+module.exports = ConvertWorker;
+
+},{"../utils":32,"./GenericWorker":28}],25:[function(require,module,exports){
+'use strict';
+
+var GenericWorker = require('./GenericWorker');
+var crc32 = require('../crc32');
+var utils = require('../utils');
+
+/**
+ * A worker which calculate the crc32 of the data flowing through.
+ * @constructor
+ */
+function Crc32Probe() {
+    GenericWorker.call(this, "Crc32Probe");
+    this.withStreamInfo("crc32", 0);
+}
+utils.inherits(Crc32Probe, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+Crc32Probe.prototype.processChunk = function (chunk) {
+    this.streamInfo.crc32 = crc32(chunk.data, this.streamInfo.crc32 || 0);
+    this.push(chunk);
+};
+module.exports = Crc32Probe;
+
+},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var GenericWorker = require('./GenericWorker');
+
+/**
+ * A worker which calculate the total length of the data flowing through.
+ * @constructor
+ * @param {String} propName the name used to expose the length
+ */
+function DataLengthProbe(propName) {
+    GenericWorker.call(this, "DataLengthProbe for " + propName);
+    this.propName = propName;
+    this.withStreamInfo(propName, 0);
+}
+utils.inherits(DataLengthProbe, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+DataLengthProbe.prototype.processChunk = function (chunk) {
+    if(chunk) {
+        var length = this.streamInfo[this.propName] || 0;
+        this.streamInfo[this.propName] = length + chunk.data.length;
+    }
+    GenericWorker.prototype.processChunk.call(this, chunk);
+};
+module.exports = DataLengthProbe;
+
+
+},{"../utils":32,"./GenericWorker":28}],27:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var GenericWorker = require('./GenericWorker');
+
+// the size of the generated chunks
+// TODO expose this as a public variable
+var DEFAULT_BLOCK_SIZE = 16 * 1024;
+
+/**
+ * A worker that reads a content and emits chunks.
+ * @constructor
+ * @param {Promise} dataP the promise of the data to split
+ */
+function DataWorker(dataP) {
+    GenericWorker.call(this, "DataWorker");
+    var self = this;
+    this.dataIsReady = false;
+    this.index = 0;
+    this.max = 0;
+    this.data = null;
+    this.type = "";
+
+    this._tickScheduled = false;
+
+    dataP.then(function (data) {
+        self.dataIsReady = true;
+        self.data = data;
+        self.max = data && data.length || 0;
+        self.type = utils.getTypeOf(data);
+        if(!self.isPaused) {
+            self._tickAndRepeat();
+        }
+    }, function (e) {
+        self.error(e);
+    });
+}
+
+utils.inherits(DataWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.cleanUp
+ */
+DataWorker.prototype.cleanUp = function () {
+    GenericWorker.prototype.cleanUp.call(this);
+    this.data = null;
+};
+
+/**
+ * @see GenericWorker.resume
+ */
+DataWorker.prototype.resume = function () {
+    if(!GenericWorker.prototype.resume.call(this)) {
+        return false;
+    }
+
+    if (!this._tickScheduled && this.dataIsReady) {
+        this._tickScheduled = true;
+        utils.delay(this._tickAndRepeat, [], this);
+    }
+    return true;
+};
+
+/**
+ * Trigger a tick a schedule an other call to this function.
+ */
+DataWorker.prototype._tickAndRepeat = function() {
+    this._tickScheduled = false;
+    if(this.isPaused || this.isFinished) {
+        return;
+    }
+    this._tick();
+    if(!this.isFinished) {
+        utils.delay(this._tickAndRepeat, [], this);
+        this._tickScheduled = true;
+    }
+};
+
+/**
+ * Read and push a chunk.
+ */
+DataWorker.prototype._tick = function() {
+
+    if(this.isPaused || this.isFinished) {
+        return false;
+    }
+
+    var size = DEFAULT_BLOCK_SIZE;
+    var data = null, nextIndex = Math.min(this.max, this.index + size);
+    if (this.index >= this.max) {
+        // EOF
+        return this.end();
+    } else {
+        switch(this.type) {
+            case "string":
+                data = this.data.substring(this.index, nextIndex);
+            break;
+            case "uint8array":
+                data = this.data.subarray(this.index, nextIndex);
+            break;
+            case "array":
+            case "nodebuffer":
+                data = this.data.slice(this.index, nextIndex);
+            break;
+        }
+        this.index = nextIndex;
+        return this.push({
+            data : data,
+            meta : {
+                percent : this.max ? this.index / this.max * 100 : 0
+            }
+        });
+    }
+};
+
+module.exports = DataWorker;
+
+},{"../utils":32,"./GenericWorker":28}],28:[function(require,module,exports){
+'use strict';
+
+/**
+ * A worker that does nothing but passing chunks to the next one. This is like
+ * a nodejs stream but with some differences. On the good side :
+ * - it works on IE 6-9 without any issue / polyfill
+ * - it weights less than the full dependencies bundled with browserify
+ * - it forwards errors (no need to declare an error handler EVERYWHERE)
+ *
+ * A chunk is an object with 2 attributes : `meta` and `data`. The former is an
+ * object containing anything (`percent` for example), see each worker for more
+ * details. The latter is the real data (String, Uint8Array, etc).
+ *
+ * @constructor
+ * @param {String} name the name of the stream (mainly used for debugging purposes)
+ */
+function GenericWorker(name) {
+    // the name of the worker
+    this.name = name || "default";
+    // an object containing metadata about the workers chain
+    this.streamInfo = {};
+    // an error which happened when the worker was paused
+    this.generatedError = null;
+    // an object containing metadata to be merged by this worker into the general metadata
+    this.extraStreamInfo = {};
+    // true if the stream is paused (and should not do anything), false otherwise
+    this.isPaused = true;
+    // true if the stream is finished (and should not do anything), false otherwise
+    this.isFinished = false;
+    // true if the stream is locked to prevent further structure updates (pipe), false otherwise
+    this.isLocked = false;
+    // the event listeners
+    this._listeners = {
+        'data':[],
+        'end':[],
+        'error':[]
+    };
+    // the previous worker, if any
+    this.previous = null;
+}
+
+GenericWorker.prototype = {
+    /**
+     * Push a chunk to the next workers.
+     * @param {Object} chunk the chunk to push
+     */
+    push : function (chunk) {
+        this.emit("data", chunk);
+    },
+    /**
+     * End the stream.
+     * @return {Boolean} true if this call ended the worker, false otherwise.
+     */
+    end : function () {
+        if (this.isFinished) {
+            return false;
+        }
+
+        this.flush();
+        try {
+            this.emit("end");
+            this.cleanUp();
+            this.isFinished = true;
+        } catch (e) {
+            this.emit("error", e);
+        }
+        return true;
+    },
+    /**
+     * End the stream with an error.
+     * @param {Error} e the error which caused the premature end.
+     * @return {Boolean} true if this call ended the worker with an error, false otherwise.
+     */
+    error : function (e) {
+        if (this.isFinished) {
+            return false;
+        }
+
+        if(this.isPaused) {
+            this.generatedError = e;
+        } else {
+            this.isFinished = true;
+
+            this.emit("error", e);
+
+            // in the workers chain exploded in the middle of the chain,
+            // the error event will go downward but we also need to notify
+            // workers upward that there has been an error.
+            if(this.previous) {
+                this.previous.error(e);
+            }
+
+            this.cleanUp();
+        }
+        return true;
+    },
+    /**
+     * Add a callback on an event.
+     * @param {String} name the name of the event (data, end, error)
+     * @param {Function} listener the function to call when the event is triggered
+     * @return {GenericWorker} the current object for chainability
+     */
+    on : function (name, listener) {
+        this._listeners[name].push(listener);
+        return this;
+    },
+    /**
+     * Clean any references when a worker is ending.
+     */
+    cleanUp : function () {
+        this.streamInfo = this.generatedError = this.extraStreamInfo = null;
+        this._listeners = [];
+    },
+    /**
+     * Trigger an event. This will call registered callback with the provided arg.
+     * @param {String} name the name of the event (data, end, error)
+     * @param {Object} arg the argument to call the callback with.
+     */
+    emit : function (name, arg) {
+        if (this._listeners[name]) {
+            for(var i = 0; i < this._listeners[name].length; i++) {
+                this._listeners[name][i].call(this, arg);
+            }
+        }
+    },
+    /**
+     * Chain a worker with an other.
+     * @param {Worker} next the worker receiving events from the current one.
+     * @return {worker} the next worker for chainability
+     */
+    pipe : function (next) {
+        return next.registerPrevious(this);
+    },
+    /**
+     * Same as `pipe` in the other direction.
+     * Using an API with `pipe(next)` is very easy.
+     * Implementing the API with the point of view of the next one registering
+     * a source is easier, see the ZipFileWorker.
+     * @param {Worker} previous the previous worker, sending events to this one
+     * @return {Worker} the current worker for chainability
+     */
+    registerPrevious : function (previous) {
+        if (this.isLocked) {
+            throw new Error("The stream '" + this + "' has already been used.");
+        }
+
+        // sharing the streamInfo...
+        this.streamInfo = previous.streamInfo;
+        // ... and adding our own bits
+        this.mergeStreamInfo();
+        this.previous =  previous;
+        var self = this;
+        previous.on('data', function (chunk) {
+            self.processChunk(chunk);
+        });
+        previous.on('end', function () {
+            self.end();
+        });
+        previous.on('error', function (e) {
+            self.error(e);
+        });
+        return this;
+    },
+    /**
+     * Pause the stream so it doesn't send events anymore.
+     * @return {Boolean} true if this call paused the worker, false otherwise.
+     */
+    pause : function () {
+        if(this.isPaused || this.isFinished) {
+            return false;
+        }
+        this.isPaused = true;
+
+        if(this.previous) {
+            this.previous.pause();
+        }
+        return true;
+    },
+    /**
+     * Resume a paused stream.
+     * @return {Boolean} true if this call resumed the worker, false otherwise.
+     */
+    resume : function () {
+        if(!this.isPaused || this.isFinished) {
+            return false;
+        }
+        this.isPaused = false;
+
+        // if true, the worker tried to resume but failed
+        var withError = false;
+        if(this.generatedError) {
+            this.error(this.generatedError);
+            withError = true;
+        }
+        if(this.previous) {
+            this.previous.resume();
+        }
+
+        return !withError;
+    },
+    /**
+     * Flush any remaining bytes as the stream is ending.
+     */
+    flush : function () {},
+    /**
+     * Process a chunk. This is usually the method overridden.
+     * @param {Object} chunk the chunk to process.
+     */
+    processChunk : function(chunk) {
+        this.push(chunk);
+    },
+    /**
+     * Add a key/value to be added in the workers chain streamInfo once activated.
+     * @param {String} key the key to use
+     * @param {Object} value the associated value
+     * @return {Worker} the current worker for chainability
+     */
+    withStreamInfo : function (key, value) {
+        this.extraStreamInfo[key] = value;
+        this.mergeStreamInfo();
+        return this;
+    },
+    /**
+     * Merge this worker's streamInfo into the chain's streamInfo.
+     */
+    mergeStreamInfo : function () {
+        for(var key in this.extraStreamInfo) {
+            if (!this.extraStreamInfo.hasOwnProperty(key)) {
+                continue;
+            }
+            this.streamInfo[key] = this.extraStreamInfo[key];
+        }
+    },
+
+    /**
+     * Lock the stream to prevent further updates on the workers chain.
+     * After calling this method, all calls to pipe will fail.
+     */
+    lock: function () {
+        if (this.isLocked) {
+            throw new Error("The stream '" + this + "' has already been used.");
+        }
+        this.isLocked = true;
+        if (this.previous) {
+            this.previous.lock();
+        }
+    },
+
+    /**
+     *
+     * Pretty print the workers chain.
+     */
+    toString : function () {
+        var me = "Worker " + this.name;
+        if (this.previous) {
+            return this.previous + " -> " + me;
+        } else {
+            return me;
+        }
+    }
+};
+
+module.exports = GenericWorker;
+
+},{}],29:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var ConvertWorker = require('./ConvertWorker');
+var GenericWorker = require('./GenericWorker');
+var base64 = require('../base64');
+var support = require("../support");
+var external = require("../external");
+
+var NodejsStreamOutputAdapter = null;
+if (support.nodestream) {
+    try {
+        NodejsStreamOutputAdapter = require('../nodejs/NodejsStreamOutputAdapter');
+    } catch(e) {}
+}
+
+/**
+ * Apply the final transformation of the data. If the user wants a Blob for
+ * example, it's easier to work with an U8intArray and finally do the
+ * ArrayBuffer/Blob conversion.
+ * @param {String} type the name of the final type
+ * @param {String|Uint8Array|Buffer} content the content to transform
+ * @param {String} mimeType the mime type of the content, if applicable.
+ * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the content in the right format.
+ */
+function transformZipOutput(type, content, mimeType) {
+    switch(type) {
+        case "blob" :
+            return utils.newBlob(utils.transformTo("arraybuffer", content), mimeType);
+        case "base64" :
+            return base64.encode(content);
+        default :
+            return utils.transformTo(type, content);
+    }
+}
+
+/**
+ * Concatenate an array of data of the given type.
+ * @param {String} type the type of the data in the given array.
+ * @param {Array} dataArray the array containing the data chunks to concatenate
+ * @return {String|Uint8Array|Buffer} the concatenated data
+ * @throws Error if the asked type is unsupported
+ */
+function concat (type, dataArray) {
+    var i, index = 0, res = null, totalLength = 0;
+    for(i = 0; i < dataArray.length; i++) {
+        totalLength += dataArray[i].length;
+    }
+    switch(type) {
+        case "string":
+            return dataArray.join("");
+          case "array":
+            return Array.prototype.concat.apply([], dataArray);
+        case "uint8array":
+            res = new Uint8Array(totalLength);
+            for(i = 0; i < dataArray.length; i++) {
+                res.set(dataArray[i], index);
+                index += dataArray[i].length;
+            }
+            return res;
+        case "nodebuffer":
+            return Buffer.concat(dataArray);
+        default:
+            throw new Error("concat : unsupported type '"  + type + "'");
+    }
+}
+
+/**
+ * Listen a StreamHelper, accumulate its content and concatenate it into a
+ * complete block.
+ * @param {StreamHelper} helper the helper to use.
+ * @param {Function} updateCallback a callback called on each update. Called
+ * with one arg :
+ * - the metadata linked to the update received.
+ * @return Promise the promise for the accumulation.
+ */
+function accumulate(helper, updateCallback) {
+    return new external.Promise(function (resolve, reject){
+        var dataArray = [];
+        var chunkType = helper._internalType,
+            resultType = helper._outputType,
+            mimeType = helper._mimeType;
+        helper
+        .on('data', function (data, meta) {
+            dataArray.push(data);
+            if(updateCallback) {
+                updateCallback(meta);
+            }
+        })
+        .on('error', function(err) {
+            dataArray = [];
+            reject(err);
+        })
+        .on('end', function (){
+            try {
+                var result = transformZipOutput(resultType, concat(chunkType, dataArray), mimeType);
+                resolve(result);
+            } catch (e) {
+                reject(e);
+            }
+            dataArray = [];
+        })
+        .resume();
+    });
+}
+
+/**
+ * An helper to easily use workers outside of JSZip.
+ * @constructor
+ * @param {Worker} worker the worker to wrap
+ * @param {String} outputType the type of data expected by the use
+ * @param {String} mimeType the mime type of the content, if applicable.
+ */
+function StreamHelper(worker, outputType, mimeType) {
+    var internalType = outputType;
+    switch(outputType) {
+        case "blob":
+        case "arraybuffer":
+            internalType = "uint8array";
+        break;
+        case "base64":
+            internalType = "string";
+        break;
+    }
+
+    try {
+        // the type used internally
+        this._internalType = internalType;
+        // the type used to output results
+        this._outputType = outputType;
+        // the mime type
+        this._mimeType = mimeType;
+        utils.checkSupport(internalType);
+        this._worker = worker.pipe(new ConvertWorker(internalType));
+        // the last workers can be rewired without issues but we need to
+        // prevent any updates on previous workers.
+        worker.lock();
+    } catch(e) {
+        this._worker = new GenericWorker("error");
+        this._worker.error(e);
+    }
+}
+
+StreamHelper.prototype = {
+    /**
+     * Listen a StreamHelper, accumulate its content and concatenate it into a
+     * complete block.
+     * @param {Function} updateCb the update callback.
+     * @return Promise the promise for the accumulation.
+     */
+    accumulate : function (updateCb) {
+        return accumulate(this, updateCb);
+    },
+    /**
+     * Add a listener on an event triggered on a stream.
+     * @param {String} evt the name of the event
+     * @param {Function} fn the listener
+     * @return {StreamHelper} the current helper.
+     */
+    on : function (evt, fn) {
+        var self = this;
+
+        if(evt === "data") {
+            this._worker.on(evt, function (chunk) {
+                fn.call(self, chunk.data, chunk.meta);
+            });
+        } else {
+            this._worker.on(evt, function () {
+                utils.delay(fn, arguments, self);
+            });
+        }
+        return this;
+    },
+    /**
+     * Resume the flow of chunks.
+     * @return {StreamHelper} the current helper.
+     */
+    resume : function () {
+        utils.delay(this._worker.resume, [], this._worker);
+        return this;
+    },
+    /**
+     * Pause the flow of chunks.
+     * @return {StreamHelper} the current helper.
+     */
+    pause : function () {
+        this._worker.pause();
+        return this;
+    },
+    /**
+     * Return a nodejs stream for this helper.
+     * @param {Function} updateCb the update callback.
+     * @return {NodejsStreamOutputAdapter} the nodejs stream.
+     */
+    toNodejsStream : function (updateCb) {
+        utils.checkSupport("nodestream");
+        if (this._outputType !== "nodebuffer") {
+            // an object stream containing blob/arraybuffer/uint8array/string
+            // is strange and I don't know if it would be useful.
+            // I you find this comment and have a good usecase, please open a
+            // bug report !
+            throw new Error(this._outputType + " is not supported by this method");
+        }
+
+        return new NodejsStreamOutputAdapter(this, {
+            objectMode : this._outputType !== "nodebuffer"
+        }, updateCb);
+    }
+};
+
+
+module.exports = StreamHelper;
+
+},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(require,module,exports){
+'use strict';
+
+exports.base64 = true;
+exports.array = true;
+exports.string = true;
+exports.arraybuffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined";
+exports.nodebuffer = typeof Buffer !== "undefined";
+// contains true if JSZip can read/generate Uint8Array, false otherwise.
+exports.uint8array = typeof Uint8Array !== "undefined";
+
+if (typeof ArrayBuffer === "undefined") {
+    exports.blob = false;
+}
+else {
+    var buffer = new ArrayBuffer(0);
+    try {
+        exports.blob = new Blob([buffer], {
+            type: "application/zip"
+        }).size === 0;
+    }
+    catch (e) {
+        try {
+            var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder;
+            var builder = new Builder();
+            builder.append(buffer);
+            exports.blob = builder.getBlob('application/zip').size === 0;
+        }
+        catch (e) {
+            exports.blob = false;
+        }
+    }
+}
+
+try {
+    exports.nodestream = !!require('readable-stream').Readable;
+} catch(e) {
+    exports.nodestream = false;
+}
+
+},{"readable-stream":16}],31:[function(require,module,exports){
+'use strict';
+
+var utils = require('./utils');
+var support = require('./support');
+var nodejsUtils = require('./nodejsUtils');
+var GenericWorker = require('./stream/GenericWorker');
+
+/**
+ * The following functions come from pako, from pako/lib/utils/strings
+ * released under the MIT license, see pako https://github.com/nodeca/pako/
+ */
+
+// Table with utf8 lengths (calculated by first byte of sequence)
+// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,
+// because max possible codepoint is 0x10ffff
+var _utf8len = new Array(256);
+for (var i=0; i<256; i++) {
+  _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);
+}
+_utf8len[254]=_utf8len[254]=1; // Invalid sequence start
+
+// convert string to array (typed, when possible)
+var string2buf = function (str) {
+    var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
+
+    // count binary size
+    for (m_pos = 0; m_pos < str_len; m_pos++) {
+        c = str.charCodeAt(m_pos);
+        if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {
+            c2 = str.charCodeAt(m_pos+1);
+            if ((c2 & 0xfc00) === 0xdc00) {
+                c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+                m_pos++;
+            }
+        }
+        buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;
+    }
+
+    // allocate buffer
+    if (support.uint8array) {
+        buf = new Uint8Array(buf_len);
+    } else {
+        buf = new Array(buf_len);
+    }
+
+    // convert
+    for (i=0, m_pos = 0; i < buf_len; m_pos++) {
+        c = str.charCodeAt(m_pos);
+        if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {
+            c2 = str.charCodeAt(m_pos+1);
+            if ((c2 & 0xfc00) === 0xdc00) {
+                c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+                m_pos++;
+            }
+        }
+        if (c < 0x80) {
+            /* one byte */
+            buf[i++] = c;
+        } else if (c < 0x800) {
+            /* two bytes */
+            buf[i++] = 0xC0 | (c >>> 6);
+            buf[i++] = 0x80 | (c & 0x3f);
+        } else if (c < 0x10000) {
+            /* three bytes */
+            buf[i++] = 0xE0 | (c >>> 12);
+            buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+            buf[i++] = 0x80 | (c & 0x3f);
+        } else {
+            /* four bytes */
+            buf[i++] = 0xf0 | (c >>> 18);
+            buf[i++] = 0x80 | (c >>> 12 & 0x3f);
+            buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+            buf[i++] = 0x80 | (c & 0x3f);
+        }
+    }
+
+    return buf;
+};
+
+// Calculate max possible position in utf8 buffer,
+// that will not break sequence. If that's not possible
+// - (very small limits) return max size as is.
+//
+// buf[] - utf8 bytes array
+// max   - length limit (mandatory);
+var utf8border = function(buf, max) {
+    var pos;
+
+    max = max || buf.length;
+    if (max > buf.length) { max = buf.length; }
+
+    // go back from last position, until start of sequence found
+    pos = max-1;
+    while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }
+
+    // Fuckup - very small and broken sequence,
+    // return max, because we should return something anyway.
+    if (pos < 0) { return max; }
+
+    // If we came to start of buffer - that means vuffer is too small,
+    // return max too.
+    if (pos === 0) { return max; }
+
+    return (pos + _utf8len[buf[pos]] > max) ? pos : max;
+};
+
+// convert array to string
+var buf2string = function (buf) {
+    var str, i, out, c, c_len;
+    var len = buf.length;
+
+    // Reserve max possible length (2 words per char)
+    // NB: by unknown reasons, Array is significantly faster for
+    //     String.fromCharCode.apply than Uint16Array.
+    var utf16buf = new Array(len*2);
+
+    for (out=0, i=0; i<len;) {
+        c = buf[i++];
+        // quick process ascii
+        if (c < 0x80) { utf16buf[out++] = c; continue; }
+
+        c_len = _utf8len[c];
+        // skip 5 & 6 byte codes
+        if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; }
+
+        // apply mask on first byte
+        c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;
+        // join the rest
+        while (c_len > 1 && i < len) {
+            c = (c << 6) | (buf[i++] & 0x3f);
+            c_len--;
+        }
+
+        // terminated by end of string?
+        if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }
+
+        if (c < 0x10000) {
+            utf16buf[out++] = c;
+        } else {
+            c -= 0x10000;
+            utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);
+            utf16buf[out++] = 0xdc00 | (c & 0x3ff);
+        }
+    }
+
+    // shrinkBuf(utf16buf, out)
+    if (utf16buf.length !== out) {
+        if(utf16buf.subarray) {
+            utf16buf = utf16buf.subarray(0, out);
+        } else {
+            utf16buf.length = out;
+        }
+    }
+
+    // return String.fromCharCode.apply(null, utf16buf);
+    return utils.applyFromCharCode(utf16buf);
+};
+
+
+// That's all for the pako functions.
+
+
+/**
+ * Transform a javascript string into an array (typed if possible) of bytes,
+ * UTF-8 encoded.
+ * @param {String} str the string to encode
+ * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string.
+ */
+exports.utf8encode = function utf8encode(str) {
+    if (support.nodebuffer) {
+        return nodejsUtils.newBufferFrom(str, "utf-8");
+    }
+
+    return string2buf(str);
+};
+
+
+/**
+ * Transform a bytes array (or a representation) representing an UTF-8 encoded
+ * string into a javascript string.
+ * @param {Array|Uint8Array|Buffer} buf the data de decode
+ * @return {String} the decoded string.
+ */
+exports.utf8decode = function utf8decode(buf) {
+    if (support.nodebuffer) {
+        return utils.transformTo("nodebuffer", buf).toString("utf-8");
+    }
+
+    buf = utils.transformTo(support.uint8array ? "uint8array" : "array", buf);
+
+    return buf2string(buf);
+};
+
+/**
+ * A worker to decode utf8 encoded binary chunks into string chunks.
+ * @constructor
+ */
+function Utf8DecodeWorker() {
+    GenericWorker.call(this, "utf-8 decode");
+    // the last bytes if a chunk didn't end with a complete codepoint.
+    this.leftOver = null;
+}
+utils.inherits(Utf8DecodeWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+Utf8DecodeWorker.prototype.processChunk = function (chunk) {
+
+    var data = utils.transformTo(support.uint8array ? "uint8array" : "array", chunk.data);
+
+    // 1st step, re-use what's left of the previous chunk
+    if (this.leftOver && this.leftOver.length) {
+        if(support.uint8array) {
+            var previousData = data;
+            data = new Uint8Array(previousData.length + this.leftOver.length);
+            data.set(this.leftOver, 0);
+            data.set(previousData, this.leftOver.length);
+        } else {
+            data = this.leftOver.concat(data);
+        }
+        this.leftOver = null;
+    }
+
+    var nextBoundary = utf8border(data);
+    var usableData = data;
+    if (nextBoundary !== data.length) {
+        if (support.uint8array) {
+            usableData = data.subarray(0, nextBoundary);
+            this.leftOver = data.subarray(nextBoundary, data.length);
+        } else {
+            usableData = data.slice(0, nextBoundary);
+            this.leftOver = data.slice(nextBoundary, data.length);
+        }
+    }
+
+    this.push({
+        data : exports.utf8decode(usableData),
+        meta : chunk.meta
+    });
+};
+
+/**
+ * @see GenericWorker.flush
+ */
+Utf8DecodeWorker.prototype.flush = function () {
+    if(this.leftOver && this.leftOver.length) {
+        this.push({
+            data : exports.utf8decode(this.leftOver),
+            meta : {}
+        });
+        this.leftOver = null;
+    }
+};
+exports.Utf8DecodeWorker = Utf8DecodeWorker;
+
+/**
+ * A worker to endcode string chunks into utf8 encoded binary chunks.
+ * @constructor
+ */
+function Utf8EncodeWorker() {
+    GenericWorker.call(this, "utf-8 encode");
+}
+utils.inherits(Utf8EncodeWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+Utf8EncodeWorker.prototype.processChunk = function (chunk) {
+    this.push({
+        data : exports.utf8encode(chunk.data),
+        meta : chunk.meta
+    });
+};
+exports.Utf8EncodeWorker = Utf8EncodeWorker;
+
+},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(require,module,exports){
+'use strict';
+
+var support = require('./support');
+var base64 = require('./base64');
+var nodejsUtils = require('./nodejsUtils');
+var setImmediate = require('core-js/library/fn/set-immediate');
+var external = require("./external");
+
+
+/**
+ * Convert a string that pass as a "binary string": it should represent a byte
+ * array but may have > 255 char codes. Be sure to take only the first byte
+ * and returns the byte array.
+ * @param {String} str the string to transform.
+ * @return {Array|Uint8Array} the string in a binary format.
+ */
+function string2binary(str) {
+    var result = null;
+    if (support.uint8array) {
+      result = new Uint8Array(str.length);
+    } else {
+      result = new Array(str.length);
+    }
+    return stringToArrayLike(str, result);
+}
+
+/**
+ * Create a new blob with the given content and the given type.
+ * @param {String|ArrayBuffer} part the content to put in the blob. DO NOT use
+ * an Uint8Array because the stock browser of android 4 won't accept it (it
+ * will be silently converted to a string, "[object Uint8Array]").
+ *
+ * Use only ONE part to build the blob to avoid a memory leak in IE11 / Edge:
+ * when a large amount of Array is used to create the Blob, the amount of
+ * memory consumed is nearly 100 times the original data amount.
+ *
+ * @param {String} type the mime type of the blob.
+ * @return {Blob} the created blob.
+ */
+exports.newBlob = function(part, type) {
+    exports.checkSupport("blob");
+
+    try {
+        // Blob constructor
+        return new Blob([part], {
+            type: type
+        });
+    }
+    catch (e) {
+
+        try {
+            // deprecated, browser only, old way
+            var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder;
+            var builder = new Builder();
+            builder.append(part);
+            return builder.getBlob(type);
+        }
+        catch (e) {
+
+            // well, fuck ?!
+            throw new Error("Bug : can't construct the Blob.");
+        }
+    }
+
+
+};
+/**
+ * The identity function.
+ * @param {Object} input the input.
+ * @return {Object} the same input.
+ */
+function identity(input) {
+    return input;
+}
+
+/**
+ * Fill in an array with a string.
+ * @param {String} str the string to use.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated).
+ * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array.
+ */
+function stringToArrayLike(str, array) {
+    for (var i = 0; i < str.length; ++i) {
+        array[i] = str.charCodeAt(i) & 0xFF;
+    }
+    return array;
+}
+
+/**
+ * An helper for the function arrayLikeToString.
+ * This contains static informations and functions that
+ * can be optimized by the browser JIT compiler.
+ */
+var arrayToStringHelper = {
+    /**
+     * Transform an array of int into a string, chunk by chunk.
+     * See the performances notes on arrayLikeToString.
+     * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
+     * @param {String} type the type of the array.
+     * @param {Integer} chunk the chunk size.
+     * @return {String} the resulting string.
+     * @throws Error if the chunk is too big for the stack.
+     */
+    stringifyByChunk: function(array, type, chunk) {
+        var result = [], k = 0, len = array.length;
+        // shortcut
+        if (len <= chunk) {
+            return String.fromCharCode.apply(null, array);
+        }
+        while (k < len) {
+            if (type === "array" || type === "nodebuffer") {
+                result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len))));
+            }
+            else {
+                result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len))));
+            }
+            k += chunk;
+        }
+        return result.join("");
+    },
+    /**
+     * Call String.fromCharCode on every item in the array.
+     * This is the naive implementation, which generate A LOT of intermediate string.
+     * This should be used when everything else fail.
+     * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
+     * @return {String} the result.
+     */
+    stringifyByChar: function(array){
+        var resultStr = "";
+        for(var i = 0; i < array.length; i++) {
+            resultStr += String.fromCharCode(array[i]);
+        }
+        return resultStr;
+    },
+    applyCanBeUsed : {
+        /**
+         * true if the browser accepts to use String.fromCharCode on Uint8Array
+         */
+        uint8array : (function () {
+            try {
+                return support.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1;
+            } catch (e) {
+                return false;
+            }
+        })(),
+        /**
+         * true if the browser accepts to use String.fromCharCode on nodejs Buffer.
+         */
+        nodebuffer : (function () {
+            try {
+                return support.nodebuffer && String.fromCharCode.apply(null, nodejsUtils.allocBuffer(1)).length === 1;
+            } catch (e) {
+                return false;
+            }
+        })()
+    }
+};
+
+/**
+ * Transform an array-like object to a string.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
+ * @return {String} the result.
+ */
+function arrayLikeToString(array) {
+    // Performances notes :
+    // --------------------
+    // String.fromCharCode.apply(null, array) is the fastest, see
+    // see http://jsperf.com/converting-a-uint8array-to-a-string/2
+    // but the stack is limited (and we can get huge arrays !).
+    //
+    // result += String.fromCharCode(array[i]); generate too many strings !
+    //
+    // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2
+    // TODO : we now have workers that split the work. Do we still need that ?
+    var chunk = 65536,
+        type = exports.getTypeOf(array),
+        canUseApply = true;
+    if (type === "uint8array") {
+        canUseApply = arrayToStringHelper.applyCanBeUsed.uint8array;
+    } else if (type === "nodebuffer") {
+        canUseApply = arrayToStringHelper.applyCanBeUsed.nodebuffer;
+    }
+
+    if (canUseApply) {
+        while (chunk > 1) {
+            try {
+                return arrayToStringHelper.stringifyByChunk(array, type, chunk);
+            } catch (e) {
+                chunk = Math.floor(chunk / 2);
+            }
+        }
+    }
+
+    // no apply or chunk error : slow and painful algorithm
+    // default browser on android 4.*
+    return arrayToStringHelper.stringifyByChar(array);
+}
+
+exports.applyFromCharCode = arrayLikeToString;
+
+
+/**
+ * Copy the data from an array-like to an other array-like.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated.
+ * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array.
+ */
+function arrayLikeToArrayLike(arrayFrom, arrayTo) {
+    for (var i = 0; i < arrayFrom.length; i++) {
+        arrayTo[i] = arrayFrom[i];
+    }
+    return arrayTo;
+}
+
+// a matrix containing functions to transform everything into everything.
+var transform = {};
+
+// string to ?
+transform["string"] = {
+    "string": identity,
+    "array": function(input) {
+        return stringToArrayLike(input, new Array(input.length));
+    },
+    "arraybuffer": function(input) {
+        return transform["string"]["uint8array"](input).buffer;
+    },
+    "uint8array": function(input) {
+        return stringToArrayLike(input, new Uint8Array(input.length));
+    },
+    "nodebuffer": function(input) {
+        return stringToArrayLike(input, nodejsUtils.allocBuffer(input.length));
+    }
+};
+
+// array to ?
+transform["array"] = {
+    "string": arrayLikeToString,
+    "array": identity,
+    "arraybuffer": function(input) {
+        return (new Uint8Array(input)).buffer;
+    },
+    "uint8array": function(input) {
+        return new Uint8Array(input);
+    },
+    "nodebuffer": function(input) {
+        return nodejsUtils.newBufferFrom(input);
+    }
+};
+
+// arraybuffer to ?
+transform["arraybuffer"] = {
+    "string": function(input) {
+        return arrayLikeToString(new Uint8Array(input));
+    },
+    "array": function(input) {
+        return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength));
+    },
+    "arraybuffer": identity,
+    "uint8array": function(input) {
+        return new Uint8Array(input);
+    },
+    "nodebuffer": function(input) {
+        return nodejsUtils.newBufferFrom(new Uint8Array(input));
+    }
+};
+
+// uint8array to ?
+transform["uint8array"] = {
+    "string": arrayLikeToString,
+    "array": function(input) {
+        return arrayLikeToArrayLike(input, new Array(input.length));
+    },
+    "arraybuffer": function(input) {
+        return input.buffer;
+    },
+    "uint8array": identity,
+    "nodebuffer": function(input) {
+        return nodejsUtils.newBufferFrom(input);
+    }
+};
+
+// nodebuffer to ?
+transform["nodebuffer"] = {
+    "string": arrayLikeToString,
+    "array": function(input) {
+        return arrayLikeToArrayLike(input, new Array(input.length));
+    },
+    "arraybuffer": function(input) {
+        return transform["nodebuffer"]["uint8array"](input).buffer;
+    },
+    "uint8array": function(input) {
+        return arrayLikeToArrayLike(input, new Uint8Array(input.length));
+    },
+    "nodebuffer": identity
+};
+
+/**
+ * Transform an input into any type.
+ * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer.
+ * If no output type is specified, the unmodified input will be returned.
+ * @param {String} outputType the output type.
+ * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert.
+ * @throws {Error} an Error if the browser doesn't support the requested output type.
+ */
+exports.transformTo = function(outputType, input) {
+    if (!input) {
+        // undefined, null, etc
+        // an empty string won't harm.
+        input = "";
+    }
+    if (!outputType) {
+        return input;
+    }
+    exports.checkSupport(outputType);
+    var inputType = exports.getTypeOf(input);
+    var result = transform[inputType][outputType](input);
+    return result;
+};
+
+/**
+ * Return the type of the input.
+ * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer.
+ * @param {Object} input the input to identify.
+ * @return {String} the (lowercase) type of the input.
+ */
+exports.getTypeOf = function(input) {
+    if (typeof input === "string") {
+        return "string";
+    }
+    if (Object.prototype.toString.call(input) === "[object Array]") {
+        return "array";
+    }
+    if (support.nodebuffer && nodejsUtils.isBuffer(input)) {
+        return "nodebuffer";
+    }
+    if (support.uint8array && input instanceof Uint8Array) {
+        return "uint8array";
+    }
+    if (support.arraybuffer && input instanceof ArrayBuffer) {
+        return "arraybuffer";
+    }
+};
+
+/**
+ * Throw an exception if the type is not supported.
+ * @param {String} type the type to check.
+ * @throws {Error} an Error if the browser doesn't support the requested type.
+ */
+exports.checkSupport = function(type) {
+    var supported = support[type.toLowerCase()];
+    if (!supported) {
+        throw new Error(type + " is not supported by this platform");
+    }
+};
+
+exports.MAX_VALUE_16BITS = 65535;
+exports.MAX_VALUE_32BITS = -1; // well, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" is parsed as -1
+
+/**
+ * Prettify a string read as binary.
+ * @param {string} str the string to prettify.
+ * @return {string} a pretty string.
+ */
+exports.pretty = function(str) {
+    var res = '',
+        code, i;
+    for (i = 0; i < (str || "").length; i++) {
+        code = str.charCodeAt(i);
+        res += '\\x' + (code < 16 ? "0" : "") + code.toString(16).toUpperCase();
+    }
+    return res;
+};
+
+/**
+ * Defer the call of a function.
+ * @param {Function} callback the function to call asynchronously.
+ * @param {Array} args the arguments to give to the callback.
+ */
+exports.delay = function(callback, args, self) {
+    setImmediate(function () {
+        callback.apply(self || null, args || []);
+    });
+};
+
+/**
+ * Extends a prototype with an other, without calling a constructor with
+ * side effects. Inspired by nodejs' `utils.inherits`
+ * @param {Function} ctor the constructor to augment
+ * @param {Function} superCtor the parent constructor to use
+ */
+exports.inherits = function (ctor, superCtor) {
+    var Obj = function() {};
+    Obj.prototype = superCtor.prototype;
+    ctor.prototype = new Obj();
+};
+
+/**
+ * Merge the objects passed as parameters into a new one.
+ * @private
+ * @param {...Object} var_args All objects to merge.
+ * @return {Object} a new object with the data of the others.
+ */
+exports.extend = function() {
+    var result = {}, i, attr;
+    for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers
+        for (attr in arguments[i]) {
+            if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === "undefined") {
+                result[attr] = arguments[i][attr];
+            }
+        }
+    }
+    return result;
+};
+
+/**
+ * Transform arbitrary content into a Promise.
+ * @param {String} name a name for the content being processed.
+ * @param {Object} inputData the content to process.
+ * @param {Boolean} isBinary true if the content is not an unicode string
+ * @param {Boolean} isOptimizedBinaryString true if the string content only has one byte per character.
+ * @param {Boolean} isBase64 true if the string content is encoded with base64.
+ * @return {Promise} a promise in a format usable by JSZip.
+ */
+exports.prepareContent = function(name, inputData, isBinary, isOptimizedBinaryString, isBase64) {
+
+    // if inputData is already a promise, this flatten it.
+    var promise = external.Promise.resolve(inputData).then(function(data) {
+        
+        
+        var isBlob = support.blob && (data instanceof Blob || ['[object File]', '[object Blob]'].indexOf(Object.prototype.toString.call(data)) !== -1);
+
+        if (isBlob && typeof FileReader !== "undefined") {
+            return new external.Promise(function (resolve, reject) {
+                var reader = new FileReader();
+
+                reader.onload = function(e) {
+                    resolve(e.target.result);
+                };
+                reader.onerror = function(e) {
+                    reject(e.target.error);
+                };
+                reader.readAsArrayBuffer(data);
+            });
+        } else {
+            return data;
+        }
+    });
+
+    return promise.then(function(data) {
+        var dataType = exports.getTypeOf(data);
+
+        if (!dataType) {
+            return external.Promise.reject(
+                new Error("Can't read the data of '" + name + "'. Is it " +
+                          "in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?")
+            );
+        }
+        // special case : it's way easier to work with Uint8Array than with ArrayBuffer
+        if (dataType === "arraybuffer") {
+            data = exports.transformTo("uint8array", data);
+        } else if (dataType === "string") {
+            if (isBase64) {
+                data = base64.decode(data);
+            }
+            else if (isBinary) {
+                // optimizedBinaryString === true means that the file has already been filtered with a 0xFF mask
+                if (isOptimizedBinaryString !== true) {
+                    // this is a string, not in a base64 format.
+                    // Be sure that this is a correct "binary string"
+                    data = string2binary(data);
+                }
+            }
+        }
+        return data;
+    });
+};
+
+},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"core-js/library/fn/set-immediate":36}],33:[function(require,module,exports){
+'use strict';
+var readerFor = require('./reader/readerFor');
+var utils = require('./utils');
+var sig = require('./signature');
+var ZipEntry = require('./zipEntry');
+var utf8 = require('./utf8');
+var support = require('./support');
+//  class ZipEntries {{{
+/**
+ * All the entries in the zip file.
+ * @constructor
+ * @param {Object} loadOptions Options for loading the stream.
+ */
+function ZipEntries(loadOptions) {
+    this.files = [];
+    this.loadOptions = loadOptions;
+}
+ZipEntries.prototype = {
+    /**
+     * Check that the reader is on the specified signature.
+     * @param {string} expectedSignature the expected signature.
+     * @throws {Error} if it is an other signature.
+     */
+    checkSignature: function(expectedSignature) {
+        if (!this.reader.readAndCheckSignature(expectedSignature)) {
+            this.reader.index -= 4;
+            var signature = this.reader.readString(4);
+            throw new Error("Corrupted zip or bug: unexpected signature " + "(" + utils.pretty(signature) + ", expected " + utils.pretty(expectedSignature) + ")");
+        }
+    },
+    /**
+     * Check if the given signature is at the given index.
+     * @param {number} askedIndex the index to check.
+     * @param {string} expectedSignature the signature to expect.
+     * @return {boolean} true if the signature is here, false otherwise.
+     */
+    isSignature: function(askedIndex, expectedSignature) {
+        var currentIndex = this.reader.index;
+        this.reader.setIndex(askedIndex);
+        var signature = this.reader.readString(4);
+        var result = signature === expectedSignature;
+        this.reader.setIndex(currentIndex);
+        return result;
+    },
+    /**
+     * Read the end of the central directory.
+     */
+    readBlockEndOfCentral: function() {
+        this.diskNumber = this.reader.readInt(2);
+        this.diskWithCentralDirStart = this.reader.readInt(2);
+        this.centralDirRecordsOnThisDisk = this.reader.readInt(2);
+        this.centralDirRecords = this.reader.readInt(2);
+        this.centralDirSize = this.reader.readInt(4);
+        this.centralDirOffset = this.reader.readInt(4);
+
+        this.zipCommentLength = this.reader.readInt(2);
+        // warning : the encoding depends of the system locale
+        // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded.
+        // On a windows machine, this field is encoded with the localized windows code page.
+        var zipComment = this.reader.readData(this.zipCommentLength);
+        var decodeParamType = support.uint8array ? "uint8array" : "array";
+        // To get consistent behavior with the generation part, we will assume that
+        // this is utf8 encoded unless specified otherwise.
+        var decodeContent = utils.transformTo(decodeParamType, zipComment);
+        this.zipComment = this.loadOptions.decodeFileName(decodeContent);
+    },
+    /**
+     * Read the end of the Zip 64 central directory.
+     * Not merged with the method readEndOfCentral :
+     * The end of central can coexist with its Zip64 brother,
+     * I don't want to read the wrong number of bytes !
+     */
+    readBlockZip64EndOfCentral: function() {
+        this.zip64EndOfCentralSize = this.reader.readInt(8);
+        this.reader.skip(4);
+        // this.versionMadeBy = this.reader.readString(2);
+        // this.versionNeeded = this.reader.readInt(2);
+        this.diskNumber = this.reader.readInt(4);
+        this.diskWithCentralDirStart = this.reader.readInt(4);
+        this.centralDirRecordsOnThisDisk = this.reader.readInt(8);
+        this.centralDirRecords = this.reader.readInt(8);
+        this.centralDirSize = this.reader.readInt(8);
+        this.centralDirOffset = this.reader.readInt(8);
+
+        this.zip64ExtensibleData = {};
+        var extraDataSize = this.zip64EndOfCentralSize - 44,
+            index = 0,
+            extraFieldId,
+            extraFieldLength,
+            extraFieldValue;
+        while (index < extraDataSize) {
+            extraFieldId = this.reader.readInt(2);
+            extraFieldLength = this.reader.readInt(4);
+            extraFieldValue = this.reader.readData(extraFieldLength);
+            this.zip64ExtensibleData[extraFieldId] = {
+                id: extraFieldId,
+                length: extraFieldLength,
+                value: extraFieldValue
+            };
+        }
+    },
+    /**
+     * Read the end of the Zip 64 central directory locator.
+     */
+    readBlockZip64EndOfCentralLocator: function() {
+        this.diskWithZip64CentralDirStart = this.reader.readInt(4);
+        this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8);
+        this.disksCount = this.reader.readInt(4);
+        if (this.disksCount > 1) {
+            throw new Error("Multi-volumes zip are not supported");
+        }
+    },
+    /**
+     * Read the local files, based on the offset read in the central part.
+     */
+    readLocalFiles: function() {
+        var i, file;
+        for (i = 0; i < this.files.length; i++) {
+            file = this.files[i];
+            this.reader.setIndex(file.localHeaderOffset);
+            this.checkSignature(sig.LOCAL_FILE_HEADER);
+            file.readLocalPart(this.reader);
+            file.handleUTF8();
+            file.processAttributes();
+        }
+    },
+    /**
+     * Read the central directory.
+     */
+    readCentralDir: function() {
+        var file;
+
+        this.reader.setIndex(this.centralDirOffset);
+        while (this.reader.readAndCheckSignature(sig.CENTRAL_FILE_HEADER)) {
+            file = new ZipEntry({
+                zip64: this.zip64
+            }, this.loadOptions);
+            file.readCentralPart(this.reader);
+            this.files.push(file);
+        }
+
+        if (this.centralDirRecords !== this.files.length) {
+            if (this.centralDirRecords !== 0 && this.files.length === 0) {
+                // We expected some records but couldn't find ANY.
+                // This is really suspicious, as if something went wrong.
+                throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length);
+            } else {
+                // We found some records but not all.
+                // Something is wrong but we got something for the user: no error here.
+                // console.warn("expected", this.centralDirRecords, "records in central dir, got", this.files.length);
+            }
+        }
+    },
+    /**
+     * Read the end of central directory.
+     */
+    readEndOfCentral: function() {
+        var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END);
+        if (offset < 0) {
+            // Check if the content is a truncated zip or complete garbage.
+            // A "LOCAL_FILE_HEADER" is not required at the beginning (auto
+            // extractible zip for example) but it can give a good hint.
+            // If an ajax request was used without responseType, we will also
+            // get unreadable data.
+            var isGarbage = !this.isSignature(0, sig.LOCAL_FILE_HEADER);
+
+            if (isGarbage) {
+                throw new Error("Can't find end of central directory : is this a zip file ? " +
+                                "If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");
+            } else {
+                throw new Error("Corrupted zip: can't find end of central directory");
+            }
+
+        }
+        this.reader.setIndex(offset);
+        var endOfCentralDirOffset = offset;
+        this.checkSignature(sig.CENTRAL_DIRECTORY_END);
+        this.readBlockEndOfCentral();
+
+
+        /* extract from the zip spec :
+            4)  If one of the fields in the end of central directory
+                record is too small to hold required data, the field
+                should be set to -1 (0xFFFF or 0xFFFFFFFF) and the
+                ZIP64 format record should be created.
+            5)  The end of central directory record and the
+                Zip64 end of central directory locator record must
+                reside on the same disk when splitting or spanning
+                an archive.
+         */
+        if (this.diskNumber === utils.MAX_VALUE_16BITS || this.diskWithCentralDirStart === utils.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === utils.MAX_VALUE_16BITS || this.centralDirRecords === utils.MAX_VALUE_16BITS || this.centralDirSize === utils.MAX_VALUE_32BITS || this.centralDirOffset === utils.MAX_VALUE_32BITS) {
+            this.zip64 = true;
+
+            /*
+            Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from
+            the zip file can fit into a 32bits integer. This cannot be solved : JavaScript represents
+            all numbers as 64-bit double precision IEEE 754 floating point numbers.
+            So, we have 53bits for integers and bitwise operations treat everything as 32bits.
+            see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators
+            and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5
+            */
+
+            // should look for a zip64 EOCD locator
+            offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);
+            if (offset < 0) {
+                throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");
+            }
+            this.reader.setIndex(offset);
+            this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);
+            this.readBlockZip64EndOfCentralLocator();
+
+            // now the zip64 EOCD record
+            if (!this.isSignature(this.relativeOffsetEndOfZip64CentralDir, sig.ZIP64_CENTRAL_DIRECTORY_END)) {
+                // console.warn("ZIP64 end of central directory not where expected.");
+                this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_END);
+                if (this.relativeOffsetEndOfZip64CentralDir < 0) {
+                    throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");
+                }
+            }
+            this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir);
+            this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END);
+            this.readBlockZip64EndOfCentral();
+        }
+
+        var expectedEndOfCentralDirOffset = this.centralDirOffset + this.centralDirSize;
+        if (this.zip64) {
+            expectedEndOfCentralDirOffset += 20; // end of central dir 64 locator
+            expectedEndOfCentralDirOffset += 12 /* should not include the leading 12 bytes */ + this.zip64EndOfCentralSize;
+        }
+
+        var extraBytes = endOfCentralDirOffset - expectedEndOfCentralDirOffset;
+
+        if (extraBytes > 0) {
+            // console.warn(extraBytes, "extra bytes at beginning or within zipfile");
+            if (this.isSignature(endOfCentralDirOffset, sig.CENTRAL_FILE_HEADER)) {
+                // The offsets seem wrong, but we have something at the specified offset.
+                // So… we keep it.
+            } else {
+                // the offset is wrong, update the "zero" of the reader
+                // this happens if data has been prepended (crx files for example)
+                this.reader.zero = extraBytes;
+            }
+        } else if (extraBytes < 0) {
+            throw new Error("Corrupted zip: missing " + Math.abs(extraBytes) + " bytes.");
+        }
+    },
+    prepareReader: function(data) {
+        this.reader = readerFor(data);
+    },
+    /**
+     * Read a zip file and create ZipEntries.
+     * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file.
+     */
+    load: function(data) {
+        this.prepareReader(data);
+        this.readEndOfCentral();
+        this.readCentralDir();
+        this.readLocalFiles();
+    }
+};
+// }}} end of ZipEntries
+module.exports = ZipEntries;
+
+},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(require,module,exports){
+'use strict';
+var readerFor = require('./reader/readerFor');
+var utils = require('./utils');
+var CompressedObject = require('./compressedObject');
+var crc32fn = require('./crc32');
+var utf8 = require('./utf8');
+var compressions = require('./compressions');
+var support = require('./support');
+
+var MADE_BY_DOS = 0x00;
+var MADE_BY_UNIX = 0x03;
+
+/**
+ * Find a compression registered in JSZip.
+ * @param {string} compressionMethod the method magic to find.
+ * @return {Object|null} the JSZip compression object, null if none found.
+ */
+var findCompression = function(compressionMethod) {
+    for (var method in compressions) {
+        if (!compressions.hasOwnProperty(method)) {
+            continue;
+        }
+        if (compressions[method].magic === compressionMethod) {
+            return compressions[method];
+        }
+    }
+    return null;
+};
+
+// class ZipEntry {{{
+/**
+ * An entry in the zip file.
+ * @constructor
+ * @param {Object} options Options of the current file.
+ * @param {Object} loadOptions Options for loading the stream.
+ */
+function ZipEntry(options, loadOptions) {
+    this.options = options;
+    this.loadOptions = loadOptions;
+}
+ZipEntry.prototype = {
+    /**
+     * say if the file is encrypted.
+     * @return {boolean} true if the file is encrypted, false otherwise.
+     */
+    isEncrypted: function() {
+        // bit 1 is set
+        return (this.bitFlag & 0x0001) === 0x0001;
+    },
+    /**
+     * say if the file has utf-8 filename/comment.
+     * @return {boolean} true if the filename/comment is in utf-8, false otherwise.
+     */
+    useUTF8: function() {
+        // bit 11 is set
+        return (this.bitFlag & 0x0800) === 0x0800;
+    },
+    /**
+     * Read the local part of a zip file and add the info in this object.
+     * @param {DataReader} reader the reader to use.
+     */
+    readLocalPart: function(reader) {
+        var compression, localExtraFieldsLength;
+
+        // we already know everything from the central dir !
+        // If the central dir data are false, we are doomed.
+        // On the bright side, the local part is scary  : zip64, data descriptors, both, etc.
+        // The less data we get here, the more reliable this should be.
+        // Let's skip the whole header and dash to the data !
+        reader.skip(22);
+        // in some zip created on windows, the filename stored in the central dir contains \ instead of /.
+        // Strangely, the filename here is OK.
+        // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes
+        // or APPNOTE#4.4.17.1, "All slashes MUST be forward slashes '/'") but there are a lot of bad zip generators...
+        // Search "unzip mismatching "local" filename continuing with "central" filename version" on
+        // the internet.
+        //
+        // I think I see the logic here : the central directory is used to display
+        // content and the local directory is used to extract the files. Mixing / and \
+        // may be used to display \ to windows users and use / when extracting the files.
+        // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394
+        this.fileNameLength = reader.readInt(2);
+        localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir
+        // the fileName is stored as binary data, the handleUTF8 method will take care of the encoding.
+        this.fileName = reader.readData(this.fileNameLength);
+        reader.skip(localExtraFieldsLength);
+
+        if (this.compressedSize === -1 || this.uncompressedSize === -1) {
+            throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory " + "(compressedSize === -1 || uncompressedSize === -1)");
+        }
+
+        compression = findCompression(this.compressionMethod);
+        if (compression === null) { // no compression found
+            throw new Error("Corrupted zip : compression " + utils.pretty(this.compressionMethod) + " unknown (inner file : " + utils.transformTo("string", this.fileName) + ")");
+        }
+        this.decompressed = new CompressedObject(this.compressedSize, this.uncompressedSize, this.crc32, compression, reader.readData(this.compressedSize));
+    },
+
+    /**
+     * Read the central part of a zip file and add the info in this object.
+     * @param {DataReader} reader the reader to use.
+     */
+    readCentralPart: function(reader) {
+        this.versionMadeBy = reader.readInt(2);
+        reader.skip(2);
+        // this.versionNeeded = reader.readInt(2);
+        this.bitFlag = reader.readInt(2);
+        this.compressionMethod = reader.readString(2);
+        this.date = reader.readDate();
+        this.crc32 = reader.readInt(4);
+        this.compressedSize = reader.readInt(4);
+        this.uncompressedSize = reader.readInt(4);
+        var fileNameLength = reader.readInt(2);
+        this.extraFieldsLength = reader.readInt(2);
+        this.fileCommentLength = reader.readInt(2);
+        this.diskNumberStart = reader.readInt(2);
+        this.internalFileAttributes = reader.readInt(2);
+        this.externalFileAttributes = reader.readInt(4);
+        this.localHeaderOffset = reader.readInt(4);
+
+        if (this.isEncrypted()) {
+            throw new Error("Encrypted zip are not supported");
+        }
+
+        // will be read in the local part, see the comments there
+        reader.skip(fileNameLength);
+        this.readExtraFields(reader);
+        this.parseZIP64ExtraField(reader);
+        this.fileComment = reader.readData(this.fileCommentLength);
+    },
+
+    /**
+     * Parse the external file attributes and get the unix/dos permissions.
+     */
+    processAttributes: function () {
+        this.unixPermissions = null;
+        this.dosPermissions = null;
+        var madeBy = this.versionMadeBy >> 8;
+
+        // Check if we have the DOS directory flag set.
+        // We look for it in the DOS and UNIX permissions
+        // but some unknown platform could set it as a compatibility flag.
+        this.dir = this.externalFileAttributes & 0x0010 ? true : false;
+
+        if(madeBy === MADE_BY_DOS) {
+            // first 6 bits (0 to 5)
+            this.dosPermissions = this.externalFileAttributes & 0x3F;
+        }
+
+        if(madeBy === MADE_BY_UNIX) {
+            this.unixPermissions = (this.externalFileAttributes >> 16) & 0xFFFF;
+            // the octal permissions are in (this.unixPermissions & 0x01FF).toString(8);
+        }
+
+        // fail safe : if the name ends with a / it probably means a folder
+        if (!this.dir && this.fileNameStr.slice(-1) === '/') {
+            this.dir = true;
+        }
+    },
+
+    /**
+     * Parse the ZIP64 extra field and merge the info in the current ZipEntry.
+     * @param {DataReader} reader the reader to use.
+     */
+    parseZIP64ExtraField: function(reader) {
+
+        if (!this.extraFields[0x0001]) {
+            return;
+        }
+
+        // should be something, preparing the extra reader
+        var extraReader = readerFor(this.extraFields[0x0001].value);
+
+        // I really hope that these 64bits integer can fit in 32 bits integer, because js
+        // won't let us have more.
+        if (this.uncompressedSize === utils.MAX_VALUE_32BITS) {
+            this.uncompressedSize = extraReader.readInt(8);
+        }
+        if (this.compressedSize === utils.MAX_VALUE_32BITS) {
+            this.compressedSize = extraReader.readInt(8);
+        }
+        if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) {
+            this.localHeaderOffset = extraReader.readInt(8);
+        }
+        if (this.diskNumberStart === utils.MAX_VALUE_32BITS) {
+            this.diskNumberStart = extraReader.readInt(4);
+        }
+    },
+    /**
+     * Read the central part of a zip file and add the info in this object.
+     * @param {DataReader} reader the reader to use.
+     */
+    readExtraFields: function(reader) {
+        var end = reader.index + this.extraFieldsLength,
+            extraFieldId,
+            extraFieldLength,
+            extraFieldValue;
+
+        if (!this.extraFields) {
+            this.extraFields = {};
+        }
+
+        while (reader.index < end) {
+            extraFieldId = reader.readInt(2);
+            extraFieldLength = reader.readInt(2);
+            extraFieldValue = reader.readData(extraFieldLength);
+
+            this.extraFields[extraFieldId] = {
+                id: extraFieldId,
+                length: extraFieldLength,
+                value: extraFieldValue
+            };
+        }
+    },
+    /**
+     * Apply an UTF8 transformation if needed.
+     */
+    handleUTF8: function() {
+        var decodeParamType = support.uint8array ? "uint8array" : "array";
+        if (this.useUTF8()) {
+            this.fileNameStr = utf8.utf8decode(this.fileName);
+            this.fileCommentStr = utf8.utf8decode(this.fileComment);
+        } else {
+            var upath = this.findExtraFieldUnicodePath();
+            if (upath !== null) {
+                this.fileNameStr = upath;
+            } else {
+                // ASCII text or unsupported code page
+                var fileNameByteArray =  utils.transformTo(decodeParamType, this.fileName);
+                this.fileNameStr = this.loadOptions.decodeFileName(fileNameByteArray);
+            }
+
+            var ucomment = this.findExtraFieldUnicodeComment();
+            if (ucomment !== null) {
+                this.fileCommentStr = ucomment;
+            } else {
+                // ASCII text or unsupported code page
+                var commentByteArray =  utils.transformTo(decodeParamType, this.fileComment);
+                this.fileCommentStr = this.loadOptions.decodeFileName(commentByteArray);
+            }
+        }
+    },
+
+    /**
+     * Find the unicode path declared in the extra field, if any.
+     * @return {String} the unicode path, null otherwise.
+     */
+    findExtraFieldUnicodePath: function() {
+        var upathField = this.extraFields[0x7075];
+        if (upathField) {
+            var extraReader = readerFor(upathField.value);
+
+            // wrong version
+            if (extraReader.readInt(1) !== 1) {
+                return null;
+            }
+
+            // the crc of the filename changed, this field is out of date.
+            if (crc32fn(this.fileName) !== extraReader.readInt(4)) {
+                return null;
+            }
+
+            return utf8.utf8decode(extraReader.readData(upathField.length - 5));
+        }
+        return null;
+    },
+
+    /**
+     * Find the unicode comment declared in the extra field, if any.
+     * @return {String} the unicode comment, null otherwise.
+     */
+    findExtraFieldUnicodeComment: function() {
+        var ucommentField = this.extraFields[0x6375];
+        if (ucommentField) {
+            var extraReader = readerFor(ucommentField.value);
+
+            // wrong version
+            if (extraReader.readInt(1) !== 1) {
+                return null;
+            }
+
+            // the crc of the comment changed, this field is out of date.
+            if (crc32fn(this.fileComment) !== extraReader.readInt(4)) {
+                return null;
+            }
+
+            return utf8.utf8decode(extraReader.readData(ucommentField.length - 5));
+        }
+        return null;
+    }
+};
+module.exports = ZipEntry;
+
+},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(require,module,exports){
+'use strict';
+
+var StreamHelper = require('./stream/StreamHelper');
+var DataWorker = require('./stream/DataWorker');
+var utf8 = require('./utf8');
+var CompressedObject = require('./compressedObject');
+var GenericWorker = require('./stream/GenericWorker');
+
+/**
+ * A simple object representing a file in the zip file.
+ * @constructor
+ * @param {string} name the name of the file
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data
+ * @param {Object} options the options of the file
+ */
+var ZipObject = function(name, data, options) {
+    this.name = name;
+    this.dir = options.dir;
+    this.date = options.date;
+    this.comment = options.comment;
+    this.unixPermissions = options.unixPermissions;
+    this.dosPermissions = options.dosPermissions;
+
+    this._data = data;
+    this._dataBinary = options.binary;
+    // keep only the compression
+    this.options = {
+        compression : options.compression,
+        compressionOptions : options.compressionOptions
+    };
+};
+
+ZipObject.prototype = {
+    /**
+     * Create an internal stream for the content of this object.
+     * @param {String} type the type of each chunk.
+     * @return StreamHelper the stream.
+     */
+    internalStream: function (type) {
+        var result = null, outputType = "string";
+        try {
+            if (!type) {
+                throw new Error("No output type specified.");
+            }
+            outputType = type.toLowerCase();
+            var askUnicodeString = outputType === "string" || outputType === "text";
+            if (outputType === "binarystring" || outputType === "text") {
+                outputType = "string";
+            }
+            result = this._decompressWorker();
+
+            var isUnicodeString = !this._dataBinary;
+
+            if (isUnicodeString && !askUnicodeString) {
+                result = result.pipe(new utf8.Utf8EncodeWorker());
+            }
+            if (!isUnicodeString && askUnicodeString) {
+                result = result.pipe(new utf8.Utf8DecodeWorker());
+            }
+        } catch (e) {
+            result = new GenericWorker("error");
+            result.error(e);
+        }
+
+        return new StreamHelper(result, outputType, "");
+    },
+
+    /**
+     * Prepare the content in the asked type.
+     * @param {String} type the type of the result.
+     * @param {Function} onUpdate a function to call on each internal update.
+     * @return Promise the promise of the result.
+     */
+    async: function (type, onUpdate) {
+        return this.internalStream(type).accumulate(onUpdate);
+    },
+
+    /**
+     * Prepare the content as a nodejs stream.
+     * @param {String} type the type of each chunk.
+     * @param {Function} onUpdate a function to call on each internal update.
+     * @return Stream the stream.
+     */
+    nodeStream: function (type, onUpdate) {
+        return this.internalStream(type || "nodebuffer").toNodejsStream(onUpdate);
+    },
+
+    /**
+     * Return a worker for the compressed content.
+     * @private
+     * @param {Object} compression the compression object to use.
+     * @param {Object} compressionOptions the options to use when compressing.
+     * @return Worker the worker.
+     */
+    _compressWorker: function (compression, compressionOptions) {
+        if (
+            this._data instanceof CompressedObject &&
+            this._data.compression.magic === compression.magic
+        ) {
+            return this._data.getCompressedWorker();
+        } else {
+            var result = this._decompressWorker();
+            if(!this._dataBinary) {
+                result = result.pipe(new utf8.Utf8EncodeWorker());
+            }
+            return CompressedObject.createWorkerFrom(result, compression, compressionOptions);
+        }
+    },
+    /**
+     * Return a worker for the decompressed content.
+     * @private
+     * @return Worker the worker.
+     */
+    _decompressWorker : function () {
+        if (this._data instanceof CompressedObject) {
+            return this._data.getContentWorker();
+        } else if (this._data instanceof GenericWorker) {
+            return this._data;
+        } else {
+            return new DataWorker(this._data);
+        }
+    }
+};
+
+var removedMethods = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"];
+var removedFn = function () {
+    throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
+};
+
+for(var i = 0; i < removedMethods.length; i++) {
+    ZipObject.prototype[removedMethods[i]] = removedFn;
+}
+module.exports = ZipObject;
+
+},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(require,module,exports){
+require('../modules/web.immediate');
+module.exports = require('../modules/_core').setImmediate;
+},{"../modules/_core":40,"../modules/web.immediate":56}],37:[function(require,module,exports){
+module.exports = function(it){
+  if(typeof it != 'function')throw TypeError(it + ' is not a function!');
+  return it;
+};
+},{}],38:[function(require,module,exports){
+var isObject = require('./_is-object');
+module.exports = function(it){
+  if(!isObject(it))throw TypeError(it + ' is not an object!');
+  return it;
+};
+},{"./_is-object":51}],39:[function(require,module,exports){
+var toString = {}.toString;
+
+module.exports = function(it){
+  return toString.call(it).slice(8, -1);
+};
+},{}],40:[function(require,module,exports){
+var core = module.exports = {version: '2.3.0'};
+if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
+},{}],41:[function(require,module,exports){
+// optional / simple context binding
+var aFunction = require('./_a-function');
+module.exports = function(fn, that, length){
+  aFunction(fn);
+  if(that === undefined)return fn;
+  switch(length){
+    case 1: return function(a){
+      return fn.call(that, a);
+    };
+    case 2: return function(a, b){
+      return fn.call(that, a, b);
+    };
+    case 3: return function(a, b, c){
+      return fn.call(that, a, b, c);
+    };
+  }
+  return function(/* ...args */){
+    return fn.apply(that, arguments);
+  };
+};
+},{"./_a-function":37}],42:[function(require,module,exports){
+// Thank's IE8 for his funny defineProperty
+module.exports = !require('./_fails')(function(){
+  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
+});
+},{"./_fails":45}],43:[function(require,module,exports){
+var isObject = require('./_is-object')
+  , document = require('./_global').document
+  // in old IE typeof document.createElement is 'object'
+  , is = isObject(document) && isObject(document.createElement);
+module.exports = function(it){
+  return is ? document.createElement(it) : {};
+};
+},{"./_global":46,"./_is-object":51}],44:[function(require,module,exports){
+var global    = require('./_global')
+  , core      = require('./_core')
+  , ctx       = require('./_ctx')
+  , hide      = require('./_hide')
+  , PROTOTYPE = 'prototype';
+
+var $export = function(type, name, source){
+  var IS_FORCED = type & $export.F
+    , IS_GLOBAL = type & $export.G
+    , IS_STATIC = type & $export.S
+    , IS_PROTO  = type & $export.P
+    , IS_BIND   = type & $export.B
+    , IS_WRAP   = type & $export.W
+    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})
+    , expProto  = exports[PROTOTYPE]
+    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
+    , key, own, out;
+  if(IS_GLOBAL)source = name;
+  for(key in source){
+    // contains in native
+    own = !IS_FORCED && target && target[key] !== undefined;
+    if(own && key in exports)continue;
+    // export native or passed
+    out = own ? target[key] : source[key];
+    // prevent global pollution for namespaces
+    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
+    // bind timers to global for call from export context
+    : IS_BIND && own ? ctx(out, global)
+    // wrap global constructors for prevent change them in library
+    : IS_WRAP && target[key] == out ? (function(C){
+      var F = function(a, b, c){
+        if(this instanceof C){
+          switch(arguments.length){
+            case 0: return new C;
+            case 1: return new C(a);
+            case 2: return new C(a, b);
+          } return new C(a, b, c);
+        } return C.apply(this, arguments);
+      };
+      F[PROTOTYPE] = C[PROTOTYPE];
+      return F;
+    // make static versions for prototype methods
+    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
+    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
+    if(IS_PROTO){
+      (exports.virtual || (exports.virtual = {}))[key] = out;
+      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
+      if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
+    }
+  }
+};
+// type bitmap
+$export.F = 1;   // forced
+$export.G = 2;   // global
+$export.S = 4;   // static
+$export.P = 8;   // proto
+$export.B = 16;  // bind
+$export.W = 32;  // wrap
+$export.U = 64;  // safe
+$export.R = 128; // real proto method for `library` 
+module.exports = $export;
+},{"./_core":40,"./_ctx":41,"./_global":46,"./_hide":47}],45:[function(require,module,exports){
+module.exports = function(exec){
+  try {
+    return !!exec();
+  } catch(e){
+    return true;
+  }
+};
+},{}],46:[function(require,module,exports){
+// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+var global = module.exports = typeof window != 'undefined' && window.Math == Math
+  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
+if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
+},{}],47:[function(require,module,exports){
+var dP         = require('./_object-dp')
+  , createDesc = require('./_property-desc');
+module.exports = require('./_descriptors') ? function(object, key, value){
+  return dP.f(object, key, createDesc(1, value));
+} : function(object, key, value){
+  object[key] = value;
+  return object;
+};
+},{"./_descriptors":42,"./_object-dp":52,"./_property-desc":53}],48:[function(require,module,exports){
+module.exports = require('./_global').document && document.documentElement;
+},{"./_global":46}],49:[function(require,module,exports){
+module.exports = !require('./_descriptors') && !require('./_fails')(function(){
+  return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;
+});
+},{"./_descriptors":42,"./_dom-create":43,"./_fails":45}],50:[function(require,module,exports){
+// fast apply, http://jsperf.lnkit.com/fast-apply/5
+module.exports = function(fn, args, that){
+  var un = that === undefined;
+  switch(args.length){
+    case 0: return un ? fn()
+                      : fn.call(that);
+    case 1: return un ? fn(args[0])
+                      : fn.call(that, args[0]);
+    case 2: return un ? fn(args[0], args[1])
+                      : fn.call(that, args[0], args[1]);
+    case 3: return un ? fn(args[0], args[1], args[2])
+                      : fn.call(that, args[0], args[1], args[2]);
+    case 4: return un ? fn(args[0], args[1], args[2], args[3])
+                      : fn.call(that, args[0], args[1], args[2], args[3]);
+  } return              fn.apply(that, args);
+};
+},{}],51:[function(require,module,exports){
+module.exports = function(it){
+  return typeof it === 'object' ? it !== null : typeof it === 'function';
+};
+},{}],52:[function(require,module,exports){
+var anObject       = require('./_an-object')
+  , IE8_DOM_DEFINE = require('./_ie8-dom-define')
+  , toPrimitive    = require('./_to-primitive')
+  , dP             = Object.defineProperty;
+
+exports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){
+  anObject(O);
+  P = toPrimitive(P, true);
+  anObject(Attributes);
+  if(IE8_DOM_DEFINE)try {
+    return dP(O, P, Attributes);
+  } catch(e){ /* empty */ }
+  if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
+  if('value' in Attributes)O[P] = Attributes.value;
+  return O;
+};
+},{"./_an-object":38,"./_descriptors":42,"./_ie8-dom-define":49,"./_to-primitive":55}],53:[function(require,module,exports){
+module.exports = function(bitmap, value){
+  return {
+    enumerable  : !(bitmap & 1),
+    configurable: !(bitmap & 2),
+    writable    : !(bitmap & 4),
+    value       : value
+  };
+};
+},{}],54:[function(require,module,exports){
+var ctx                = require('./_ctx')
+  , invoke             = require('./_invoke')
+  , html               = require('./_html')
+  , cel                = require('./_dom-create')
+  , global             = require('./_global')
+  , process            = global.process
+  , setTask            = global.setImmediate
+  , clearTask          = global.clearImmediate
+  , MessageChannel     = global.MessageChannel
+  , counter            = 0
+  , queue              = {}
+  , ONREADYSTATECHANGE = 'onreadystatechange'
+  , defer, channel, port;
+var run = function(){
+  var id = +this;
+  if(queue.hasOwnProperty(id)){
+    var fn = queue[id];
+    delete queue[id];
+    fn();
+  }
+};
+var listener = function(event){
+  run.call(event.data);
+};
+// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
+if(!setTask || !clearTask){
+  setTask = function setImmediate(fn){
+    var args = [], i = 1;
+    while(arguments.length > i)args.push(arguments[i++]);
+    queue[++counter] = function(){
+      invoke(typeof fn == 'function' ? fn : Function(fn), args);
+    };
+    defer(counter);
+    return counter;
+  };
+  clearTask = function clearImmediate(id){
+    delete queue[id];
+  };
+  // Node.js 0.8-
+  if(require('./_cof')(process) == 'process'){
+    defer = function(id){
+      process.nextTick(ctx(run, id, 1));
+    };
+  // Browsers with MessageChannel, includes WebWorkers
+  } else if(MessageChannel){
+    channel = new MessageChannel;
+    port    = channel.port2;
+    channel.port1.onmessage = listener;
+    defer = ctx(port.postMessage, port, 1);
+  // Browsers with postMessage, skip WebWorkers
+  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
+  } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){
+    defer = function(id){
+      global.postMessage(id + '', '*');
+    };
+    global.addEventListener('message', listener, false);
+  // IE8-
+  } else if(ONREADYSTATECHANGE in cel('script')){
+    defer = function(id){
+      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
+        html.removeChild(this);
+        run.call(id);
+      };
+    };
+  // Rest old browsers
+  } else {
+    defer = function(id){
+      setTimeout(ctx(run, id, 1), 0);
+    };
+  }
+}
+module.exports = {
+  set:   setTask,
+  clear: clearTask
+};
+},{"./_cof":39,"./_ctx":41,"./_dom-create":43,"./_global":46,"./_html":48,"./_invoke":50}],55:[function(require,module,exports){
+// 7.1.1 ToPrimitive(input [, PreferredType])
+var isObject = require('./_is-object');
+// instead of the ES6 spec version, we didn't implement @@toPrimitive case
+// and the second argument - flag - preferred type is a string
+module.exports = function(it, S){
+  if(!isObject(it))return it;
+  var fn, val;
+  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
+  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+  throw TypeError("Can't convert object to primitive value");
+};
+},{"./_is-object":51}],56:[function(require,module,exports){
+var $export = require('./_export')
+  , $task   = require('./_task');
+$export($export.G + $export.B, {
+  setImmediate:   $task.set,
+  clearImmediate: $task.clear
+});
+},{"./_export":44,"./_task":54}],57:[function(require,module,exports){
+(function (global){
+'use strict';
+var Mutation = global.MutationObserver || global.WebKitMutationObserver;
+
+var scheduleDrain;
+
+{
+  if (Mutation) {
+    var called = 0;
+    var observer = new Mutation(nextTick);
+    var element = global.document.createTextNode('');
+    observer.observe(element, {
+      characterData: true
+    });
+    scheduleDrain = function () {
+      element.data = (called = ++called % 2);
+    };
+  } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {
+    var channel = new global.MessageChannel();
+    channel.port1.onmessage = nextTick;
+    scheduleDrain = function () {
+      channel.port2.postMessage(0);
+    };
+  } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {
+    scheduleDrain = function () {
+
+      // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
+      // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
+      var scriptEl = global.document.createElement('script');
+      scriptEl.onreadystatechange = function () {
+        nextTick();
+
+        scriptEl.onreadystatechange = null;
+        scriptEl.parentNode.removeChild(scriptEl);
+        scriptEl = null;
+      };
+      global.document.documentElement.appendChild(scriptEl);
+    };
+  } else {
+    scheduleDrain = function () {
+      setTimeout(nextTick, 0);
+    };
+  }
+}
+
+var draining;
+var queue = [];
+//named nextTick for less confusing stack traces
+function nextTick() {
+  draining = true;
+  var i, oldQueue;
+  var len = queue.length;
+  while (len) {
+    oldQueue = queue;
+    queue = [];
+    i = -1;
+    while (++i < len) {
+      oldQueue[i]();
+    }
+    len = queue.length;
+  }
+  draining = false;
+}
+
+module.exports = immediate;
+function immediate(task) {
+  if (queue.push(task) === 1 && !draining) {
+    scheduleDrain();
+  }
+}
+
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],58:[function(require,module,exports){
+'use strict';
+var immediate = require('immediate');
+
+/* istanbul ignore next */
+function INTERNAL() {}
+
+var handlers = {};
+
+var REJECTED = ['REJECTED'];
+var FULFILLED = ['FULFILLED'];
+var PENDING = ['PENDING'];
+
+module.exports = Promise;
+
+function Promise(resolver) {
+  if (typeof resolver !== 'function') {
+    throw new TypeError('resolver must be a function');
+  }
+  this.state = PENDING;
+  this.queue = [];
+  this.outcome = void 0;
+  if (resolver !== INTERNAL) {
+    safelyResolveThenable(this, resolver);
+  }
+}
+
+Promise.prototype["catch"] = function (onRejected) {
+  return this.then(null, onRejected);
+};
+Promise.prototype.then = function (onFulfilled, onRejected) {
+  if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||
+    typeof onRejected !== 'function' && this.state === REJECTED) {
+    return this;
+  }
+  var promise = new this.constructor(INTERNAL);
+  if (this.state !== PENDING) {
+    var resolver = this.state === FULFILLED ? onFulfilled : onRejected;
+    unwrap(promise, resolver, this.outcome);
+  } else {
+    this.queue.push(new QueueItem(promise, onFulfilled, onRejected));
+  }
+
+  return promise;
+};
+function QueueItem(promise, onFulfilled, onRejected) {
+  this.promise = promise;
+  if (typeof onFulfilled === 'function') {
+    this.onFulfilled = onFulfilled;
+    this.callFulfilled = this.otherCallFulfilled;
+  }
+  if (typeof onRejected === 'function') {
+    this.onRejected = onRejected;
+    this.callRejected = this.otherCallRejected;
+  }
+}
+QueueItem.prototype.callFulfilled = function (value) {
+  handlers.resolve(this.promise, value);
+};
+QueueItem.prototype.otherCallFulfilled = function (value) {
+  unwrap(this.promise, this.onFulfilled, value);
+};
+QueueItem.prototype.callRejected = function (value) {
+  handlers.reject(this.promise, value);
+};
+QueueItem.prototype.otherCallRejected = function (value) {
+  unwrap(this.promise, this.onRejected, value);
+};
+
+function unwrap(promise, func, value) {
+  immediate(function () {
+    var returnValue;
+    try {
+      returnValue = func(value);
+    } catch (e) {
+      return handlers.reject(promise, e);
+    }
+    if (returnValue === promise) {
+      handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));
+    } else {
+      handlers.resolve(promise, returnValue);
+    }
+  });
+}
+
+handlers.resolve = function (self, value) {
+  var result = tryCatch(getThen, value);
+  if (result.status === 'error') {
+    return handlers.reject(self, result.value);
+  }
+  var thenable = result.value;
+
+  if (thenable) {
+    safelyResolveThenable(self, thenable);
+  } else {
+    self.state = FULFILLED;
+    self.outcome = value;
+    var i = -1;
+    var len = self.queue.length;
+    while (++i < len) {
+      self.queue[i].callFulfilled(value);
+    }
+  }
+  return self;
+};
+handlers.reject = function (self, error) {
+  self.state = REJECTED;
+  self.outcome = error;
+  var i = -1;
+  var len = self.queue.length;
+  while (++i < len) {
+    self.queue[i].callRejected(error);
+  }
+  return self;
+};
+
+function getThen(obj) {
+  // Make sure we only access the accessor once as required by the spec
+  var then = obj && obj.then;
+  if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {
+    return function appyThen() {
+      then.apply(obj, arguments);
+    };
+  }
+}
+
+function safelyResolveThenable(self, thenable) {
+  // Either fulfill, reject or reject with error
+  var called = false;
+  function onError(value) {
+    if (called) {
+      return;
+    }
+    called = true;
+    handlers.reject(self, value);
+  }
+
+  function onSuccess(value) {
+    if (called) {
+      return;
+    }
+    called = true;
+    handlers.resolve(self, value);
+  }
+
+  function tryToUnwrap() {
+    thenable(onSuccess, onError);
+  }
+
+  var result = tryCatch(tryToUnwrap);
+  if (result.status === 'error') {
+    onError(result.value);
+  }
+}
+
+function tryCatch(func, value) {
+  var out = {};
+  try {
+    out.value = func(value);
+    out.status = 'success';
+  } catch (e) {
+    out.status = 'error';
+    out.value = e;
+  }
+  return out;
+}
+
+Promise.resolve = resolve;
+function resolve(value) {
+  if (value instanceof this) {
+    return value;
+  }
+  return handlers.resolve(new this(INTERNAL), value);
+}
+
+Promise.reject = reject;
+function reject(reason) {
+  var promise = new this(INTERNAL);
+  return handlers.reject(promise, reason);
+}
+
+Promise.all = all;
+function all(iterable) {
+  var self = this;
+  if (Object.prototype.toString.call(iterable) !== '[object Array]') {
+    return this.reject(new TypeError('must be an array'));
+  }
+
+  var len = iterable.length;
+  var called = false;
+  if (!len) {
+    return this.resolve([]);
+  }
+
+  var values = new Array(len);
+  var resolved = 0;
+  var i = -1;
+  var promise = new this(INTERNAL);
+
+  while (++i < len) {
+    allResolver(iterable[i], i);
+  }
+  return promise;
+  function allResolver(value, i) {
+    self.resolve(value).then(resolveFromAll, function (error) {
+      if (!called) {
+        called = true;
+        handlers.reject(promise, error);
+      }
+    });
+    function resolveFromAll(outValue) {
+      values[i] = outValue;
+      if (++resolved === len && !called) {
+        called = true;
+        handlers.resolve(promise, values);
+      }
+    }
+  }
+}
+
+Promise.race = race;
+function race(iterable) {
+  var self = this;
+  if (Object.prototype.toString.call(iterable) !== '[object Array]') {
+    return this.reject(new TypeError('must be an array'));
+  }
+
+  var len = iterable.length;
+  var called = false;
+  if (!len) {
+    return this.resolve([]);
+  }
+
+  var i = -1;
+  var promise = new this(INTERNAL);
+
+  while (++i < len) {
+    resolver(iterable[i]);
+  }
+  return promise;
+  function resolver(value) {
+    self.resolve(value).then(function (response) {
+      if (!called) {
+        called = true;
+        handlers.resolve(promise, response);
+      }
+    }, function (error) {
+      if (!called) {
+        called = true;
+        handlers.reject(promise, error);
+      }
+    });
+  }
+}
+
+},{"immediate":57}],59:[function(require,module,exports){
+// Top level file is just a mixin of submodules & constants
+'use strict';
+
+var assign    = require('./lib/utils/common').assign;
+
+var deflate   = require('./lib/deflate');
+var inflate   = require('./lib/inflate');
+var constants = require('./lib/zlib/constants');
+
+var pako = {};
+
+assign(pako, deflate, inflate, constants);
+
+module.exports = pako;
+
+},{"./lib/deflate":60,"./lib/inflate":61,"./lib/utils/common":62,"./lib/zlib/constants":65}],60:[function(require,module,exports){
+'use strict';
+
+
+var zlib_deflate = require('./zlib/deflate');
+var utils        = require('./utils/common');
+var strings      = require('./utils/strings');
+var msg          = require('./zlib/messages');
+var ZStream      = require('./zlib/zstream');
+
+var toString = Object.prototype.toString;
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+var Z_NO_FLUSH      = 0;
+var Z_FINISH        = 4;
+
+var Z_OK            = 0;
+var Z_STREAM_END    = 1;
+var Z_SYNC_FLUSH    = 2;
+
+var Z_DEFAULT_COMPRESSION = -1;
+
+var Z_DEFAULT_STRATEGY    = 0;
+
+var Z_DEFLATED  = 8;
+
+/* ===========================================================================*/
+
+
+/**
+ * class Deflate
+ *
+ * Generic JS-style wrapper for zlib calls. If you don't need
+ * streaming behaviour - use more simple functions: [[deflate]],
+ * [[deflateRaw]] and [[gzip]].
+ **/
+
+/* internal
+ * Deflate.chunks -> Array
+ *
+ * Chunks of output data, if [[Deflate#onData]] not overriden.
+ **/
+
+/**
+ * Deflate.result -> Uint8Array|Array
+ *
+ * Compressed result, generated by default [[Deflate#onData]]
+ * and [[Deflate#onEnd]] handlers. Filled after you push last chunk
+ * (call [[Deflate#push]] with `Z_FINISH` / `true` param)  or if you
+ * push a chunk with explicit flush (call [[Deflate#push]] with
+ * `Z_SYNC_FLUSH` param).
+ **/
+
+/**
+ * Deflate.err -> Number
+ *
+ * Error code after deflate finished. 0 (Z_OK) on success.
+ * You will not need it in real life, because deflate errors
+ * are possible only on wrong options or bad `onData` / `onEnd`
+ * custom handlers.
+ **/
+
+/**
+ * Deflate.msg -> String
+ *
+ * Error message, if [[Deflate.err]] != 0
+ **/
+
+
+/**
+ * new Deflate(options)
+ * - options (Object): zlib deflate options.
+ *
+ * Creates new deflator instance with specified params. Throws exception
+ * on bad params. Supported options:
+ *
+ * - `level`
+ * - `windowBits`
+ * - `memLevel`
+ * - `strategy`
+ * - `dictionary`
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information on these.
+ *
+ * Additional options, for internal needs:
+ *
+ * - `chunkSize` - size of generated data chunks (16K by default)
+ * - `raw` (Boolean) - do raw deflate
+ * - `gzip` (Boolean) - create gzip wrapper
+ * - `to` (String) - if equal to 'string', then result will be "binary string"
+ *    (each char code [0..255])
+ * - `header` (Object) - custom header for gzip
+ *   - `text` (Boolean) - true if compressed data believed to be text
+ *   - `time` (Number) - modification time, unix timestamp
+ *   - `os` (Number) - operation system code
+ *   - `extra` (Array) - array of bytes with extra data (max 65536)
+ *   - `name` (String) - file name (binary string)
+ *   - `comment` (String) - comment (binary string)
+ *   - `hcrc` (Boolean) - true if header crc should be added
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
+ *   , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
+ *
+ * var deflate = new pako.Deflate({ level: 3});
+ *
+ * deflate.push(chunk1, false);
+ * deflate.push(chunk2, true);  // true -> last chunk
+ *
+ * if (deflate.err) { throw new Error(deflate.err); }
+ *
+ * console.log(deflate.result);
+ * ```
+ **/
+function Deflate(options) {
+  if (!(this instanceof Deflate)) return new Deflate(options);
+
+  this.options = utils.assign({
+    level: Z_DEFAULT_COMPRESSION,
+    method: Z_DEFLATED,
+    chunkSize: 16384,
+    windowBits: 15,
+    memLevel: 8,
+    strategy: Z_DEFAULT_STRATEGY,
+    to: ''
+  }, options || {});
+
+  var opt = this.options;
+
+  if (opt.raw && (opt.windowBits > 0)) {
+    opt.windowBits = -opt.windowBits;
+  }
+
+  else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {
+    opt.windowBits += 16;
+  }
+
+  this.err    = 0;      // error code, if happens (0 = Z_OK)
+  this.msg    = '';     // error message
+  this.ended  = false;  // used to avoid multiple onEnd() calls
+  this.chunks = [];     // chunks of compressed data
+
+  this.strm = new ZStream();
+  this.strm.avail_out = 0;
+
+  var status = zlib_deflate.deflateInit2(
+    this.strm,
+    opt.level,
+    opt.method,
+    opt.windowBits,
+    opt.memLevel,
+    opt.strategy
+  );
+
+  if (status !== Z_OK) {
+    throw new Error(msg[status]);
+  }
+
+  if (opt.header) {
+    zlib_deflate.deflateSetHeader(this.strm, opt.header);
+  }
+
+  if (opt.dictionary) {
+    var dict;
+    // Convert data if needed
+    if (typeof opt.dictionary === 'string') {
+      // If we need to compress text, change encoding to utf8.
+      dict = strings.string2buf(opt.dictionary);
+    } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {
+      dict = new Uint8Array(opt.dictionary);
+    } else {
+      dict = opt.dictionary;
+    }
+
+    status = zlib_deflate.deflateSetDictionary(this.strm, dict);
+
+    if (status !== Z_OK) {
+      throw new Error(msg[status]);
+    }
+
+    this._dict_set = true;
+  }
+}
+
+/**
+ * Deflate#push(data[, mode]) -> Boolean
+ * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be
+ *   converted to utf8 byte sequence.
+ * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
+ *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.
+ *
+ * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with
+ * new compressed chunks. Returns `true` on success. The last data block must have
+ * mode Z_FINISH (or `true`). That will flush internal pending buffers and call
+ * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you
+ * can use mode Z_SYNC_FLUSH, keeping the compression context.
+ *
+ * On fail call [[Deflate#onEnd]] with error code and return false.
+ *
+ * We strongly recommend to use `Uint8Array` on input for best speed (output
+ * array format is detected automatically). Also, don't skip last param and always
+ * use the same type in your code (boolean or number). That will improve JS speed.
+ *
+ * For regular `Array`-s make sure all elements are [0..255].
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * push(chunk, false); // push one of data chunks
+ * ...
+ * push(chunk, true);  // push last chunk
+ * ```
+ **/
+Deflate.prototype.push = function (data, mode) {
+  var strm = this.strm;
+  var chunkSize = this.options.chunkSize;
+  var status, _mode;
+
+  if (this.ended) { return false; }
+
+  _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);
+
+  // Convert data if needed
+  if (typeof data === 'string') {
+    // If we need to compress text, change encoding to utf8.
+    strm.input = strings.string2buf(data);
+  } else if (toString.call(data) === '[object ArrayBuffer]') {
+    strm.input = new Uint8Array(data);
+  } else {
+    strm.input = data;
+  }
+
+  strm.next_in = 0;
+  strm.avail_in = strm.input.length;
+
+  do {
+    if (strm.avail_out === 0) {
+      strm.output = new utils.Buf8(chunkSize);
+      strm.next_out = 0;
+      strm.avail_out = chunkSize;
+    }
+    status = zlib_deflate.deflate(strm, _mode);    /* no bad return value */
+
+    if (status !== Z_STREAM_END && status !== Z_OK) {
+      this.onEnd(status);
+      this.ended = true;
+      return false;
+    }
+    if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {
+      if (this.options.to === 'string') {
+        this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));
+      } else {
+        this.onData(utils.shrinkBuf(strm.output, strm.next_out));
+      }
+    }
+  } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);
+
+  // Finalize on the last chunk.
+  if (_mode === Z_FINISH) {
+    status = zlib_deflate.deflateEnd(this.strm);
+    this.onEnd(status);
+    this.ended = true;
+    return status === Z_OK;
+  }
+
+  // callback interim results if Z_SYNC_FLUSH.
+  if (_mode === Z_SYNC_FLUSH) {
+    this.onEnd(Z_OK);
+    strm.avail_out = 0;
+    return true;
+  }
+
+  return true;
+};
+
+
+/**
+ * Deflate#onData(chunk) -> Void
+ * - chunk (Uint8Array|Array|String): ouput data. Type of array depends
+ *   on js engine support. When string output requested, each chunk
+ *   will be string.
+ *
+ * By default, stores data blocks in `chunks[]` property and glue
+ * those in `onEnd`. Override this handler, if you need another behaviour.
+ **/
+Deflate.prototype.onData = function (chunk) {
+  this.chunks.push(chunk);
+};
+
+
+/**
+ * Deflate#onEnd(status) -> Void
+ * - status (Number): deflate status. 0 (Z_OK) on success,
+ *   other if not.
+ *
+ * Called once after you tell deflate that the input stream is
+ * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)
+ * or if an error happened. By default - join collected chunks,
+ * free memory and fill `results` / `err` properties.
+ **/
+Deflate.prototype.onEnd = function (status) {
+  // On success - join
+  if (status === Z_OK) {
+    if (this.options.to === 'string') {
+      this.result = this.chunks.join('');
+    } else {
+      this.result = utils.flattenChunks(this.chunks);
+    }
+  }
+  this.chunks = [];
+  this.err = status;
+  this.msg = this.strm.msg;
+};
+
+
+/**
+ * deflate(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to compress.
+ * - options (Object): zlib deflate options.
+ *
+ * Compress `data` with deflate algorithm and `options`.
+ *
+ * Supported options are:
+ *
+ * - level
+ * - windowBits
+ * - memLevel
+ * - strategy
+ * - dictionary
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information on these.
+ *
+ * Sugar (options):
+ *
+ * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
+ *   negative windowBits implicitly.
+ * - `to` (String) - if equal to 'string', then result will be "binary string"
+ *    (each char code [0..255])
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , data = Uint8Array([1,2,3,4,5,6,7,8,9]);
+ *
+ * console.log(pako.deflate(data));
+ * ```
+ **/
+function deflate(input, options) {
+  var deflator = new Deflate(options);
+
+  deflator.push(input, true);
+
+  // That will never happens, if you don't cheat with options :)
+  if (deflator.err) { throw deflator.msg || msg[deflator.err]; }
+
+  return deflator.result;
+}
+
+
+/**
+ * deflateRaw(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to compress.
+ * - options (Object): zlib deflate options.
+ *
+ * The same as [[deflate]], but creates raw data, without wrapper
+ * (header and adler32 crc).
+ **/
+function deflateRaw(input, options) {
+  options = options || {};
+  options.raw = true;
+  return deflate(input, options);
+}
+
+
+/**
+ * gzip(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to compress.
+ * - options (Object): zlib deflate options.
+ *
+ * The same as [[deflate]], but create gzip wrapper instead of
+ * deflate one.
+ **/
+function gzip(input, options) {
+  options = options || {};
+  options.gzip = true;
+  return deflate(input, options);
+}
+
+
+exports.Deflate = Deflate;
+exports.deflate = deflate;
+exports.deflateRaw = deflateRaw;
+exports.gzip = gzip;
+
+},{"./utils/common":62,"./utils/strings":63,"./zlib/deflate":67,"./zlib/messages":72,"./zlib/zstream":74}],61:[function(require,module,exports){
+'use strict';
+
+
+var zlib_inflate = require('./zlib/inflate');
+var utils        = require('./utils/common');
+var strings      = require('./utils/strings');
+var c            = require('./zlib/constants');
+var msg          = require('./zlib/messages');
+var ZStream      = require('./zlib/zstream');
+var GZheader     = require('./zlib/gzheader');
+
+var toString = Object.prototype.toString;
+
+/**
+ * class Inflate
+ *
+ * Generic JS-style wrapper for zlib calls. If you don't need
+ * streaming behaviour - use more simple functions: [[inflate]]
+ * and [[inflateRaw]].
+ **/
+
+/* internal
+ * inflate.chunks -> Array
+ *
+ * Chunks of output data, if [[Inflate#onData]] not overriden.
+ **/
+
+/**
+ * Inflate.result -> Uint8Array|Array|String
+ *
+ * Uncompressed result, generated by default [[Inflate#onData]]
+ * and [[Inflate#onEnd]] handlers. Filled after you push last chunk
+ * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you
+ * push a chunk with explicit flush (call [[Inflate#push]] with
+ * `Z_SYNC_FLUSH` param).
+ **/
+
+/**
+ * Inflate.err -> Number
+ *
+ * Error code after inflate finished. 0 (Z_OK) on success.
+ * Should be checked if broken data possible.
+ **/
+
+/**
+ * Inflate.msg -> String
+ *
+ * Error message, if [[Inflate.err]] != 0
+ **/
+
+
+/**
+ * new Inflate(options)
+ * - options (Object): zlib inflate options.
+ *
+ * Creates new inflator instance with specified params. Throws exception
+ * on bad params. Supported options:
+ *
+ * - `windowBits`
+ * - `dictionary`
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information on these.
+ *
+ * Additional options, for internal needs:
+ *
+ * - `chunkSize` - size of generated data chunks (16K by default)
+ * - `raw` (Boolean) - do raw inflate
+ * - `to` (String) - if equal to 'string', then result will be converted
+ *   from utf8 to utf16 (javascript) string. When string output requested,
+ *   chunk length can differ from `chunkSize`, depending on content.
+ *
+ * By default, when no options set, autodetect deflate/gzip data format via
+ * wrapper header.
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
+ *   , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
+ *
+ * var inflate = new pako.Inflate({ level: 3});
+ *
+ * inflate.push(chunk1, false);
+ * inflate.push(chunk2, true);  // true -> last chunk
+ *
+ * if (inflate.err) { throw new Error(inflate.err); }
+ *
+ * console.log(inflate.result);
+ * ```
+ **/
+function Inflate(options) {
+  if (!(this instanceof Inflate)) return new Inflate(options);
+
+  this.options = utils.assign({
+    chunkSize: 16384,
+    windowBits: 0,
+    to: ''
+  }, options || {});
+
+  var opt = this.options;
+
+  // Force window size for `raw` data, if not set directly,
+  // because we have no header for autodetect.
+  if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {
+    opt.windowBits = -opt.windowBits;
+    if (opt.windowBits === 0) { opt.windowBits = -15; }
+  }
+
+  // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate
+  if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&
+      !(options && options.windowBits)) {
+    opt.windowBits += 32;
+  }
+
+  // Gzip header has no info about windows size, we can do autodetect only
+  // for deflate. So, if window size not set, force it to max when gzip possible
+  if ((opt.windowBits > 15) && (opt.windowBits < 48)) {
+    // bit 3 (16) -> gzipped data
+    // bit 4 (32) -> autodetect gzip/deflate
+    if ((opt.windowBits & 15) === 0) {
+      opt.windowBits |= 15;
+    }
+  }
+
+  this.err    = 0;      // error code, if happens (0 = Z_OK)
+  this.msg    = '';     // error message
+  this.ended  = false;  // used to avoid multiple onEnd() calls
+  this.chunks = [];     // chunks of compressed data
+
+  this.strm   = new ZStream();
+  this.strm.avail_out = 0;
+
+  var status  = zlib_inflate.inflateInit2(
+    this.strm,
+    opt.windowBits
+  );
+
+  if (status !== c.Z_OK) {
+    throw new Error(msg[status]);
+  }
+
+  this.header = new GZheader();
+
+  zlib_inflate.inflateGetHeader(this.strm, this.header);
+}
+
+/**
+ * Inflate#push(data[, mode]) -> Boolean
+ * - data (Uint8Array|Array|ArrayBuffer|String): input data
+ * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
+ *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.
+ *
+ * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with
+ * new output chunks. Returns `true` on success. The last data block must have
+ * mode Z_FINISH (or `true`). That will flush internal pending buffers and call
+ * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you
+ * can use mode Z_SYNC_FLUSH, keeping the decompression context.
+ *
+ * On fail call [[Inflate#onEnd]] with error code and return false.
+ *
+ * We strongly recommend to use `Uint8Array` on input for best speed (output
+ * format is detected automatically). Also, don't skip last param and always
+ * use the same type in your code (boolean or number). That will improve JS speed.
+ *
+ * For regular `Array`-s make sure all elements are [0..255].
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * push(chunk, false); // push one of data chunks
+ * ...
+ * push(chunk, true);  // push last chunk
+ * ```
+ **/
+Inflate.prototype.push = function (data, mode) {
+  var strm = this.strm;
+  var chunkSize = this.options.chunkSize;
+  var dictionary = this.options.dictionary;
+  var status, _mode;
+  var next_out_utf8, tail, utf8str;
+  var dict;
+
+  // Flag to properly process Z_BUF_ERROR on testing inflate call
+  // when we check that all output data was flushed.
+  var allowBufError = false;
+
+  if (this.ended) { return false; }
+  _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);
+
+  // Convert data if needed
+  if (typeof data === 'string') {
+    // Only binary strings can be decompressed on practice
+    strm.input = strings.binstring2buf(data);
+  } else if (toString.call(data) === '[object ArrayBuffer]') {
+    strm.input = new Uint8Array(data);
+  } else {
+    strm.input = data;
+  }
+
+  strm.next_in = 0;
+  strm.avail_in = strm.input.length;
+
+  do {
+    if (strm.avail_out === 0) {
+      strm.output = new utils.Buf8(chunkSize);
+      strm.next_out = 0;
+      strm.avail_out = chunkSize;
+    }
+
+    status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH);    /* no bad return value */
+
+    if (status === c.Z_NEED_DICT && dictionary) {
+      // Convert data if needed
+      if (typeof dictionary === 'string') {
+        dict = strings.string2buf(dictionary);
+      } else if (toString.call(dictionary) === '[object ArrayBuffer]') {
+        dict = new Uint8Array(dictionary);
+      } else {
+        dict = dictionary;
+      }
+
+      status = zlib_inflate.inflateSetDictionary(this.strm, dict);
+
+    }
+
+    if (status === c.Z_BUF_ERROR && allowBufError === true) {
+      status = c.Z_OK;
+      allowBufError = false;
+    }
+
+    if (status !== c.Z_STREAM_END && status !== c.Z_OK) {
+      this.onEnd(status);
+      this.ended = true;
+      return false;
+    }
+
+    if (strm.next_out) {
+      if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) {
+
+        if (this.options.to === 'string') {
+
+          next_out_utf8 = strings.utf8border(strm.output, strm.next_out);
+
+          tail = strm.next_out - next_out_utf8;
+          utf8str = strings.buf2string(strm.output, next_out_utf8);
+
+          // move tail
+          strm.next_out = tail;
+          strm.avail_out = chunkSize - tail;
+          if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }
+
+          this.onData(utf8str);
+
+        } else {
+          this.onData(utils.shrinkBuf(strm.output, strm.next_out));
+        }
+      }
+    }
+
+    // When no more input data, we should check that internal inflate buffers
+    // are flushed. The only way to do it when avail_out = 0 - run one more
+    // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.
+    // Here we set flag to process this error properly.
+    //
+    // NOTE. Deflate does not return error in this case and does not needs such
+    // logic.
+    if (strm.avail_in === 0 && strm.avail_out === 0) {
+      allowBufError = true;
+    }
+
+  } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);
+
+  if (status === c.Z_STREAM_END) {
+    _mode = c.Z_FINISH;
+  }
+
+  // Finalize on the last chunk.
+  if (_mode === c.Z_FINISH) {
+    status = zlib_inflate.inflateEnd(this.strm);
+    this.onEnd(status);
+    this.ended = true;
+    return status === c.Z_OK;
+  }
+
+  // callback interim results if Z_SYNC_FLUSH.
+  if (_mode === c.Z_SYNC_FLUSH) {
+    this.onEnd(c.Z_OK);
+    strm.avail_out = 0;
+    return true;
+  }
+
+  return true;
+};
+
+
+/**
+ * Inflate#onData(chunk) -> Void
+ * - chunk (Uint8Array|Array|String): ouput data. Type of array depends
+ *   on js engine support. When string output requested, each chunk
+ *   will be string.
+ *
+ * By default, stores data blocks in `chunks[]` property and glue
+ * those in `onEnd`. Override this handler, if you need another behaviour.
+ **/
+Inflate.prototype.onData = function (chunk) {
+  this.chunks.push(chunk);
+};
+
+
+/**
+ * Inflate#onEnd(status) -> Void
+ * - status (Number): inflate status. 0 (Z_OK) on success,
+ *   other if not.
+ *
+ * Called either after you tell inflate that the input stream is
+ * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)
+ * or if an error happened. By default - join collected chunks,
+ * free memory and fill `results` / `err` properties.
+ **/
+Inflate.prototype.onEnd = function (status) {
+  // On success - join
+  if (status === c.Z_OK) {
+    if (this.options.to === 'string') {
+      // Glue & convert here, until we teach pako to send
+      // utf8 alligned strings to onData
+      this.result = this.chunks.join('');
+    } else {
+      this.result = utils.flattenChunks(this.chunks);
+    }
+  }
+  this.chunks = [];
+  this.err = status;
+  this.msg = this.strm.msg;
+};
+
+
+/**
+ * inflate(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to decompress.
+ * - options (Object): zlib inflate options.
+ *
+ * Decompress `data` with inflate/ungzip and `options`. Autodetect
+ * format via wrapper header by default. That's why we don't provide
+ * separate `ungzip` method.
+ *
+ * Supported options are:
+ *
+ * - windowBits
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information.
+ *
+ * Sugar (options):
+ *
+ * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
+ *   negative windowBits implicitly.
+ * - `to` (String) - if equal to 'string', then result will be converted
+ *   from utf8 to utf16 (javascript) string. When string output requested,
+ *   chunk length can differ from `chunkSize`, depending on content.
+ *
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , input = pako.deflate([1,2,3,4,5,6,7,8,9])
+ *   , output;
+ *
+ * try {
+ *   output = pako.inflate(input);
+ * } catch (err)
+ *   console.log(err);
+ * }
+ * ```
+ **/
+function inflate(input, options) {
+  var inflator = new Inflate(options);
+
+  inflator.push(input, true);
+
+  // That will never happens, if you don't cheat with options :)
+  if (inflator.err) { throw inflator.msg || msg[inflator.err]; }
+
+  return inflator.result;
+}
+
+
+/**
+ * inflateRaw(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to decompress.
+ * - options (Object): zlib inflate options.
+ *
+ * The same as [[inflate]], but creates raw data, without wrapper
+ * (header and adler32 crc).
+ **/
+function inflateRaw(input, options) {
+  options = options || {};
+  options.raw = true;
+  return inflate(input, options);
+}
+
+
+/**
+ * ungzip(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to decompress.
+ * - options (Object): zlib inflate options.
+ *
+ * Just shortcut to [[inflate]], because it autodetects format
+ * by header.content. Done for convenience.
+ **/
+
+
+exports.Inflate = Inflate;
+exports.inflate = inflate;
+exports.inflateRaw = inflateRaw;
+exports.ungzip  = inflate;
+
+},{"./utils/common":62,"./utils/strings":63,"./zlib/constants":65,"./zlib/gzheader":68,"./zlib/inflate":70,"./zlib/messages":72,"./zlib/zstream":74}],62:[function(require,module,exports){
+'use strict';
+
+
+var TYPED_OK =  (typeof Uint8Array !== 'undefined') &&
+                (typeof Uint16Array !== 'undefined') &&
+                (typeof Int32Array !== 'undefined');
+
+
+exports.assign = function (obj /*from1, from2, from3, ...*/) {
+  var sources = Array.prototype.slice.call(arguments, 1);
+  while (sources.length) {
+    var source = sources.shift();
+    if (!source) { continue; }
+
+    if (typeof source !== 'object') {
+      throw new TypeError(source + 'must be non-object');
+    }
+
+    for (var p in source) {
+      if (source.hasOwnProperty(p)) {
+        obj[p] = source[p];
+      }
+    }
+  }
+
+  return obj;
+};
+
+
+// reduce buffer size, avoiding mem copy
+exports.shrinkBuf = function (buf, size) {
+  if (buf.length === size) { return buf; }
+  if (buf.subarray) { return buf.subarray(0, size); }
+  buf.length = size;
+  return buf;
+};
+
+
+var fnTyped = {
+  arraySet: function (dest, src, src_offs, len, dest_offs) {
+    if (src.subarray && dest.subarray) {
+      dest.set(src.subarray(src_offs, src_offs + len), dest_offs);
+      return;
+    }
+    // Fallback to ordinary array
+    for (var i = 0; i < len; i++) {
+      dest[dest_offs + i] = src[src_offs + i];
+    }
+  },
+  // Join array of chunks to single array.
+  flattenChunks: function (chunks) {
+    var i, l, len, pos, chunk, result;
+
+    // calculate data length
+    len = 0;
+    for (i = 0, l = chunks.length; i < l; i++) {
+      len += chunks[i].length;
+    }
+
+    // join chunks
+    result = new Uint8Array(len);
+    pos = 0;
+    for (i = 0, l = chunks.length; i < l; i++) {
+      chunk = chunks[i];
+      result.set(chunk, pos);
+      pos += chunk.length;
+    }
+
+    return result;
+  }
+};
+
+var fnUntyped = {
+  arraySet: function (dest, src, src_offs, len, dest_offs) {
+    for (var i = 0; i < len; i++) {
+      dest[dest_offs + i] = src[src_offs + i];
+    }
+  },
+  // Join array of chunks to single array.
+  flattenChunks: function (chunks) {
+    return [].concat.apply([], chunks);
+  }
+};
+
+
+// Enable/Disable typed arrays use, for testing
+//
+exports.setTyped = function (on) {
+  if (on) {
+    exports.Buf8  = Uint8Array;
+    exports.Buf16 = Uint16Array;
+    exports.Buf32 = Int32Array;
+    exports.assign(exports, fnTyped);
+  } else {
+    exports.Buf8  = Array;
+    exports.Buf16 = Array;
+    exports.Buf32 = Array;
+    exports.assign(exports, fnUntyped);
+  }
+};
+
+exports.setTyped(TYPED_OK);
+
+},{}],63:[function(require,module,exports){
+// String encode/decode helpers
+'use strict';
+
+
+var utils = require('./common');
+
+
+// Quick check if we can use fast array to bin string conversion
+//
+// - apply(Array) can fail on Android 2.2
+// - apply(Uint8Array) can fail on iOS 5.1 Safary
+//
+var STR_APPLY_OK = true;
+var STR_APPLY_UIA_OK = true;
+
+try { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }
+try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }
+
+
+// Table with utf8 lengths (calculated by first byte of sequence)
+// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,
+// because max possible codepoint is 0x10ffff
+var _utf8len = new utils.Buf8(256);
+for (var q = 0; q < 256; q++) {
+  _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);
+}
+_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start
+
+
+// convert string to array (typed, when possible)
+exports.string2buf = function (str) {
+  var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
+
+  // count binary size
+  for (m_pos = 0; m_pos < str_len; m_pos++) {
+    c = str.charCodeAt(m_pos);
+    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {
+      c2 = str.charCodeAt(m_pos + 1);
+      if ((c2 & 0xfc00) === 0xdc00) {
+        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+        m_pos++;
+      }
+    }
+    buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;
+  }
+
+  // allocate buffer
+  buf = new utils.Buf8(buf_len);
+
+  // convert
+  for (i = 0, m_pos = 0; i < buf_len; m_pos++) {
+    c = str.charCodeAt(m_pos);
+    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {
+      c2 = str.charCodeAt(m_pos + 1);
+      if ((c2 & 0xfc00) === 0xdc00) {
+        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+        m_pos++;
+      }
+    }
+    if (c < 0x80) {
+      /* one byte */
+      buf[i++] = c;
+    } else if (c < 0x800) {
+      /* two bytes */
+      buf[i++] = 0xC0 | (c >>> 6);
+      buf[i++] = 0x80 | (c & 0x3f);
+    } else if (c < 0x10000) {
+      /* three bytes */
+      buf[i++] = 0xE0 | (c >>> 12);
+      buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+      buf[i++] = 0x80 | (c & 0x3f);
+    } else {
+      /* four bytes */
+      buf[i++] = 0xf0 | (c >>> 18);
+      buf[i++] = 0x80 | (c >>> 12 & 0x3f);
+      buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+      buf[i++] = 0x80 | (c & 0x3f);
+    }
+  }
+
+  return buf;
+};
+
+// Helper (used in 2 places)
+function buf2binstring(buf, len) {
+  // use fallback for big arrays to avoid stack overflow
+  if (len < 65537) {
+    if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {
+      return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));
+    }
+  }
+
+  var result = '';
+  for (var i = 0; i < len; i++) {
+    result += String.fromCharCode(buf[i]);
+  }
+  return result;
+}
+
+
+// Convert byte array to binary string
+exports.buf2binstring = function (buf) {
+  return buf2binstring(buf, buf.length);
+};
+
+
+// Convert binary string (typed, when possible)
+exports.binstring2buf = function (str) {
+  var buf = new utils.Buf8(str.length);
+  for (var i = 0, len = buf.length; i < len; i++) {
+    buf[i] = str.charCodeAt(i);
+  }
+  return buf;
+};
+
+
+// convert array to string
+exports.buf2string = function (buf, max) {
+  var i, out, c, c_len;
+  var len = max || buf.length;
+
+  // Reserve max possible length (2 words per char)
+  // NB: by unknown reasons, Array is significantly faster for
+  //     String.fromCharCode.apply than Uint16Array.
+  var utf16buf = new Array(len * 2);
+
+  for (out = 0, i = 0; i < len;) {
+    c = buf[i++];
+    // quick process ascii
+    if (c < 0x80) { utf16buf[out++] = c; continue; }
+
+    c_len = _utf8len[c];
+    // skip 5 & 6 byte codes
+    if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }
+
+    // apply mask on first byte
+    c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;
+    // join the rest
+    while (c_len > 1 && i < len) {
+      c = (c << 6) | (buf[i++] & 0x3f);
+      c_len--;
+    }
+
+    // terminated by end of string?
+    if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }
+
+    if (c < 0x10000) {
+      utf16buf[out++] = c;
+    } else {
+      c -= 0x10000;
+      utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);
+      utf16buf[out++] = 0xdc00 | (c & 0x3ff);
+    }
+  }
+
+  return buf2binstring(utf16buf, out);
+};
+
+
+// Calculate max possible position in utf8 buffer,
+// that will not break sequence. If that's not possible
+// - (very small limits) return max size as is.
+//
+// buf[] - utf8 bytes array
+// max   - length limit (mandatory);
+exports.utf8border = function (buf, max) {
+  var pos;
+
+  max = max || buf.length;
+  if (max > buf.length) { max = buf.length; }
+
+  // go back from last position, until start of sequence found
+  pos = max - 1;
+  while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }
+
+  // Fuckup - very small and broken sequence,
+  // return max, because we should return something anyway.
+  if (pos < 0) { return max; }
+
+  // If we came to start of buffer - that means vuffer is too small,
+  // return max too.
+  if (pos === 0) { return max; }
+
+  return (pos + _utf8len[buf[pos]] > max) ? pos : max;
+};
+
+},{"./common":62}],64:[function(require,module,exports){
+'use strict';
+
+// Note: adler32 takes 12% for level 0 and 2% for level 6.
+// It doesn't worth to make additional optimizationa as in original.
+// Small size is preferable.
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+function adler32(adler, buf, len, pos) {
+  var s1 = (adler & 0xffff) |0,
+      s2 = ((adler >>> 16) & 0xffff) |0,
+      n = 0;
+
+  while (len !== 0) {
+    // Set limit ~ twice less than 5552, to keep
+    // s2 in 31-bits, because we force signed ints.
+    // in other case %= will fail.
+    n = len > 2000 ? 2000 : len;
+    len -= n;
+
+    do {
+      s1 = (s1 + buf[pos++]) |0;
+      s2 = (s2 + s1) |0;
+    } while (--n);
+
+    s1 %= 65521;
+    s2 %= 65521;
+  }
+
+  return (s1 | (s2 << 16)) |0;
+}
+
+
+module.exports = adler32;
+
+},{}],65:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+module.exports = {
+
+  /* Allowed flush values; see deflate() and inflate() below for details */
+  Z_NO_FLUSH:         0,
+  Z_PARTIAL_FLUSH:    1,
+  Z_SYNC_FLUSH:       2,
+  Z_FULL_FLUSH:       3,
+  Z_FINISH:           4,
+  Z_BLOCK:            5,
+  Z_TREES:            6,
+
+  /* Return codes for the compression/decompression functions. Negative values
+  * are errors, positive values are used for special but normal events.
+  */
+  Z_OK:               0,
+  Z_STREAM_END:       1,
+  Z_NEED_DICT:        2,
+  Z_ERRNO:           -1,
+  Z_STREAM_ERROR:    -2,
+  Z_DATA_ERROR:      -3,
+  //Z_MEM_ERROR:     -4,
+  Z_BUF_ERROR:       -5,
+  //Z_VERSION_ERROR: -6,
+
+  /* compression levels */
+  Z_NO_COMPRESSION:         0,
+  Z_BEST_SPEED:             1,
+  Z_BEST_COMPRESSION:       9,
+  Z_DEFAULT_COMPRESSION:   -1,
+
+
+  Z_FILTERED:               1,
+  Z_HUFFMAN_ONLY:           2,
+  Z_RLE:                    3,
+  Z_FIXED:                  4,
+  Z_DEFAULT_STRATEGY:       0,
+
+  /* Possible values of the data_type field (though see inflate()) */
+  Z_BINARY:                 0,
+  Z_TEXT:                   1,
+  //Z_ASCII:                1, // = Z_TEXT (deprecated)
+  Z_UNKNOWN:                2,
+
+  /* The deflate compression method */
+  Z_DEFLATED:               8
+  //Z_NULL:                 null // Use -1 or null inline, depending on var type
+};
+
+},{}],66:[function(require,module,exports){
+'use strict';
+
+// Note: we can't get significant speed boost here.
+// So write code to minimize size - no pregenerated tables
+// and array tools dependencies.
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+// Use ordinary array, since untyped makes no boost here
+function makeTable() {
+  var c, table = [];
+
+  for (var n = 0; n < 256; n++) {
+    c = n;
+    for (var k = 0; k < 8; k++) {
+      c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
+    }
+    table[n] = c;
+  }
+
+  return table;
+}
+
+// Create table on load. Just 255 signed longs. Not a problem.
+var crcTable = makeTable();
+
+
+function crc32(crc, buf, len, pos) {
+  var t = crcTable,
+      end = pos + len;
+
+  crc ^= -1;
+
+  for (var i = pos; i < end; i++) {
+    crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];
+  }
+
+  return (crc ^ (-1)); // >>> 0;
+}
+
+
+module.exports = crc32;
+
+},{}],67:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils   = require('../utils/common');
+var trees   = require('./trees');
+var adler32 = require('./adler32');
+var crc32   = require('./crc32');
+var msg     = require('./messages');
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+
+/* Allowed flush values; see deflate() and inflate() below for details */
+var Z_NO_FLUSH      = 0;
+var Z_PARTIAL_FLUSH = 1;
+//var Z_SYNC_FLUSH    = 2;
+var Z_FULL_FLUSH    = 3;
+var Z_FINISH        = 4;
+var Z_BLOCK         = 5;
+//var Z_TREES         = 6;
+
+
+/* Return codes for the compression/decompression functions. Negative values
+ * are errors, positive values are used for special but normal events.
+ */
+var Z_OK            = 0;
+var Z_STREAM_END    = 1;
+//var Z_NEED_DICT     = 2;
+//var Z_ERRNO         = -1;
+var Z_STREAM_ERROR  = -2;
+var Z_DATA_ERROR    = -3;
+//var Z_MEM_ERROR     = -4;
+var Z_BUF_ERROR     = -5;
+//var Z_VERSION_ERROR = -6;
+
+
+/* compression levels */
+//var Z_NO_COMPRESSION      = 0;
+//var Z_BEST_SPEED          = 1;
+//var Z_BEST_COMPRESSION    = 9;
+var Z_DEFAULT_COMPRESSION = -1;
+
+
+var Z_FILTERED            = 1;
+var Z_HUFFMAN_ONLY        = 2;
+var Z_RLE                 = 3;
+var Z_FIXED               = 4;
+var Z_DEFAULT_STRATEGY    = 0;
+
+/* Possible values of the data_type field (though see inflate()) */
+//var Z_BINARY              = 0;
+//var Z_TEXT                = 1;
+//var Z_ASCII               = 1; // = Z_TEXT
+var Z_UNKNOWN             = 2;
+
+
+/* The deflate compression method */
+var Z_DEFLATED  = 8;
+
+/*============================================================================*/
+
+
+var MAX_MEM_LEVEL = 9;
+/* Maximum value for memLevel in deflateInit2 */
+var MAX_WBITS = 15;
+/* 32K LZ77 window */
+var DEF_MEM_LEVEL = 8;
+
+
+var LENGTH_CODES  = 29;
+/* number of length codes, not counting the special END_BLOCK code */
+var LITERALS      = 256;
+/* number of literal bytes 0..255 */
+var L_CODES       = LITERALS + 1 + LENGTH_CODES;
+/* number of Literal or Length codes, including the END_BLOCK code */
+var D_CODES       = 30;
+/* number of distance codes */
+var BL_CODES      = 19;
+/* number of codes used to transfer the bit lengths */
+var HEAP_SIZE     = 2 * L_CODES + 1;
+/* maximum heap size */
+var MAX_BITS  = 15;
+/* All codes must not exceed MAX_BITS bits */
+
+var MIN_MATCH = 3;
+var MAX_MATCH = 258;
+var MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);
+
+var PRESET_DICT = 0x20;
+
+var INIT_STATE = 42;
+var EXTRA_STATE = 69;
+var NAME_STATE = 73;
+var COMMENT_STATE = 91;
+var HCRC_STATE = 103;
+var BUSY_STATE = 113;
+var FINISH_STATE = 666;
+
+var BS_NEED_MORE      = 1; /* block not completed, need more input or more output */
+var BS_BLOCK_DONE     = 2; /* block flush performed */
+var BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */
+var BS_FINISH_DONE    = 4; /* finish done, accept no more input or output */
+
+var OS_CODE = 0x03; // Unix :) . Don't detect, use this default.
+
+function err(strm, errorCode) {
+  strm.msg = msg[errorCode];
+  return errorCode;
+}
+
+function rank(f) {
+  return ((f) << 1) - ((f) > 4 ? 9 : 0);
+}
+
+function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }
+
+
+/* =========================================================================
+ * Flush as much pending output as possible. All deflate() output goes
+ * through this function so some applications may wish to modify it
+ * to avoid allocating a large strm->output buffer and copying into it.
+ * (See also read_buf()).
+ */
+function flush_pending(strm) {
+  var s = strm.state;
+
+  //_tr_flush_bits(s);
+  var len = s.pending;
+  if (len > strm.avail_out) {
+    len = strm.avail_out;
+  }
+  if (len === 0) { return; }
+
+  utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);
+  strm.next_out += len;
+  s.pending_out += len;
+  strm.total_out += len;
+  strm.avail_out -= len;
+  s.pending -= len;
+  if (s.pending === 0) {
+    s.pending_out = 0;
+  }
+}
+
+
+function flush_block_only(s, last) {
+  trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);
+  s.block_start = s.strstart;
+  flush_pending(s.strm);
+}
+
+
+function put_byte(s, b) {
+  s.pending_buf[s.pending++] = b;
+}
+
+
+/* =========================================================================
+ * Put a short in the pending buffer. The 16-bit value is put in MSB order.
+ * IN assertion: the stream state is correct and there is enough room in
+ * pending_buf.
+ */
+function putShortMSB(s, b) {
+//  put_byte(s, (Byte)(b >> 8));
+//  put_byte(s, (Byte)(b & 0xff));
+  s.pending_buf[s.pending++] = (b >>> 8) & 0xff;
+  s.pending_buf[s.pending++] = b & 0xff;
+}
+
+
+/* ===========================================================================
+ * Read a new buffer from the current input stream, update the adler32
+ * and total number of bytes read.  All deflate() input goes through
+ * this function so some applications may wish to modify it to avoid
+ * allocating a large strm->input buffer and copying from it.
+ * (See also flush_pending()).
+ */
+function read_buf(strm, buf, start, size) {
+  var len = strm.avail_in;
+
+  if (len > size) { len = size; }
+  if (len === 0) { return 0; }
+
+  strm.avail_in -= len;
+
+  // zmemcpy(buf, strm->next_in, len);
+  utils.arraySet(buf, strm.input, strm.next_in, len, start);
+  if (strm.state.wrap === 1) {
+    strm.adler = adler32(strm.adler, buf, len, start);
+  }
+
+  else if (strm.state.wrap === 2) {
+    strm.adler = crc32(strm.adler, buf, len, start);
+  }
+
+  strm.next_in += len;
+  strm.total_in += len;
+
+  return len;
+}
+
+
+/* ===========================================================================
+ * Set match_start to the longest match starting at the given string and
+ * return its length. Matches shorter or equal to prev_length are discarded,
+ * in which case the result is equal to prev_length and match_start is
+ * garbage.
+ * IN assertions: cur_match is the head of the hash chain for the current
+ *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
+ * OUT assertion: the match length is not greater than s->lookahead.
+ */
+function longest_match(s, cur_match) {
+  var chain_length = s.max_chain_length;      /* max hash chain length */
+  var scan = s.strstart; /* current string */
+  var match;                       /* matched string */
+  var len;                           /* length of current match */
+  var best_len = s.prev_length;              /* best match length so far */
+  var nice_match = s.nice_match;             /* stop if match long enough */
+  var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?
+      s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;
+
+  var _win = s.window; // shortcut
+
+  var wmask = s.w_mask;
+  var prev  = s.prev;
+
+  /* Stop when cur_match becomes <= limit. To simplify the code,
+   * we prevent matches with the string of window index 0.
+   */
+
+  var strend = s.strstart + MAX_MATCH;
+  var scan_end1  = _win[scan + best_len - 1];
+  var scan_end   = _win[scan + best_len];
+
+  /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
+   * It is easy to get rid of this optimization if necessary.
+   */
+  // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
+
+  /* Do not waste too much time if we already have a good match: */
+  if (s.prev_length >= s.good_match) {
+    chain_length >>= 2;
+  }
+  /* Do not look for matches beyond the end of the input. This is necessary
+   * to make deflate deterministic.
+   */
+  if (nice_match > s.lookahead) { nice_match = s.lookahead; }
+
+  // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
+
+  do {
+    // Assert(cur_match < s->strstart, "no future");
+    match = cur_match;
+
+    /* Skip to next match if the match length cannot increase
+     * or if the match length is less than 2.  Note that the checks below
+     * for insufficient lookahead only occur occasionally for performance
+     * reasons.  Therefore uninitialized memory will be accessed, and
+     * conditional jumps will be made that depend on those values.
+     * However the length of the match is limited to the lookahead, so
+     * the output of deflate is not affected by the uninitialized values.
+     */
+
+    if (_win[match + best_len]     !== scan_end  ||
+        _win[match + best_len - 1] !== scan_end1 ||
+        _win[match]                !== _win[scan] ||
+        _win[++match]              !== _win[scan + 1]) {
+      continue;
+    }
+
+    /* The check at best_len-1 can be removed because it will be made
+     * again later. (This heuristic is not always a win.)
+     * It is not necessary to compare scan[2] and match[2] since they
+     * are always equal when the other bytes match, given that
+     * the hash keys are equal and that HASH_BITS >= 8.
+     */
+    scan += 2;
+    match++;
+    // Assert(*scan == *match, "match[2]?");
+
+    /* We check for insufficient lookahead only every 8th comparison;
+     * the 256th check will be made at strstart+258.
+     */
+    do {
+      /*jshint noempty:false*/
+    } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             scan < strend);
+
+    // Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
+
+    len = MAX_MATCH - (strend - scan);
+    scan = strend - MAX_MATCH;
+
+    if (len > best_len) {
+      s.match_start = cur_match;
+      best_len = len;
+      if (len >= nice_match) {
+        break;
+      }
+      scan_end1  = _win[scan + best_len - 1];
+      scan_end   = _win[scan + best_len];
+    }
+  } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
+
+  if (best_len <= s.lookahead) {
+    return best_len;
+  }
+  return s.lookahead;
+}
+
+
+/* ===========================================================================
+ * Fill the window when the lookahead becomes insufficient.
+ * Updates strstart and lookahead.
+ *
+ * IN assertion: lookahead < MIN_LOOKAHEAD
+ * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
+ *    At least one byte has been read, or avail_in == 0; reads are
+ *    performed for at least two bytes (required for the zip translate_eol
+ *    option -- not supported here).
+ */
+function fill_window(s) {
+  var _w_size = s.w_size;
+  var p, n, m, more, str;
+
+  //Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead");
+
+  do {
+    more = s.window_size - s.lookahead - s.strstart;
+
+    // JS ints have 32 bit, block below not needed
+    /* Deal with !@#$% 64K limit: */
+    //if (sizeof(int) <= 2) {
+    //    if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
+    //        more = wsize;
+    //
+    //  } else if (more == (unsigned)(-1)) {
+    //        /* Very unlikely, but possible on 16 bit machine if
+    //         * strstart == 0 && lookahead == 1 (input done a byte at time)
+    //         */
+    //        more--;
+    //    }
+    //}
+
+
+    /* If the window is almost full and there is insufficient lookahead,
+     * move the upper half to the lower one to make room in the upper half.
+     */
+    if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
+
+      utils.arraySet(s.window, s.window, _w_size, _w_size, 0);
+      s.match_start -= _w_size;
+      s.strstart -= _w_size;
+      /* we now have strstart >= MAX_DIST */
+      s.block_start -= _w_size;
+
+      /* Slide the hash table (could be avoided with 32 bit values
+       at the expense of memory usage). We slide even when level == 0
+       to keep the hash table consistent if we switch back to level > 0
+       later. (Using level 0 permanently is not an optimal usage of
+       zlib, so we don't care about this pathological case.)
+       */
+
+      n = s.hash_size;
+      p = n;
+      do {
+        m = s.head[--p];
+        s.head[p] = (m >= _w_size ? m - _w_size : 0);
+      } while (--n);
+
+      n = _w_size;
+      p = n;
+      do {
+        m = s.prev[--p];
+        s.prev[p] = (m >= _w_size ? m - _w_size : 0);
+        /* If n is not on any hash chain, prev[n] is garbage but
+         * its value will never be used.
+         */
+      } while (--n);
+
+      more += _w_size;
+    }
+    if (s.strm.avail_in === 0) {
+      break;
+    }
+
+    /* If there was no sliding:
+     *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
+     *    more == window_size - lookahead - strstart
+     * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
+     * => more >= window_size - 2*WSIZE + 2
+     * In the BIG_MEM or MMAP case (not yet supported),
+     *   window_size == input_size + MIN_LOOKAHEAD  &&
+     *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
+     * Otherwise, window_size == 2*WSIZE so more >= 2.
+     * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
+     */
+    //Assert(more >= 2, "more < 2");
+    n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
+    s.lookahead += n;
+
+    /* Initialize the hash value now that we have some input: */
+    if (s.lookahead + s.insert >= MIN_MATCH) {
+      str = s.strstart - s.insert;
+      s.ins_h = s.window[str];
+
+      /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;
+//#if MIN_MATCH != 3
+//        Call update_hash() MIN_MATCH-3 more times
+//#endif
+      while (s.insert) {
+        /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */
+        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
+
+        s.prev[str & s.w_mask] = s.head[s.ins_h];
+        s.head[s.ins_h] = str;
+        str++;
+        s.insert--;
+        if (s.lookahead + s.insert < MIN_MATCH) {
+          break;
+        }
+      }
+    }
+    /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
+     * but this is not important since only literal bytes will be emitted.
+     */
+
+  } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);
+
+  /* If the WIN_INIT bytes after the end of the current data have never been
+   * written, then zero those bytes in order to avoid memory check reports of
+   * the use of uninitialized (or uninitialised as Julian writes) bytes by
+   * the longest match routines.  Update the high water mark for the next
+   * time through here.  WIN_INIT is set to MAX_MATCH since the longest match
+   * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
+   */
+//  if (s.high_water < s.window_size) {
+//    var curr = s.strstart + s.lookahead;
+//    var init = 0;
+//
+//    if (s.high_water < curr) {
+//      /* Previous high water mark below current data -- zero WIN_INIT
+//       * bytes or up to end of window, whichever is less.
+//       */
+//      init = s.window_size - curr;
+//      if (init > WIN_INIT)
+//        init = WIN_INIT;
+//      zmemzero(s->window + curr, (unsigned)init);
+//      s->high_water = curr + init;
+//    }
+//    else if (s->high_water < (ulg)curr + WIN_INIT) {
+//      /* High water mark at or above current data, but below current data
+//       * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
+//       * to end of window, whichever is less.
+//       */
+//      init = (ulg)curr + WIN_INIT - s->high_water;
+//      if (init > s->window_size - s->high_water)
+//        init = s->window_size - s->high_water;
+//      zmemzero(s->window + s->high_water, (unsigned)init);
+//      s->high_water += init;
+//    }
+//  }
+//
+//  Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,
+//    "not enough room for search");
+}
+
+/* ===========================================================================
+ * Copy without compression as much as possible from the input stream, return
+ * the current block state.
+ * This function does not insert new strings in the dictionary since
+ * uncompressible data is probably not useful. This function is used
+ * only for the level=0 compression option.
+ * NOTE: this function should be optimized to avoid extra copying from
+ * window to pending_buf.
+ */
+function deflate_stored(s, flush) {
+  /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
+   * to pending_buf_size, and each stored block has a 5 byte header:
+   */
+  var max_block_size = 0xffff;
+
+  if (max_block_size > s.pending_buf_size - 5) {
+    max_block_size = s.pending_buf_size - 5;
+  }
+
+  /* Copy as much as possible from input to output: */
+  for (;;) {
+    /* Fill the window as much as possible: */
+    if (s.lookahead <= 1) {
+
+      //Assert(s->strstart < s->w_size+MAX_DIST(s) ||
+      //  s->block_start >= (long)s->w_size, "slide too late");
+//      if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||
+//        s.block_start >= s.w_size)) {
+//        throw  new Error("slide too late");
+//      }
+
+      fill_window(s);
+      if (s.lookahead === 0 && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+
+      if (s.lookahead === 0) {
+        break;
+      }
+      /* flush the current block */
+    }
+    //Assert(s->block_start >= 0L, "block gone");
+//    if (s.block_start < 0) throw new Error("block gone");
+
+    s.strstart += s.lookahead;
+    s.lookahead = 0;
+
+    /* Emit a stored block if pending_buf will be full: */
+    var max_start = s.block_start + max_block_size;
+
+    if (s.strstart === 0 || s.strstart >= max_start) {
+      /* strstart == 0 is possible when wraparound on 16-bit machine */
+      s.lookahead = s.strstart - max_start;
+      s.strstart = max_start;
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+
+
+    }
+    /* Flush if we may have to slide, otherwise block_start may become
+     * negative and the data will be gone:
+     */
+    if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+
+  s.insert = 0;
+
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+
+  if (s.strstart > s.block_start) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+
+  return BS_NEED_MORE;
+}
+
+/* ===========================================================================
+ * Compress as much as possible from the input stream, return the current
+ * block state.
+ * This function does not perform lazy evaluation of matches and inserts
+ * new strings in the dictionary only for unmatched strings or for short
+ * matches. It is used only for the fast compression options.
+ */
+function deflate_fast(s, flush) {
+  var hash_head;        /* head of the hash chain */
+  var bflush;           /* set if current block must be flushed */
+
+  for (;;) {
+    /* Make sure that we always have enough lookahead, except
+     * at the end of the input file. We need MAX_MATCH bytes
+     * for the next match, plus MIN_MATCH bytes to insert the
+     * string following the next match.
+     */
+    if (s.lookahead < MIN_LOOKAHEAD) {
+      fill_window(s);
+      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+      if (s.lookahead === 0) {
+        break; /* flush the current block */
+      }
+    }
+
+    /* Insert the string window[strstart .. strstart+2] in the
+     * dictionary, and set hash_head to the head of the hash chain:
+     */
+    hash_head = 0/*NIL*/;
+    if (s.lookahead >= MIN_MATCH) {
+      /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+      s.head[s.ins_h] = s.strstart;
+      /***/
+    }
+
+    /* Find the longest match, discarding those <= prev_length.
+     * At this point we have always match_length < MIN_MATCH
+     */
+    if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {
+      /* To simplify the code, we prevent matches with the string
+       * of window index 0 (in particular we have to avoid a match
+       * of the string with itself at the start of the input file).
+       */
+      s.match_length = longest_match(s, hash_head);
+      /* longest_match() sets match_start */
+    }
+    if (s.match_length >= MIN_MATCH) {
+      // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only
+
+      /*** _tr_tally_dist(s, s.strstart - s.match_start,
+                     s.match_length - MIN_MATCH, bflush); ***/
+      bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);
+
+      s.lookahead -= s.match_length;
+
+      /* Insert new strings in the hash table only if the match length
+       * is not too large. This saves time but degrades compression.
+       */
+      if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {
+        s.match_length--; /* string at strstart already in table */
+        do {
+          s.strstart++;
+          /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+          s.head[s.ins_h] = s.strstart;
+          /***/
+          /* strstart never exceeds WSIZE-MAX_MATCH, so there are
+           * always MIN_MATCH bytes ahead.
+           */
+        } while (--s.match_length !== 0);
+        s.strstart++;
+      } else
+      {
+        s.strstart += s.match_length;
+        s.match_length = 0;
+        s.ins_h = s.window[s.strstart];
+        /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */
+        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;
+
+//#if MIN_MATCH != 3
+//                Call UPDATE_HASH() MIN_MATCH-3 more times
+//#endif
+        /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
+         * matter since it will be recomputed at next deflate call.
+         */
+      }
+    } else {
+      /* No match, output a literal byte */
+      //Tracevv((stderr,"%c", s.window[s.strstart]));
+      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
+      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
+
+      s.lookahead--;
+      s.strstart++;
+    }
+    if (bflush) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+  s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+  return BS_BLOCK_DONE;
+}
+
+/* ===========================================================================
+ * Same as above, but achieves better compression. We use a lazy
+ * evaluation for matches: a match is finally adopted only if there is
+ * no better match at the next window position.
+ */
+function deflate_slow(s, flush) {
+  var hash_head;          /* head of hash chain */
+  var bflush;              /* set if current block must be flushed */
+
+  var max_insert;
+
+  /* Process the input block. */
+  for (;;) {
+    /* Make sure that we always have enough lookahead, except
+     * at the end of the input file. We need MAX_MATCH bytes
+     * for the next match, plus MIN_MATCH bytes to insert the
+     * string following the next match.
+     */
+    if (s.lookahead < MIN_LOOKAHEAD) {
+      fill_window(s);
+      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+      if (s.lookahead === 0) { break; } /* flush the current block */
+    }
+
+    /* Insert the string window[strstart .. strstart+2] in the
+     * dictionary, and set hash_head to the head of the hash chain:
+     */
+    hash_head = 0/*NIL*/;
+    if (s.lookahead >= MIN_MATCH) {
+      /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+      s.head[s.ins_h] = s.strstart;
+      /***/
+    }
+
+    /* Find the longest match, discarding those <= prev_length.
+     */
+    s.prev_length = s.match_length;
+    s.prev_match = s.match_start;
+    s.match_length = MIN_MATCH - 1;
+
+    if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&
+        s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {
+      /* To simplify the code, we prevent matches with the string
+       * of window index 0 (in particular we have to avoid a match
+       * of the string with itself at the start of the input file).
+       */
+      s.match_length = longest_match(s, hash_head);
+      /* longest_match() sets match_start */
+
+      if (s.match_length <= 5 &&
+         (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {
+
+        /* If prev_match is also MIN_MATCH, match_start is garbage
+         * but we will ignore the current match anyway.
+         */
+        s.match_length = MIN_MATCH - 1;
+      }
+    }
+    /* If there was a match at the previous step and the current
+     * match is not better, output the previous match:
+     */
+    if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {
+      max_insert = s.strstart + s.lookahead - MIN_MATCH;
+      /* Do not insert strings in hash table beyond this. */
+
+      //check_match(s, s.strstart-1, s.prev_match, s.prev_length);
+
+      /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,
+                     s.prev_length - MIN_MATCH, bflush);***/
+      bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);
+      /* Insert in hash table all strings up to the end of the match.
+       * strstart-1 and strstart are already inserted. If there is not
+       * enough lookahead, the last two strings are not inserted in
+       * the hash table.
+       */
+      s.lookahead -= s.prev_length - 1;
+      s.prev_length -= 2;
+      do {
+        if (++s.strstart <= max_insert) {
+          /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+          s.head[s.ins_h] = s.strstart;
+          /***/
+        }
+      } while (--s.prev_length !== 0);
+      s.match_available = 0;
+      s.match_length = MIN_MATCH - 1;
+      s.strstart++;
+
+      if (bflush) {
+        /*** FLUSH_BLOCK(s, 0); ***/
+        flush_block_only(s, false);
+        if (s.strm.avail_out === 0) {
+          return BS_NEED_MORE;
+        }
+        /***/
+      }
+
+    } else if (s.match_available) {
+      /* If there was no match at the previous position, output a
+       * single literal. If there was a match but the current match
+       * is longer, truncate the previous match to a single literal.
+       */
+      //Tracevv((stderr,"%c", s->window[s->strstart-1]));
+      /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
+      bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
+
+      if (bflush) {
+        /*** FLUSH_BLOCK_ONLY(s, 0) ***/
+        flush_block_only(s, false);
+        /***/
+      }
+      s.strstart++;
+      s.lookahead--;
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+    } else {
+      /* There is no previous match to compare with, wait for
+       * the next step to decide.
+       */
+      s.match_available = 1;
+      s.strstart++;
+      s.lookahead--;
+    }
+  }
+  //Assert (flush != Z_NO_FLUSH, "no flush?");
+  if (s.match_available) {
+    //Tracevv((stderr,"%c", s->window[s->strstart-1]));
+    /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
+    bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
+
+    s.match_available = 0;
+  }
+  s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+
+  return BS_BLOCK_DONE;
+}
+
+
+/* ===========================================================================
+ * For Z_RLE, simply look for runs of bytes, generate matches only of distance
+ * one.  Do not maintain a hash table.  (It will be regenerated if this run of
+ * deflate switches away from Z_RLE.)
+ */
+function deflate_rle(s, flush) {
+  var bflush;            /* set if current block must be flushed */
+  var prev;              /* byte at distance one to match */
+  var scan, strend;      /* scan goes up to strend for length of run */
+
+  var _win = s.window;
+
+  for (;;) {
+    /* Make sure that we always have enough lookahead, except
+     * at the end of the input file. We need MAX_MATCH bytes
+     * for the longest run, plus one for the unrolled loop.
+     */
+    if (s.lookahead <= MAX_MATCH) {
+      fill_window(s);
+      if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+      if (s.lookahead === 0) { break; } /* flush the current block */
+    }
+
+    /* See how many times the previous byte repeats */
+    s.match_length = 0;
+    if (s.lookahead >= MIN_MATCH && s.strstart > 0) {
+      scan = s.strstart - 1;
+      prev = _win[scan];
+      if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {
+        strend = s.strstart + MAX_MATCH;
+        do {
+          /*jshint noempty:false*/
+        } while (prev === _win[++scan] && prev === _win[++scan] &&
+                 prev === _win[++scan] && prev === _win[++scan] &&
+                 prev === _win[++scan] && prev === _win[++scan] &&
+                 prev === _win[++scan] && prev === _win[++scan] &&
+                 scan < strend);
+        s.match_length = MAX_MATCH - (strend - scan);
+        if (s.match_length > s.lookahead) {
+          s.match_length = s.lookahead;
+        }
+      }
+      //Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan");
+    }
+
+    /* Emit match if have run of MIN_MATCH or longer, else emit literal */
+    if (s.match_length >= MIN_MATCH) {
+      //check_match(s, s.strstart, s.strstart - 1, s.match_length);
+
+      /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/
+      bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);
+
+      s.lookahead -= s.match_length;
+      s.strstart += s.match_length;
+      s.match_length = 0;
+    } else {
+      /* No match, output a literal byte */
+      //Tracevv((stderr,"%c", s->window[s->strstart]));
+      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
+      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
+
+      s.lookahead--;
+      s.strstart++;
+    }
+    if (bflush) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+  s.insert = 0;
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+  return BS_BLOCK_DONE;
+}
+
+/* ===========================================================================
+ * For Z_HUFFMAN_ONLY, do not look for matches.  Do not maintain a hash table.
+ * (It will be regenerated if this run of deflate switches away from Huffman.)
+ */
+function deflate_huff(s, flush) {
+  var bflush;             /* set if current block must be flushed */
+
+  for (;;) {
+    /* Make sure that we have a literal to write. */
+    if (s.lookahead === 0) {
+      fill_window(s);
+      if (s.lookahead === 0) {
+        if (flush === Z_NO_FLUSH) {
+          return BS_NEED_MORE;
+        }
+        break;      /* flush the current block */
+      }
+    }
+
+    /* Output a literal byte */
+    s.match_length = 0;
+    //Tracevv((stderr,"%c", s->window[s->strstart]));
+    /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
+    bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
+    s.lookahead--;
+    s.strstart++;
+    if (bflush) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+  s.insert = 0;
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+  return BS_BLOCK_DONE;
+}
+
+/* Values for max_lazy_match, good_match and max_chain_length, depending on
+ * the desired pack level (0..9). The values given below have been tuned to
+ * exclude worst case performance for pathological files. Better values may be
+ * found for specific files.
+ */
+function Config(good_length, max_lazy, nice_length, max_chain, func) {
+  this.good_length = good_length;
+  this.max_lazy = max_lazy;
+  this.nice_length = nice_length;
+  this.max_chain = max_chain;
+  this.func = func;
+}
+
+var configuration_table;
+
+configuration_table = [
+  /*      good lazy nice chain */
+  new Config(0, 0, 0, 0, deflate_stored),          /* 0 store only */
+  new Config(4, 4, 8, 4, deflate_fast),            /* 1 max speed, no lazy matches */
+  new Config(4, 5, 16, 8, deflate_fast),           /* 2 */
+  new Config(4, 6, 32, 32, deflate_fast),          /* 3 */
+
+  new Config(4, 4, 16, 16, deflate_slow),          /* 4 lazy matches */
+  new Config(8, 16, 32, 32, deflate_slow),         /* 5 */
+  new Config(8, 16, 128, 128, deflate_slow),       /* 6 */
+  new Config(8, 32, 128, 256, deflate_slow),       /* 7 */
+  new Config(32, 128, 258, 1024, deflate_slow),    /* 8 */
+  new Config(32, 258, 258, 4096, deflate_slow)     /* 9 max compression */
+];
+
+
+/* ===========================================================================
+ * Initialize the "longest match" routines for a new zlib stream
+ */
+function lm_init(s) {
+  s.window_size = 2 * s.w_size;
+
+  /*** CLEAR_HASH(s); ***/
+  zero(s.head); // Fill with NIL (= 0);
+
+  /* Set the default configuration parameters:
+   */
+  s.max_lazy_match = configuration_table[s.level].max_lazy;
+  s.good_match = configuration_table[s.level].good_length;
+  s.nice_match = configuration_table[s.level].nice_length;
+  s.max_chain_length = configuration_table[s.level].max_chain;
+
+  s.strstart = 0;
+  s.block_start = 0;
+  s.lookahead = 0;
+  s.insert = 0;
+  s.match_length = s.prev_length = MIN_MATCH - 1;
+  s.match_available = 0;
+  s.ins_h = 0;
+}
+
+
+function DeflateState() {
+  this.strm = null;            /* pointer back to this zlib stream */
+  this.status = 0;            /* as the name implies */
+  this.pending_buf = null;      /* output still pending */
+  this.pending_buf_size = 0;  /* size of pending_buf */
+  this.pending_out = 0;       /* next pending byte to output to the stream */
+  this.pending = 0;           /* nb of bytes in the pending buffer */
+  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */
+  this.gzhead = null;         /* gzip header information to write */
+  this.gzindex = 0;           /* where in extra, name, or comment */
+  this.method = Z_DEFLATED; /* can only be DEFLATED */
+  this.last_flush = -1;   /* value of flush param for previous deflate call */
+
+  this.w_size = 0;  /* LZ77 window size (32K by default) */
+  this.w_bits = 0;  /* log2(w_size)  (8..16) */
+  this.w_mask = 0;  /* w_size - 1 */
+
+  this.window = null;
+  /* Sliding window. Input bytes are read into the second half of the window,
+   * and move to the first half later to keep a dictionary of at least wSize
+   * bytes. With this organization, matches are limited to a distance of
+   * wSize-MAX_MATCH bytes, but this ensures that IO is always
+   * performed with a length multiple of the block size.
+   */
+
+  this.window_size = 0;
+  /* Actual size of window: 2*wSize, except when the user input buffer
+   * is directly used as sliding window.
+   */
+
+  this.prev = null;
+  /* Link to older string with same hash index. To limit the size of this
+   * array to 64K, this link is maintained only for the last 32K strings.
+   * An index in this array is thus a window index modulo 32K.
+   */
+
+  this.head = null;   /* Heads of the hash chains or NIL. */
+
+  this.ins_h = 0;       /* hash index of string to be inserted */
+  this.hash_size = 0;   /* number of elements in hash table */
+  this.hash_bits = 0;   /* log2(hash_size) */
+  this.hash_mask = 0;   /* hash_size-1 */
+
+  this.hash_shift = 0;
+  /* Number of bits by which ins_h must be shifted at each input
+   * step. It must be such that after MIN_MATCH steps, the oldest
+   * byte no longer takes part in the hash key, that is:
+   *   hash_shift * MIN_MATCH >= hash_bits
+   */
+
+  this.block_start = 0;
+  /* Window position at the beginning of the current output block. Gets
+   * negative when the window is moved backwards.
+   */
+
+  this.match_length = 0;      /* length of best match */
+  this.prev_match = 0;        /* previous match */
+  this.match_available = 0;   /* set if previous match exists */
+  this.strstart = 0;          /* start of string to insert */
+  this.match_start = 0;       /* start of matching string */
+  this.lookahead = 0;         /* number of valid bytes ahead in window */
+
+  this.prev_length = 0;
+  /* Length of the best match at previous step. Matches not greater than this
+   * are discarded. This is used in the lazy match evaluation.
+   */
+
+  this.max_chain_length = 0;
+  /* To speed up deflation, hash chains are never searched beyond this
+   * length.  A higher limit improves compression ratio but degrades the
+   * speed.
+   */
+
+  this.max_lazy_match = 0;
+  /* Attempt to find a better match only when the current match is strictly
+   * smaller than this value. This mechanism is used only for compression
+   * levels >= 4.
+   */
+  // That's alias to max_lazy_match, don't use directly
+  //this.max_insert_length = 0;
+  /* Insert new strings in the hash table only if the match length is not
+   * greater than this length. This saves time but degrades compression.
+   * max_insert_length is used only for compression levels <= 3.
+   */
+
+  this.level = 0;     /* compression level (1..9) */
+  this.strategy = 0;  /* favor or force Huffman coding*/
+
+  this.good_match = 0;
+  /* Use a faster search when the previous match is longer than this */
+
+  this.nice_match = 0; /* Stop searching when current match exceeds this */
+
+              /* used by trees.c: */
+
+  /* Didn't use ct_data typedef below to suppress compiler warning */
+
+  // struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */
+  // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
+  // struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */
+
+  // Use flat array of DOUBLE size, with interleaved fata,
+  // because JS does not support effective
+  this.dyn_ltree  = new utils.Buf16(HEAP_SIZE * 2);
+  this.dyn_dtree  = new utils.Buf16((2 * D_CODES + 1) * 2);
+  this.bl_tree    = new utils.Buf16((2 * BL_CODES + 1) * 2);
+  zero(this.dyn_ltree);
+  zero(this.dyn_dtree);
+  zero(this.bl_tree);
+
+  this.l_desc   = null;         /* desc. for literal tree */
+  this.d_desc   = null;         /* desc. for distance tree */
+  this.bl_desc  = null;         /* desc. for bit length tree */
+
+  //ush bl_count[MAX_BITS+1];
+  this.bl_count = new utils.Buf16(MAX_BITS + 1);
+  /* number of codes at each bit length for an optimal tree */
+
+  //int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */
+  this.heap = new utils.Buf16(2 * L_CODES + 1);  /* heap used to build the Huffman trees */
+  zero(this.heap);
+
+  this.heap_len = 0;               /* number of elements in the heap */
+  this.heap_max = 0;               /* element of largest frequency */
+  /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
+   * The same heap array is used to build all trees.
+   */
+
+  this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];
+  zero(this.depth);
+  /* Depth of each subtree used as tie breaker for trees of equal frequency
+   */
+
+  this.l_buf = 0;          /* buffer index for literals or lengths */
+
+  this.lit_bufsize = 0;
+  /* Size of match buffer for literals/lengths.  There are 4 reasons for
+   * limiting lit_bufsize to 64K:
+   *   - frequencies can be kept in 16 bit counters
+   *   - if compression is not successful for the first block, all input
+   *     data is still in the window so we can still emit a stored block even
+   *     when input comes from standard input.  (This can also be done for
+   *     all blocks if lit_bufsize is not greater than 32K.)
+   *   - if compression is not successful for a file smaller than 64K, we can
+   *     even emit a stored file instead of a stored block (saving 5 bytes).
+   *     This is applicable only for zip (not gzip or zlib).
+   *   - creating new Huffman trees less frequently may not provide fast
+   *     adaptation to changes in the input data statistics. (Take for
+   *     example a binary file with poorly compressible code followed by
+   *     a highly compressible string table.) Smaller buffer sizes give
+   *     fast adaptation but have of course the overhead of transmitting
+   *     trees more frequently.
+   *   - I can't count above 4
+   */
+
+  this.last_lit = 0;      /* running index in l_buf */
+
+  this.d_buf = 0;
+  /* Buffer index for distances. To simplify the code, d_buf and l_buf have
+   * the same number of elements. To use different lengths, an extra flag
+   * array would be necessary.
+   */
+
+  this.opt_len = 0;       /* bit length of current block with optimal trees */
+  this.static_len = 0;    /* bit length of current block with static trees */
+  this.matches = 0;       /* number of string matches in current block */
+  this.insert = 0;        /* bytes at end of window left to insert */
+
+
+  this.bi_buf = 0;
+  /* Output buffer. bits are inserted starting at the bottom (least
+   * significant bits).
+   */
+  this.bi_valid = 0;
+  /* Number of valid bits in bi_buf.  All bits above the last valid bit
+   * are always zero.
+   */
+
+  // Used for window memory init. We safely ignore it for JS. That makes
+  // sense only for pointers and memory check tools.
+  //this.high_water = 0;
+  /* High water mark offset in window for initialized bytes -- bytes above
+   * this are set to zero in order to avoid memory check warnings when
+   * longest match routines access bytes past the input.  This is then
+   * updated to the new high water mark.
+   */
+}
+
+
+function deflateResetKeep(strm) {
+  var s;
+
+  if (!strm || !strm.state) {
+    return err(strm, Z_STREAM_ERROR);
+  }
+
+  strm.total_in = strm.total_out = 0;
+  strm.data_type = Z_UNKNOWN;
+
+  s = strm.state;
+  s.pending = 0;
+  s.pending_out = 0;
+
+  if (s.wrap < 0) {
+    s.wrap = -s.wrap;
+    /* was made negative by deflate(..., Z_FINISH); */
+  }
+  s.status = (s.wrap ? INIT_STATE : BUSY_STATE);
+  strm.adler = (s.wrap === 2) ?
+    0  // crc32(0, Z_NULL, 0)
+  :
+    1; // adler32(0, Z_NULL, 0)
+  s.last_flush = Z_NO_FLUSH;
+  trees._tr_init(s);
+  return Z_OK;
+}
+
+
+function deflateReset(strm) {
+  var ret = deflateResetKeep(strm);
+  if (ret === Z_OK) {
+    lm_init(strm.state);
+  }
+  return ret;
+}
+
+
+function deflateSetHeader(strm, head) {
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }
+  strm.state.gzhead = head;
+  return Z_OK;
+}
+
+
+function deflateInit2(strm, level, method, windowBits, memLevel, strategy) {
+  if (!strm) { // === Z_NULL
+    return Z_STREAM_ERROR;
+  }
+  var wrap = 1;
+
+  if (level === Z_DEFAULT_COMPRESSION) {
+    level = 6;
+  }
+
+  if (windowBits < 0) { /* suppress zlib wrapper */
+    wrap = 0;
+    windowBits = -windowBits;
+  }
+
+  else if (windowBits > 15) {
+    wrap = 2;           /* write gzip wrapper instead */
+    windowBits -= 16;
+  }
+
+
+  if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||
+    windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
+    strategy < 0 || strategy > Z_FIXED) {
+    return err(strm, Z_STREAM_ERROR);
+  }
+
+
+  if (windowBits === 8) {
+    windowBits = 9;
+  }
+  /* until 256-byte window bug fixed */
+
+  var s = new DeflateState();
+
+  strm.state = s;
+  s.strm = strm;
+
+  s.wrap = wrap;
+  s.gzhead = null;
+  s.w_bits = windowBits;
+  s.w_size = 1 << s.w_bits;
+  s.w_mask = s.w_size - 1;
+
+  s.hash_bits = memLevel + 7;
+  s.hash_size = 1 << s.hash_bits;
+  s.hash_mask = s.hash_size - 1;
+  s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);
+
+  s.window = new utils.Buf8(s.w_size * 2);
+  s.head = new utils.Buf16(s.hash_size);
+  s.prev = new utils.Buf16(s.w_size);
+
+  // Don't need mem init magic for JS.
+  //s.high_water = 0;  /* nothing written to s->window yet */
+
+  s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
+
+  s.pending_buf_size = s.lit_bufsize * 4;
+
+  //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
+  //s->pending_buf = (uchf *) overlay;
+  s.pending_buf = new utils.Buf8(s.pending_buf_size);
+
+  // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)
+  //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
+  s.d_buf = 1 * s.lit_bufsize;
+
+  //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
+  s.l_buf = (1 + 2) * s.lit_bufsize;
+
+  s.level = level;
+  s.strategy = strategy;
+  s.method = method;
+
+  return deflateReset(strm);
+}
+
+function deflateInit(strm, level) {
+  return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);
+}
+
+
+function deflate(strm, flush) {
+  var old_flush, s;
+  var beg, val; // for gzip header write only
+
+  if (!strm || !strm.state ||
+    flush > Z_BLOCK || flush < 0) {
+    return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;
+  }
+
+  s = strm.state;
+
+  if (!strm.output ||
+      (!strm.input && strm.avail_in !== 0) ||
+      (s.status === FINISH_STATE && flush !== Z_FINISH)) {
+    return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);
+  }
+
+  s.strm = strm; /* just in case */
+  old_flush = s.last_flush;
+  s.last_flush = flush;
+
+  /* Write the header */
+  if (s.status === INIT_STATE) {
+
+    if (s.wrap === 2) { // GZIP header
+      strm.adler = 0;  //crc32(0L, Z_NULL, 0);
+      put_byte(s, 31);
+      put_byte(s, 139);
+      put_byte(s, 8);
+      if (!s.gzhead) { // s->gzhead == Z_NULL
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, s.level === 9 ? 2 :
+                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?
+                     4 : 0));
+        put_byte(s, OS_CODE);
+        s.status = BUSY_STATE;
+      }
+      else {
+        put_byte(s, (s.gzhead.text ? 1 : 0) +
+                    (s.gzhead.hcrc ? 2 : 0) +
+                    (!s.gzhead.extra ? 0 : 4) +
+                    (!s.gzhead.name ? 0 : 8) +
+                    (!s.gzhead.comment ? 0 : 16)
+                );
+        put_byte(s, s.gzhead.time & 0xff);
+        put_byte(s, (s.gzhead.time >> 8) & 0xff);
+        put_byte(s, (s.gzhead.time >> 16) & 0xff);
+        put_byte(s, (s.gzhead.time >> 24) & 0xff);
+        put_byte(s, s.level === 9 ? 2 :
+                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?
+                     4 : 0));
+        put_byte(s, s.gzhead.os & 0xff);
+        if (s.gzhead.extra && s.gzhead.extra.length) {
+          put_byte(s, s.gzhead.extra.length & 0xff);
+          put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);
+        }
+        if (s.gzhead.hcrc) {
+          strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);
+        }
+        s.gzindex = 0;
+        s.status = EXTRA_STATE;
+      }
+    }
+    else // DEFLATE header
+    {
+      var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;
+      var level_flags = -1;
+
+      if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {
+        level_flags = 0;
+      } else if (s.level < 6) {
+        level_flags = 1;
+      } else if (s.level === 6) {
+        level_flags = 2;
+      } else {
+        level_flags = 3;
+      }
+      header |= (level_flags << 6);
+      if (s.strstart !== 0) { header |= PRESET_DICT; }
+      header += 31 - (header % 31);
+
+      s.status = BUSY_STATE;
+      putShortMSB(s, header);
+
+      /* Save the adler32 of the preset dictionary: */
+      if (s.strstart !== 0) {
+        putShortMSB(s, strm.adler >>> 16);
+        putShortMSB(s, strm.adler & 0xffff);
+      }
+      strm.adler = 1; // adler32(0L, Z_NULL, 0);
+    }
+  }
+
+//#ifdef GZIP
+  if (s.status === EXTRA_STATE) {
+    if (s.gzhead.extra/* != Z_NULL*/) {
+      beg = s.pending;  /* start of bytes to update crc */
+
+      while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {
+        if (s.pending === s.pending_buf_size) {
+          if (s.gzhead.hcrc && s.pending > beg) {
+            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+          }
+          flush_pending(strm);
+          beg = s.pending;
+          if (s.pending === s.pending_buf_size) {
+            break;
+          }
+        }
+        put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);
+        s.gzindex++;
+      }
+      if (s.gzhead.hcrc && s.pending > beg) {
+        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+      }
+      if (s.gzindex === s.gzhead.extra.length) {
+        s.gzindex = 0;
+        s.status = NAME_STATE;
+      }
+    }
+    else {
+      s.status = NAME_STATE;
+    }
+  }
+  if (s.status === NAME_STATE) {
+    if (s.gzhead.name/* != Z_NULL*/) {
+      beg = s.pending;  /* start of bytes to update crc */
+      //int val;
+
+      do {
+        if (s.pending === s.pending_buf_size) {
+          if (s.gzhead.hcrc && s.pending > beg) {
+            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+          }
+          flush_pending(strm);
+          beg = s.pending;
+          if (s.pending === s.pending_buf_size) {
+            val = 1;
+            break;
+          }
+        }
+        // JS specific: little magic to add zero terminator to end of string
+        if (s.gzindex < s.gzhead.name.length) {
+          val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;
+        } else {
+          val = 0;
+        }
+        put_byte(s, val);
+      } while (val !== 0);
+
+      if (s.gzhead.hcrc && s.pending > beg) {
+        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+      }
+      if (val === 0) {
+        s.gzindex = 0;
+        s.status = COMMENT_STATE;
+      }
+    }
+    else {
+      s.status = COMMENT_STATE;
+    }
+  }
+  if (s.status === COMMENT_STATE) {
+    if (s.gzhead.comment/* != Z_NULL*/) {
+      beg = s.pending;  /* start of bytes to update crc */
+      //int val;
+
+      do {
+        if (s.pending === s.pending_buf_size) {
+          if (s.gzhead.hcrc && s.pending > beg) {
+            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+          }
+          flush_pending(strm);
+          beg = s.pending;
+          if (s.pending === s.pending_buf_size) {
+            val = 1;
+            break;
+          }
+        }
+        // JS specific: little magic to add zero terminator to end of string
+        if (s.gzindex < s.gzhead.comment.length) {
+          val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;
+        } else {
+          val = 0;
+        }
+        put_byte(s, val);
+      } while (val !== 0);
+
+      if (s.gzhead.hcrc && s.pending > beg) {
+        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+      }
+      if (val === 0) {
+        s.status = HCRC_STATE;
+      }
+    }
+    else {
+      s.status = HCRC_STATE;
+    }
+  }
+  if (s.status === HCRC_STATE) {
+    if (s.gzhead.hcrc) {
+      if (s.pending + 2 > s.pending_buf_size) {
+        flush_pending(strm);
+      }
+      if (s.pending + 2 <= s.pending_buf_size) {
+        put_byte(s, strm.adler & 0xff);
+        put_byte(s, (strm.adler >> 8) & 0xff);
+        strm.adler = 0; //crc32(0L, Z_NULL, 0);
+        s.status = BUSY_STATE;
+      }
+    }
+    else {
+      s.status = BUSY_STATE;
+    }
+  }
+//#endif
+
+  /* Flush as much pending output as possible */
+  if (s.pending !== 0) {
+    flush_pending(strm);
+    if (strm.avail_out === 0) {
+      /* Since avail_out is 0, deflate will be called again with
+       * more output space, but possibly with both pending and
+       * avail_in equal to zero. There won't be anything to do,
+       * but this is not an error situation so make sure we
+       * return OK instead of BUF_ERROR at next call of deflate:
+       */
+      s.last_flush = -1;
+      return Z_OK;
+    }
+
+    /* Make sure there is something to do and avoid duplicate consecutive
+     * flushes. For repeated and useless calls with Z_FINISH, we keep
+     * returning Z_STREAM_END instead of Z_BUF_ERROR.
+     */
+  } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&
+    flush !== Z_FINISH) {
+    return err(strm, Z_BUF_ERROR);
+  }
+
+  /* User must not provide more input after the first FINISH: */
+  if (s.status === FINISH_STATE && strm.avail_in !== 0) {
+    return err(strm, Z_BUF_ERROR);
+  }
+
+  /* Start a new block or continue the current one.
+   */
+  if (strm.avail_in !== 0 || s.lookahead !== 0 ||
+    (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {
+    var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :
+      (s.strategy === Z_RLE ? deflate_rle(s, flush) :
+        configuration_table[s.level].func(s, flush));
+
+    if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {
+      s.status = FINISH_STATE;
+    }
+    if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {
+      if (strm.avail_out === 0) {
+        s.last_flush = -1;
+        /* avoid BUF_ERROR next call, see above */
+      }
+      return Z_OK;
+      /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
+       * of deflate should use the same flush parameter to make sure
+       * that the flush is complete. So we don't have to output an
+       * empty block here, this will be done at next call. This also
+       * ensures that for a very small output buffer, we emit at most
+       * one empty block.
+       */
+    }
+    if (bstate === BS_BLOCK_DONE) {
+      if (flush === Z_PARTIAL_FLUSH) {
+        trees._tr_align(s);
+      }
+      else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
+
+        trees._tr_stored_block(s, 0, 0, false);
+        /* For a full flush, this empty block will be recognized
+         * as a special marker by inflate_sync().
+         */
+        if (flush === Z_FULL_FLUSH) {
+          /*** CLEAR_HASH(s); ***/             /* forget history */
+          zero(s.head); // Fill with NIL (= 0);
+
+          if (s.lookahead === 0) {
+            s.strstart = 0;
+            s.block_start = 0;
+            s.insert = 0;
+          }
+        }
+      }
+      flush_pending(strm);
+      if (strm.avail_out === 0) {
+        s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */
+        return Z_OK;
+      }
+    }
+  }
+  //Assert(strm->avail_out > 0, "bug2");
+  //if (strm.avail_out <= 0) { throw new Error("bug2");}
+
+  if (flush !== Z_FINISH) { return Z_OK; }
+  if (s.wrap <= 0) { return Z_STREAM_END; }
+
+  /* Write the trailer */
+  if (s.wrap === 2) {
+    put_byte(s, strm.adler & 0xff);
+    put_byte(s, (strm.adler >> 8) & 0xff);
+    put_byte(s, (strm.adler >> 16) & 0xff);
+    put_byte(s, (strm.adler >> 24) & 0xff);
+    put_byte(s, strm.total_in & 0xff);
+    put_byte(s, (strm.total_in >> 8) & 0xff);
+    put_byte(s, (strm.total_in >> 16) & 0xff);
+    put_byte(s, (strm.total_in >> 24) & 0xff);
+  }
+  else
+  {
+    putShortMSB(s, strm.adler >>> 16);
+    putShortMSB(s, strm.adler & 0xffff);
+  }
+
+  flush_pending(strm);
+  /* If avail_out is zero, the application will call deflate again
+   * to flush the rest.
+   */
+  if (s.wrap > 0) { s.wrap = -s.wrap; }
+  /* write the trailer only once! */
+  return s.pending !== 0 ? Z_OK : Z_STREAM_END;
+}
+
+function deflateEnd(strm) {
+  var status;
+
+  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {
+    return Z_STREAM_ERROR;
+  }
+
+  status = strm.state.status;
+  if (status !== INIT_STATE &&
+    status !== EXTRA_STATE &&
+    status !== NAME_STATE &&
+    status !== COMMENT_STATE &&
+    status !== HCRC_STATE &&
+    status !== BUSY_STATE &&
+    status !== FINISH_STATE
+  ) {
+    return err(strm, Z_STREAM_ERROR);
+  }
+
+  strm.state = null;
+
+  return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;
+}
+
+
+/* =========================================================================
+ * Initializes the compression dictionary from the given byte
+ * sequence without producing any compressed output.
+ */
+function deflateSetDictionary(strm, dictionary) {
+  var dictLength = dictionary.length;
+
+  var s;
+  var str, n;
+  var wrap;
+  var avail;
+  var next;
+  var input;
+  var tmpDict;
+
+  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {
+    return Z_STREAM_ERROR;
+  }
+
+  s = strm.state;
+  wrap = s.wrap;
+
+  if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {
+    return Z_STREAM_ERROR;
+  }
+
+  /* when using zlib wrappers, compute Adler-32 for provided dictionary */
+  if (wrap === 1) {
+    /* adler32(strm->adler, dictionary, dictLength); */
+    strm.adler = adler32(strm.adler, dictionary, dictLength, 0);
+  }
+
+  s.wrap = 0;   /* avoid computing Adler-32 in read_buf */
+
+  /* if dictionary would fill window, just replace the history */
+  if (dictLength >= s.w_size) {
+    if (wrap === 0) {            /* already empty otherwise */
+      /*** CLEAR_HASH(s); ***/
+      zero(s.head); // Fill with NIL (= 0);
+      s.strstart = 0;
+      s.block_start = 0;
+      s.insert = 0;
+    }
+    /* use the tail */
+    // dictionary = dictionary.slice(dictLength - s.w_size);
+    tmpDict = new utils.Buf8(s.w_size);
+    utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);
+    dictionary = tmpDict;
+    dictLength = s.w_size;
+  }
+  /* insert dictionary into window and hash */
+  avail = strm.avail_in;
+  next = strm.next_in;
+  input = strm.input;
+  strm.avail_in = dictLength;
+  strm.next_in = 0;
+  strm.input = dictionary;
+  fill_window(s);
+  while (s.lookahead >= MIN_MATCH) {
+    str = s.strstart;
+    n = s.lookahead - (MIN_MATCH - 1);
+    do {
+      /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
+
+      s.prev[str & s.w_mask] = s.head[s.ins_h];
+
+      s.head[s.ins_h] = str;
+      str++;
+    } while (--n);
+    s.strstart = str;
+    s.lookahead = MIN_MATCH - 1;
+    fill_window(s);
+  }
+  s.strstart += s.lookahead;
+  s.block_start = s.strstart;
+  s.insert = s.lookahead;
+  s.lookahead = 0;
+  s.match_length = s.prev_length = MIN_MATCH - 1;
+  s.match_available = 0;
+  strm.next_in = next;
+  strm.input = input;
+  strm.avail_in = avail;
+  s.wrap = wrap;
+  return Z_OK;
+}
+
+
+exports.deflateInit = deflateInit;
+exports.deflateInit2 = deflateInit2;
+exports.deflateReset = deflateReset;
+exports.deflateResetKeep = deflateResetKeep;
+exports.deflateSetHeader = deflateSetHeader;
+exports.deflate = deflate;
+exports.deflateEnd = deflateEnd;
+exports.deflateSetDictionary = deflateSetDictionary;
+exports.deflateInfo = 'pako deflate (from Nodeca project)';
+
+/* Not implemented
+exports.deflateBound = deflateBound;
+exports.deflateCopy = deflateCopy;
+exports.deflateParams = deflateParams;
+exports.deflatePending = deflatePending;
+exports.deflatePrime = deflatePrime;
+exports.deflateTune = deflateTune;
+*/
+
+},{"../utils/common":62,"./adler32":64,"./crc32":66,"./messages":72,"./trees":73}],68:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+function GZheader() {
+  /* true if compressed data believed to be text */
+  this.text       = 0;
+  /* modification time */
+  this.time       = 0;
+  /* extra flags (not used when writing a gzip file) */
+  this.xflags     = 0;
+  /* operating system */
+  this.os         = 0;
+  /* pointer to extra field or Z_NULL if none */
+  this.extra      = null;
+  /* extra field length (valid if extra != Z_NULL) */
+  this.extra_len  = 0; // Actually, we don't need it in JS,
+                       // but leave for few code modifications
+
+  //
+  // Setup limits is not necessary because in js we should not preallocate memory
+  // for inflate use constant limit in 65536 bytes
+  //
+
+  /* space at extra (only when reading header) */
+  // this.extra_max  = 0;
+  /* pointer to zero-terminated file name or Z_NULL */
+  this.name       = '';
+  /* space at name (only when reading header) */
+  // this.name_max   = 0;
+  /* pointer to zero-terminated comment or Z_NULL */
+  this.comment    = '';
+  /* space at comment (only when reading header) */
+  // this.comm_max   = 0;
+  /* true if there was or will be a header crc */
+  this.hcrc       = 0;
+  /* true when done reading gzip header (not used when writing a gzip file) */
+  this.done       = false;
+}
+
+module.exports = GZheader;
+
+},{}],69:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+// See state defs from inflate.js
+var BAD = 30;       /* got a data error -- remain here until reset */
+var TYPE = 12;      /* i: waiting for type bits, including last-flag bit */
+
+/*
+   Decode literal, length, and distance codes and write out the resulting
+   literal and match bytes until either not enough input or output is
+   available, an end-of-block is encountered, or a data error is encountered.
+   When large enough input and output buffers are supplied to inflate(), for
+   example, a 16K input buffer and a 64K output buffer, more than 95% of the
+   inflate execution time is spent in this routine.
+
+   Entry assumptions:
+
+        state.mode === LEN
+        strm.avail_in >= 6
+        strm.avail_out >= 258
+        start >= strm.avail_out
+        state.bits < 8
+
+   On return, state.mode is one of:
+
+        LEN -- ran out of enough output space or enough available input
+        TYPE -- reached end of block code, inflate() to interpret next block
+        BAD -- error in block data
+
+   Notes:
+
+    - The maximum input bits used by a length/distance pair is 15 bits for the
+      length code, 5 bits for the length extra, 15 bits for the distance code,
+      and 13 bits for the distance extra.  This totals 48 bits, or six bytes.
+      Therefore if strm.avail_in >= 6, then there is enough input to avoid
+      checking for available input while decoding.
+
+    - The maximum bytes that a single length/distance pair can output is 258
+      bytes, which is the maximum length that can be coded.  inflate_fast()
+      requires strm.avail_out >= 258 for each loop to avoid checking for
+      output space.
+ */
+module.exports = function inflate_fast(strm, start) {
+  var state;
+  var _in;                    /* local strm.input */
+  var last;                   /* have enough input while in < last */
+  var _out;                   /* local strm.output */
+  var beg;                    /* inflate()'s initial strm.output */
+  var end;                    /* while out < end, enough space available */
+//#ifdef INFLATE_STRICT
+  var dmax;                   /* maximum distance from zlib header */
+//#endif
+  var wsize;                  /* window size or zero if not using window */
+  var whave;                  /* valid bytes in the window */
+  var wnext;                  /* window write index */
+  // Use `s_window` instead `window`, avoid conflict with instrumentation tools
+  var s_window;               /* allocated sliding window, if wsize != 0 */
+  var hold;                   /* local strm.hold */
+  var bits;                   /* local strm.bits */
+  var lcode;                  /* local strm.lencode */
+  var dcode;                  /* local strm.distcode */
+  var lmask;                  /* mask for first level of length codes */
+  var dmask;                  /* mask for first level of distance codes */
+  var here;                   /* retrieved table entry */
+  var op;                     /* code bits, operation, extra bits, or */
+                              /*  window position, window bytes to copy */
+  var len;                    /* match length, unused bytes */
+  var dist;                   /* match distance */
+  var from;                   /* where to copy match from */
+  var from_source;
+
+
+  var input, output; // JS specific, because we have no pointers
+
+  /* copy state to local variables */
+  state = strm.state;
+  //here = state.here;
+  _in = strm.next_in;
+  input = strm.input;
+  last = _in + (strm.avail_in - 5);
+  _out = strm.next_out;
+  output = strm.output;
+  beg = _out - (start - strm.avail_out);
+  end = _out + (strm.avail_out - 257);
+//#ifdef INFLATE_STRICT
+  dmax = state.dmax;
+//#endif
+  wsize = state.wsize;
+  whave = state.whave;
+  wnext = state.wnext;
+  s_window = state.window;
+  hold = state.hold;
+  bits = state.bits;
+  lcode = state.lencode;
+  dcode = state.distcode;
+  lmask = (1 << state.lenbits) - 1;
+  dmask = (1 << state.distbits) - 1;
+
+
+  /* decode literals and length/distances until end-of-block or not enough
+     input data or output space */
+
+  top:
+  do {
+    if (bits < 15) {
+      hold += input[_in++] << bits;
+      bits += 8;
+      hold += input[_in++] << bits;
+      bits += 8;
+    }
+
+    here = lcode[hold & lmask];
+
+    dolen:
+    for (;;) { // Goto emulation
+      op = here >>> 24/*here.bits*/;
+      hold >>>= op;
+      bits -= op;
+      op = (here >>> 16) & 0xff/*here.op*/;
+      if (op === 0) {                          /* literal */
+        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
+        //        "inflate:         literal '%c'\n" :
+        //        "inflate:         literal 0x%02x\n", here.val));
+        output[_out++] = here & 0xffff/*here.val*/;
+      }
+      else if (op & 16) {                     /* length base */
+        len = here & 0xffff/*here.val*/;
+        op &= 15;                           /* number of extra bits */
+        if (op) {
+          if (bits < op) {
+            hold += input[_in++] << bits;
+            bits += 8;
+          }
+          len += hold & ((1 << op) - 1);
+          hold >>>= op;
+          bits -= op;
+        }
+        //Tracevv((stderr, "inflate:         length %u\n", len));
+        if (bits < 15) {
+          hold += input[_in++] << bits;
+          bits += 8;
+          hold += input[_in++] << bits;
+          bits += 8;
+        }
+        here = dcode[hold & dmask];
+
+        dodist:
+        for (;;) { // goto emulation
+          op = here >>> 24/*here.bits*/;
+          hold >>>= op;
+          bits -= op;
+          op = (here >>> 16) & 0xff/*here.op*/;
+
+          if (op & 16) {                      /* distance base */
+            dist = here & 0xffff/*here.val*/;
+            op &= 15;                       /* number of extra bits */
+            if (bits < op) {
+              hold += input[_in++] << bits;
+              bits += 8;
+              if (bits < op) {
+                hold += input[_in++] << bits;
+                bits += 8;
+              }
+            }
+            dist += hold & ((1 << op) - 1);
+//#ifdef INFLATE_STRICT
+            if (dist > dmax) {
+              strm.msg = 'invalid distance too far back';
+              state.mode = BAD;
+              break top;
+            }
+//#endif
+            hold >>>= op;
+            bits -= op;
+            //Tracevv((stderr, "inflate:         distance %u\n", dist));
+            op = _out - beg;                /* max distance in output */
+            if (dist > op) {                /* see if copy from window */
+              op = dist - op;               /* distance back in window */
+              if (op > whave) {
+                if (state.sane) {
+                  strm.msg = 'invalid distance too far back';
+                  state.mode = BAD;
+                  break top;
+                }
+
+// (!) This block is disabled in zlib defailts,
+// don't enable it for binary compatibility
+//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+//                if (len <= op - whave) {
+//                  do {
+//                    output[_out++] = 0;
+//                  } while (--len);
+//                  continue top;
+//                }
+//                len -= op - whave;
+//                do {
+//                  output[_out++] = 0;
+//                } while (--op > whave);
+//                if (op === 0) {
+//                  from = _out - dist;
+//                  do {
+//                    output[_out++] = output[from++];
+//                  } while (--len);
+//                  continue top;
+//                }
+//#endif
+              }
+              from = 0; // window index
+              from_source = s_window;
+              if (wnext === 0) {           /* very common case */
+                from += wsize - op;
+                if (op < len) {         /* some from window */
+                  len -= op;
+                  do {
+                    output[_out++] = s_window[from++];
+                  } while (--op);
+                  from = _out - dist;  /* rest from output */
+                  from_source = output;
+                }
+              }
+              else if (wnext < op) {      /* wrap around window */
+                from += wsize + wnext - op;
+                op -= wnext;
+                if (op < len) {         /* some from end of window */
+                  len -= op;
+                  do {
+                    output[_out++] = s_window[from++];
+                  } while (--op);
+                  from = 0;
+                  if (wnext < len) {  /* some from start of window */
+                    op = wnext;
+                    len -= op;
+                    do {
+                      output[_out++] = s_window[from++];
+                    } while (--op);
+                    from = _out - dist;      /* rest from output */
+                    from_source = output;
+                  }
+                }
+              }
+              else {                      /* contiguous in window */
+                from += wnext - op;
+                if (op < len) {         /* some from window */
+                  len -= op;
+                  do {
+                    output[_out++] = s_window[from++];
+                  } while (--op);
+                  from = _out - dist;  /* rest from output */
+                  from_source = output;
+                }
+              }
+              while (len > 2) {
+                output[_out++] = from_source[from++];
+                output[_out++] = from_source[from++];
+                output[_out++] = from_source[from++];
+                len -= 3;
+              }
+              if (len) {
+                output[_out++] = from_source[from++];
+                if (len > 1) {
+                  output[_out++] = from_source[from++];
+                }
+              }
+            }
+            else {
+              from = _out - dist;          /* copy direct from output */
+              do {                        /* minimum length is three */
+                output[_out++] = output[from++];
+                output[_out++] = output[from++];
+                output[_out++] = output[from++];
+                len -= 3;
+              } while (len > 2);
+              if (len) {
+                output[_out++] = output[from++];
+                if (len > 1) {
+                  output[_out++] = output[from++];
+                }
+              }
+            }
+          }
+          else if ((op & 64) === 0) {          /* 2nd level distance code */
+            here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];
+            continue dodist;
+          }
+          else {
+            strm.msg = 'invalid distance code';
+            state.mode = BAD;
+            break top;
+          }
+
+          break; // need to emulate goto via "continue"
+        }
+      }
+      else if ((op & 64) === 0) {              /* 2nd level length code */
+        here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];
+        continue dolen;
+      }
+      else if (op & 32) {                     /* end-of-block */
+        //Tracevv((stderr, "inflate:         end of block\n"));
+        state.mode = TYPE;
+        break top;
+      }
+      else {
+        strm.msg = 'invalid literal/length code';
+        state.mode = BAD;
+        break top;
+      }
+
+      break; // need to emulate goto via "continue"
+    }
+  } while (_in < last && _out < end);
+
+  /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
+  len = bits >> 3;
+  _in -= len;
+  bits -= len << 3;
+  hold &= (1 << bits) - 1;
+
+  /* update state and return */
+  strm.next_in = _in;
+  strm.next_out = _out;
+  strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));
+  strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));
+  state.hold = hold;
+  state.bits = bits;
+  return;
+};
+
+},{}],70:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils         = require('../utils/common');
+var adler32       = require('./adler32');
+var crc32         = require('./crc32');
+var inflate_fast  = require('./inffast');
+var inflate_table = require('./inftrees');
+
+var CODES = 0;
+var LENS = 1;
+var DISTS = 2;
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+
+/* Allowed flush values; see deflate() and inflate() below for details */
+//var Z_NO_FLUSH      = 0;
+//var Z_PARTIAL_FLUSH = 1;
+//var Z_SYNC_FLUSH    = 2;
+//var Z_FULL_FLUSH    = 3;
+var Z_FINISH        = 4;
+var Z_BLOCK         = 5;
+var Z_TREES         = 6;
+
+
+/* Return codes for the compression/decompression functions. Negative values
+ * are errors, positive values are used for special but normal events.
+ */
+var Z_OK            = 0;
+var Z_STREAM_END    = 1;
+var Z_NEED_DICT     = 2;
+//var Z_ERRNO         = -1;
+var Z_STREAM_ERROR  = -2;
+var Z_DATA_ERROR    = -3;
+var Z_MEM_ERROR     = -4;
+var Z_BUF_ERROR     = -5;
+//var Z_VERSION_ERROR = -6;
+
+/* The deflate compression method */
+var Z_DEFLATED  = 8;
+
+
+/* STATES ====================================================================*/
+/* ===========================================================================*/
+
+
+var    HEAD = 1;       /* i: waiting for magic header */
+var    FLAGS = 2;      /* i: waiting for method and flags (gzip) */
+var    TIME = 3;       /* i: waiting for modification time (gzip) */
+var    OS = 4;         /* i: waiting for extra flags and operating system (gzip) */
+var    EXLEN = 5;      /* i: waiting for extra length (gzip) */
+var    EXTRA = 6;      /* i: waiting for extra bytes (gzip) */
+var    NAME = 7;       /* i: waiting for end of file name (gzip) */
+var    COMMENT = 8;    /* i: waiting for end of comment (gzip) */
+var    HCRC = 9;       /* i: waiting for header crc (gzip) */
+var    DICTID = 10;    /* i: waiting for dictionary check value */
+var    DICT = 11;      /* waiting for inflateSetDictionary() call */
+var        TYPE = 12;      /* i: waiting for type bits, including last-flag bit */
+var        TYPEDO = 13;    /* i: same, but skip check to exit inflate on new block */
+var        STORED = 14;    /* i: waiting for stored size (length and complement) */
+var        COPY_ = 15;     /* i/o: same as COPY below, but only first time in */
+var        COPY = 16;      /* i/o: waiting for input or output to copy stored block */
+var        TABLE = 17;     /* i: waiting for dynamic block table lengths */
+var        LENLENS = 18;   /* i: waiting for code length code lengths */
+var        CODELENS = 19;  /* i: waiting for length/lit and distance code lengths */
+var            LEN_ = 20;      /* i: same as LEN below, but only first time in */
+var            LEN = 21;       /* i: waiting for length/lit/eob code */
+var            LENEXT = 22;    /* i: waiting for length extra bits */
+var            DIST = 23;      /* i: waiting for distance code */
+var            DISTEXT = 24;   /* i: waiting for distance extra bits */
+var            MATCH = 25;     /* o: waiting for output space to copy string */
+var            LIT = 26;       /* o: waiting for output space to write literal */
+var    CHECK = 27;     /* i: waiting for 32-bit check value */
+var    LENGTH = 28;    /* i: waiting for 32-bit length (gzip) */
+var    DONE = 29;      /* finished check, done -- remain here until reset */
+var    BAD = 30;       /* got a data error -- remain here until reset */
+var    MEM = 31;       /* got an inflate() memory error -- remain here until reset */
+var    SYNC = 32;      /* looking for synchronization bytes to restart inflate() */
+
+/* ===========================================================================*/
+
+
+
+var ENOUGH_LENS = 852;
+var ENOUGH_DISTS = 592;
+//var ENOUGH =  (ENOUGH_LENS+ENOUGH_DISTS);
+
+var MAX_WBITS = 15;
+/* 32K LZ77 window */
+var DEF_WBITS = MAX_WBITS;
+
+
+function zswap32(q) {
+  return  (((q >>> 24) & 0xff) +
+          ((q >>> 8) & 0xff00) +
+          ((q & 0xff00) << 8) +
+          ((q & 0xff) << 24));
+}
+
+
+function InflateState() {
+  this.mode = 0;             /* current inflate mode */
+  this.last = false;          /* true if processing last block */
+  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */
+  this.havedict = false;      /* true if dictionary provided */
+  this.flags = 0;             /* gzip header method and flags (0 if zlib) */
+  this.dmax = 0;              /* zlib header max distance (INFLATE_STRICT) */
+  this.check = 0;             /* protected copy of check value */
+  this.total = 0;             /* protected copy of output count */
+  // TODO: may be {}
+  this.head = null;           /* where to save gzip header information */
+
+  /* sliding window */
+  this.wbits = 0;             /* log base 2 of requested window size */
+  this.wsize = 0;             /* window size or zero if not using window */
+  this.whave = 0;             /* valid bytes in the window */
+  this.wnext = 0;             /* window write index */
+  this.window = null;         /* allocated sliding window, if needed */
+
+  /* bit accumulator */
+  this.hold = 0;              /* input bit accumulator */
+  this.bits = 0;              /* number of bits in "in" */
+
+  /* for string and stored block copying */
+  this.length = 0;            /* literal or length of data to copy */
+  this.offset = 0;            /* distance back to copy string from */
+
+  /* for table and code decoding */
+  this.extra = 0;             /* extra bits needed */
+
+  /* fixed and dynamic code tables */
+  this.lencode = null;          /* starting table for length/literal codes */
+  this.distcode = null;         /* starting table for distance codes */
+  this.lenbits = 0;           /* index bits for lencode */
+  this.distbits = 0;          /* index bits for distcode */
+
+  /* dynamic table building */
+  this.ncode = 0;             /* number of code length code lengths */
+  this.nlen = 0;              /* number of length code lengths */
+  this.ndist = 0;             /* number of distance code lengths */
+  this.have = 0;              /* number of code lengths in lens[] */
+  this.next = null;              /* next available space in codes[] */
+
+  this.lens = new utils.Buf16(320); /* temporary storage for code lengths */
+  this.work = new utils.Buf16(288); /* work area for code table building */
+
+  /*
+   because we don't have pointers in js, we use lencode and distcode directly
+   as buffers so we don't need codes
+  */
+  //this.codes = new utils.Buf32(ENOUGH);       /* space for code tables */
+  this.lendyn = null;              /* dynamic table for length/literal codes (JS specific) */
+  this.distdyn = null;             /* dynamic table for distance codes (JS specific) */
+  this.sane = 0;                   /* if false, allow invalid distance too far */
+  this.back = 0;                   /* bits back of last unprocessed length/lit */
+  this.was = 0;                    /* initial length of match */
+}
+
+function inflateResetKeep(strm) {
+  var state;
+
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+  strm.total_in = strm.total_out = state.total = 0;
+  strm.msg = ''; /*Z_NULL*/
+  if (state.wrap) {       /* to support ill-conceived Java test suite */
+    strm.adler = state.wrap & 1;
+  }
+  state.mode = HEAD;
+  state.last = 0;
+  state.havedict = 0;
+  state.dmax = 32768;
+  state.head = null/*Z_NULL*/;
+  state.hold = 0;
+  state.bits = 0;
+  //state.lencode = state.distcode = state.next = state.codes;
+  state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);
+  state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);
+
+  state.sane = 1;
+  state.back = -1;
+  //Tracev((stderr, "inflate: reset\n"));
+  return Z_OK;
+}
+
+function inflateReset(strm) {
+  var state;
+
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+  state.wsize = 0;
+  state.whave = 0;
+  state.wnext = 0;
+  return inflateResetKeep(strm);
+
+}
+
+function inflateReset2(strm, windowBits) {
+  var wrap;
+  var state;
+
+  /* get the state */
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+
+  /* extract wrap request from windowBits parameter */
+  if (windowBits < 0) {
+    wrap = 0;
+    windowBits = -windowBits;
+  }
+  else {
+    wrap = (windowBits >> 4) + 1;
+    if (windowBits < 48) {
+      windowBits &= 15;
+    }
+  }
+
+  /* set number of window bits, free window if different */
+  if (windowBits && (windowBits < 8 || windowBits > 15)) {
+    return Z_STREAM_ERROR;
+  }
+  if (state.window !== null && state.wbits !== windowBits) {
+    state.window = null;
+  }
+
+  /* update state and reset the rest of it */
+  state.wrap = wrap;
+  state.wbits = windowBits;
+  return inflateReset(strm);
+}
+
+function inflateInit2(strm, windowBits) {
+  var ret;
+  var state;
+
+  if (!strm) { return Z_STREAM_ERROR; }
+  //strm.msg = Z_NULL;                 /* in case we return an error */
+
+  state = new InflateState();
+
+  //if (state === Z_NULL) return Z_MEM_ERROR;
+  //Tracev((stderr, "inflate: allocated\n"));
+  strm.state = state;
+  state.window = null/*Z_NULL*/;
+  ret = inflateReset2(strm, windowBits);
+  if (ret !== Z_OK) {
+    strm.state = null/*Z_NULL*/;
+  }
+  return ret;
+}
+
+function inflateInit(strm) {
+  return inflateInit2(strm, DEF_WBITS);
+}
+
+
+/*
+ Return state with length and distance decoding tables and index sizes set to
+ fixed code decoding.  Normally this returns fixed tables from inffixed.h.
+ If BUILDFIXED is defined, then instead this routine builds the tables the
+ first time it's called, and returns those tables the first time and
+ thereafter.  This reduces the size of the code by about 2K bytes, in
+ exchange for a little execution time.  However, BUILDFIXED should not be
+ used for threaded applications, since the rewriting of the tables and virgin
+ may not be thread-safe.
+ */
+var virgin = true;
+
+var lenfix, distfix; // We have no pointers in JS, so keep tables separate
+
+function fixedtables(state) {
+  /* build fixed huffman tables if first call (may not be thread safe) */
+  if (virgin) {
+    var sym;
+
+    lenfix = new utils.Buf32(512);
+    distfix = new utils.Buf32(32);
+
+    /* literal/length table */
+    sym = 0;
+    while (sym < 144) { state.lens[sym++] = 8; }
+    while (sym < 256) { state.lens[sym++] = 9; }
+    while (sym < 280) { state.lens[sym++] = 7; }
+    while (sym < 288) { state.lens[sym++] = 8; }
+
+    inflate_table(LENS,  state.lens, 0, 288, lenfix,   0, state.work, { bits: 9 });
+
+    /* distance table */
+    sym = 0;
+    while (sym < 32) { state.lens[sym++] = 5; }
+
+    inflate_table(DISTS, state.lens, 0, 32,   distfix, 0, state.work, { bits: 5 });
+
+    /* do this just once */
+    virgin = false;
+  }
+
+  state.lencode = lenfix;
+  state.lenbits = 9;
+  state.distcode = distfix;
+  state.distbits = 5;
+}
+
+
+/*
+ Update the window with the last wsize (normally 32K) bytes written before
+ returning.  If window does not exist yet, create it.  This is only called
+ when a window is already in use, or when output has been written during this
+ inflate call, but the end of the deflate stream has not been reached yet.
+ It is also called to create a window for dictionary data when a dictionary
+ is loaded.
+
+ Providing output buffers larger than 32K to inflate() should provide a speed
+ advantage, since only the last 32K of output is copied to the sliding window
+ upon return from inflate(), and since all distances after the first 32K of
+ output will fall in the output data, making match copies simpler and faster.
+ The advantage may be dependent on the size of the processor's data caches.
+ */
+function updatewindow(strm, src, end, copy) {
+  var dist;
+  var state = strm.state;
+
+  /* if it hasn't been done already, allocate space for the window */
+  if (state.window === null) {
+    state.wsize = 1 << state.wbits;
+    state.wnext = 0;
+    state.whave = 0;
+
+    state.window = new utils.Buf8(state.wsize);
+  }
+
+  /* copy state->wsize or less output bytes into the circular window */
+  if (copy >= state.wsize) {
+    utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);
+    state.wnext = 0;
+    state.whave = state.wsize;
+  }
+  else {
+    dist = state.wsize - state.wnext;
+    if (dist > copy) {
+      dist = copy;
+    }
+    //zmemcpy(state->window + state->wnext, end - copy, dist);
+    utils.arraySet(state.window, src, end - copy, dist, state.wnext);
+    copy -= dist;
+    if (copy) {
+      //zmemcpy(state->window, end - copy, copy);
+      utils.arraySet(state.window, src, end - copy, copy, 0);
+      state.wnext = copy;
+      state.whave = state.wsize;
+    }
+    else {
+      state.wnext += dist;
+      if (state.wnext === state.wsize) { state.wnext = 0; }
+      if (state.whave < state.wsize) { state.whave += dist; }
+    }
+  }
+  return 0;
+}
+
+function inflate(strm, flush) {
+  var state;
+  var input, output;          // input/output buffers
+  var next;                   /* next input INDEX */
+  var put;                    /* next output INDEX */
+  var have, left;             /* available input and output */
+  var hold;                   /* bit buffer */
+  var bits;                   /* bits in bit buffer */
+  var _in, _out;              /* save starting available input and output */
+  var copy;                   /* number of stored or match bytes to copy */
+  var from;                   /* where to copy match bytes from */
+  var from_source;
+  var here = 0;               /* current decoding table entry */
+  var here_bits, here_op, here_val; // paked "here" denormalized (JS specific)
+  //var last;                   /* parent table entry */
+  var last_bits, last_op, last_val; // paked "last" denormalized (JS specific)
+  var len;                    /* length to copy for repeats, bits to drop */
+  var ret;                    /* return code */
+  var hbuf = new utils.Buf8(4);    /* buffer for gzip header crc calculation */
+  var opts;
+
+  var n; // temporary var for NEED_BITS
+
+  var order = /* permutation of code lengths */
+    [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];
+
+
+  if (!strm || !strm.state || !strm.output ||
+      (!strm.input && strm.avail_in !== 0)) {
+    return Z_STREAM_ERROR;
+  }
+
+  state = strm.state;
+  if (state.mode === TYPE) { state.mode = TYPEDO; }    /* skip check */
+
+
+  //--- LOAD() ---
+  put = strm.next_out;
+  output = strm.output;
+  left = strm.avail_out;
+  next = strm.next_in;
+  input = strm.input;
+  have = strm.avail_in;
+  hold = state.hold;
+  bits = state.bits;
+  //---
+
+  _in = have;
+  _out = left;
+  ret = Z_OK;
+
+  inf_leave: // goto emulation
+  for (;;) {
+    switch (state.mode) {
+    case HEAD:
+      if (state.wrap === 0) {
+        state.mode = TYPEDO;
+        break;
+      }
+      //=== NEEDBITS(16);
+      while (bits < 16) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if ((state.wrap & 2) && hold === 0x8b1f) {  /* gzip header */
+        state.check = 0/*crc32(0L, Z_NULL, 0)*/;
+        //=== CRC2(state.check, hold);
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        state.check = crc32(state.check, hbuf, 2, 0);
+        //===//
+
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+        state.mode = FLAGS;
+        break;
+      }
+      state.flags = 0;           /* expect zlib header */
+      if (state.head) {
+        state.head.done = false;
+      }
+      if (!(state.wrap & 1) ||   /* check if zlib header allowed */
+        (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {
+        strm.msg = 'incorrect header check';
+        state.mode = BAD;
+        break;
+      }
+      if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {
+        strm.msg = 'unknown compression method';
+        state.mode = BAD;
+        break;
+      }
+      //--- DROPBITS(4) ---//
+      hold >>>= 4;
+      bits -= 4;
+      //---//
+      len = (hold & 0x0f)/*BITS(4)*/ + 8;
+      if (state.wbits === 0) {
+        state.wbits = len;
+      }
+      else if (len > state.wbits) {
+        strm.msg = 'invalid window size';
+        state.mode = BAD;
+        break;
+      }
+      state.dmax = 1 << len;
+      //Tracev((stderr, "inflate:   zlib header ok\n"));
+      strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;
+      state.mode = hold & 0x200 ? DICTID : TYPE;
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      break;
+    case FLAGS:
+      //=== NEEDBITS(16); */
+      while (bits < 16) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      state.flags = hold;
+      if ((state.flags & 0xff) !== Z_DEFLATED) {
+        strm.msg = 'unknown compression method';
+        state.mode = BAD;
+        break;
+      }
+      if (state.flags & 0xe000) {
+        strm.msg = 'unknown header flags set';
+        state.mode = BAD;
+        break;
+      }
+      if (state.head) {
+        state.head.text = ((hold >> 8) & 1);
+      }
+      if (state.flags & 0x0200) {
+        //=== CRC2(state.check, hold);
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        state.check = crc32(state.check, hbuf, 2, 0);
+        //===//
+      }
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = TIME;
+      /* falls through */
+    case TIME:
+      //=== NEEDBITS(32); */
+      while (bits < 32) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if (state.head) {
+        state.head.time = hold;
+      }
+      if (state.flags & 0x0200) {
+        //=== CRC4(state.check, hold)
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        hbuf[2] = (hold >>> 16) & 0xff;
+        hbuf[3] = (hold >>> 24) & 0xff;
+        state.check = crc32(state.check, hbuf, 4, 0);
+        //===
+      }
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = OS;
+      /* falls through */
+    case OS:
+      //=== NEEDBITS(16); */
+      while (bits < 16) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if (state.head) {
+        state.head.xflags = (hold & 0xff);
+        state.head.os = (hold >> 8);
+      }
+      if (state.flags & 0x0200) {
+        //=== CRC2(state.check, hold);
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        state.check = crc32(state.check, hbuf, 2, 0);
+        //===//
+      }
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = EXLEN;
+      /* falls through */
+    case EXLEN:
+      if (state.flags & 0x0400) {
+        //=== NEEDBITS(16); */
+        while (bits < 16) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.length = hold;
+        if (state.head) {
+          state.head.extra_len = hold;
+        }
+        if (state.flags & 0x0200) {
+          //=== CRC2(state.check, hold);
+          hbuf[0] = hold & 0xff;
+          hbuf[1] = (hold >>> 8) & 0xff;
+          state.check = crc32(state.check, hbuf, 2, 0);
+          //===//
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+      }
+      else if (state.head) {
+        state.head.extra = null/*Z_NULL*/;
+      }
+      state.mode = EXTRA;
+      /* falls through */
+    case EXTRA:
+      if (state.flags & 0x0400) {
+        copy = state.length;
+        if (copy > have) { copy = have; }
+        if (copy) {
+          if (state.head) {
+            len = state.head.extra_len - state.length;
+            if (!state.head.extra) {
+              // Use untyped array for more conveniend processing later
+              state.head.extra = new Array(state.head.extra_len);
+            }
+            utils.arraySet(
+              state.head.extra,
+              input,
+              next,
+              // extra field is limited to 65536 bytes
+              // - no need for additional size check
+              copy,
+              /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
+              len
+            );
+            //zmemcpy(state.head.extra + len, next,
+            //        len + copy > state.head.extra_max ?
+            //        state.head.extra_max - len : copy);
+          }
+          if (state.flags & 0x0200) {
+            state.check = crc32(state.check, input, copy, next);
+          }
+          have -= copy;
+          next += copy;
+          state.length -= copy;
+        }
+        if (state.length) { break inf_leave; }
+      }
+      state.length = 0;
+      state.mode = NAME;
+      /* falls through */
+    case NAME:
+      if (state.flags & 0x0800) {
+        if (have === 0) { break inf_leave; }
+        copy = 0;
+        do {
+          // TODO: 2 or 1 bytes?
+          len = input[next + copy++];
+          /* use constant limit because in js we should not preallocate memory */
+          if (state.head && len &&
+              (state.length < 65536 /*state.head.name_max*/)) {
+            state.head.name += String.fromCharCode(len);
+          }
+        } while (len && copy < have);
+
+        if (state.flags & 0x0200) {
+          state.check = crc32(state.check, input, copy, next);
+        }
+        have -= copy;
+        next += copy;
+        if (len) { break inf_leave; }
+      }
+      else if (state.head) {
+        state.head.name = null;
+      }
+      state.length = 0;
+      state.mode = COMMENT;
+      /* falls through */
+    case COMMENT:
+      if (state.flags & 0x1000) {
+        if (have === 0) { break inf_leave; }
+        copy = 0;
+        do {
+          len = input[next + copy++];
+          /* use constant limit because in js we should not preallocate memory */
+          if (state.head && len &&
+              (state.length < 65536 /*state.head.comm_max*/)) {
+            state.head.comment += String.fromCharCode(len);
+          }
+        } while (len && copy < have);
+        if (state.flags & 0x0200) {
+          state.check = crc32(state.check, input, copy, next);
+        }
+        have -= copy;
+        next += copy;
+        if (len) { break inf_leave; }
+      }
+      else if (state.head) {
+        state.head.comment = null;
+      }
+      state.mode = HCRC;
+      /* falls through */
+    case HCRC:
+      if (state.flags & 0x0200) {
+        //=== NEEDBITS(16); */
+        while (bits < 16) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        if (hold !== (state.check & 0xffff)) {
+          strm.msg = 'header crc mismatch';
+          state.mode = BAD;
+          break;
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+      }
+      if (state.head) {
+        state.head.hcrc = ((state.flags >> 9) & 1);
+        state.head.done = true;
+      }
+      strm.adler = state.check = 0;
+      state.mode = TYPE;
+      break;
+    case DICTID:
+      //=== NEEDBITS(32); */
+      while (bits < 32) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      strm.adler = state.check = zswap32(hold);
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = DICT;
+      /* falls through */
+    case DICT:
+      if (state.havedict === 0) {
+        //--- RESTORE() ---
+        strm.next_out = put;
+        strm.avail_out = left;
+        strm.next_in = next;
+        strm.avail_in = have;
+        state.hold = hold;
+        state.bits = bits;
+        //---
+        return Z_NEED_DICT;
+      }
+      strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;
+      state.mode = TYPE;
+      /* falls through */
+    case TYPE:
+      if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }
+      /* falls through */
+    case TYPEDO:
+      if (state.last) {
+        //--- BYTEBITS() ---//
+        hold >>>= bits & 7;
+        bits -= bits & 7;
+        //---//
+        state.mode = CHECK;
+        break;
+      }
+      //=== NEEDBITS(3); */
+      while (bits < 3) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      state.last = (hold & 0x01)/*BITS(1)*/;
+      //--- DROPBITS(1) ---//
+      hold >>>= 1;
+      bits -= 1;
+      //---//
+
+      switch ((hold & 0x03)/*BITS(2)*/) {
+      case 0:                             /* stored block */
+        //Tracev((stderr, "inflate:     stored block%s\n",
+        //        state.last ? " (last)" : ""));
+        state.mode = STORED;
+        break;
+      case 1:                             /* fixed block */
+        fixedtables(state);
+        //Tracev((stderr, "inflate:     fixed codes block%s\n",
+        //        state.last ? " (last)" : ""));
+        state.mode = LEN_;             /* decode codes */
+        if (flush === Z_TREES) {
+          //--- DROPBITS(2) ---//
+          hold >>>= 2;
+          bits -= 2;
+          //---//
+          break inf_leave;
+        }
+        break;
+      case 2:                             /* dynamic block */
+        //Tracev((stderr, "inflate:     dynamic codes block%s\n",
+        //        state.last ? " (last)" : ""));
+        state.mode = TABLE;
+        break;
+      case 3:
+        strm.msg = 'invalid block type';
+        state.mode = BAD;
+      }
+      //--- DROPBITS(2) ---//
+      hold >>>= 2;
+      bits -= 2;
+      //---//
+      break;
+    case STORED:
+      //--- BYTEBITS() ---// /* go to byte boundary */
+      hold >>>= bits & 7;
+      bits -= bits & 7;
+      //---//
+      //=== NEEDBITS(32); */
+      while (bits < 32) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {
+        strm.msg = 'invalid stored block lengths';
+        state.mode = BAD;
+        break;
+      }
+      state.length = hold & 0xffff;
+      //Tracev((stderr, "inflate:       stored length %u\n",
+      //        state.length));
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = COPY_;
+      if (flush === Z_TREES) { break inf_leave; }
+      /* falls through */
+    case COPY_:
+      state.mode = COPY;
+      /* falls through */
+    case COPY:
+      copy = state.length;
+      if (copy) {
+        if (copy > have) { copy = have; }
+        if (copy > left) { copy = left; }
+        if (copy === 0) { break inf_leave; }
+        //--- zmemcpy(put, next, copy); ---
+        utils.arraySet(output, input, next, copy, put);
+        //---//
+        have -= copy;
+        next += copy;
+        left -= copy;
+        put += copy;
+        state.length -= copy;
+        break;
+      }
+      //Tracev((stderr, "inflate:       stored end\n"));
+      state.mode = TYPE;
+      break;
+    case TABLE:
+      //=== NEEDBITS(14); */
+      while (bits < 14) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;
+      //--- DROPBITS(5) ---//
+      hold >>>= 5;
+      bits -= 5;
+      //---//
+      state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;
+      //--- DROPBITS(5) ---//
+      hold >>>= 5;
+      bits -= 5;
+      //---//
+      state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;
+      //--- DROPBITS(4) ---//
+      hold >>>= 4;
+      bits -= 4;
+      //---//
+//#ifndef PKZIP_BUG_WORKAROUND
+      if (state.nlen > 286 || state.ndist > 30) {
+        strm.msg = 'too many length or distance symbols';
+        state.mode = BAD;
+        break;
+      }
+//#endif
+      //Tracev((stderr, "inflate:       table sizes ok\n"));
+      state.have = 0;
+      state.mode = LENLENS;
+      /* falls through */
+    case LENLENS:
+      while (state.have < state.ncode) {
+        //=== NEEDBITS(3);
+        while (bits < 3) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);
+        //--- DROPBITS(3) ---//
+        hold >>>= 3;
+        bits -= 3;
+        //---//
+      }
+      while (state.have < 19) {
+        state.lens[order[state.have++]] = 0;
+      }
+      // We have separate tables & no pointers. 2 commented lines below not needed.
+      //state.next = state.codes;
+      //state.lencode = state.next;
+      // Switch to use dynamic table
+      state.lencode = state.lendyn;
+      state.lenbits = 7;
+
+      opts = { bits: state.lenbits };
+      ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);
+      state.lenbits = opts.bits;
+
+      if (ret) {
+        strm.msg = 'invalid code lengths set';
+        state.mode = BAD;
+        break;
+      }
+      //Tracev((stderr, "inflate:       code lengths ok\n"));
+      state.have = 0;
+      state.mode = CODELENS;
+      /* falls through */
+    case CODELENS:
+      while (state.have < state.nlen + state.ndist) {
+        for (;;) {
+          here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/
+          here_bits = here >>> 24;
+          here_op = (here >>> 16) & 0xff;
+          here_val = here & 0xffff;
+
+          if ((here_bits) <= bits) { break; }
+          //--- PULLBYTE() ---//
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+          //---//
+        }
+        if (here_val < 16) {
+          //--- DROPBITS(here.bits) ---//
+          hold >>>= here_bits;
+          bits -= here_bits;
+          //---//
+          state.lens[state.have++] = here_val;
+        }
+        else {
+          if (here_val === 16) {
+            //=== NEEDBITS(here.bits + 2);
+            n = here_bits + 2;
+            while (bits < n) {
+              if (have === 0) { break inf_leave; }
+              have--;
+              hold += input[next++] << bits;
+              bits += 8;
+            }
+            //===//
+            //--- DROPBITS(here.bits) ---//
+            hold >>>= here_bits;
+            bits -= here_bits;
+            //---//
+            if (state.have === 0) {
+              strm.msg = 'invalid bit length repeat';
+              state.mode = BAD;
+              break;
+            }
+            len = state.lens[state.have - 1];
+            copy = 3 + (hold & 0x03);//BITS(2);
+            //--- DROPBITS(2) ---//
+            hold >>>= 2;
+            bits -= 2;
+            //---//
+          }
+          else if (here_val === 17) {
+            //=== NEEDBITS(here.bits + 3);
+            n = here_bits + 3;
+            while (bits < n) {
+              if (have === 0) { break inf_leave; }
+              have--;
+              hold += input[next++] << bits;
+              bits += 8;
+            }
+            //===//
+            //--- DROPBITS(here.bits) ---//
+            hold >>>= here_bits;
+            bits -= here_bits;
+            //---//
+            len = 0;
+            copy = 3 + (hold & 0x07);//BITS(3);
+            //--- DROPBITS(3) ---//
+            hold >>>= 3;
+            bits -= 3;
+            //---//
+          }
+          else {
+            //=== NEEDBITS(here.bits + 7);
+            n = here_bits + 7;
+            while (bits < n) {
+              if (have === 0) { break inf_leave; }
+              have--;
+              hold += input[next++] << bits;
+              bits += 8;
+            }
+            //===//
+            //--- DROPBITS(here.bits) ---//
+            hold >>>= here_bits;
+            bits -= here_bits;
+            //---//
+            len = 0;
+            copy = 11 + (hold & 0x7f);//BITS(7);
+            //--- DROPBITS(7) ---//
+            hold >>>= 7;
+            bits -= 7;
+            //---//
+          }
+          if (state.have + copy > state.nlen + state.ndist) {
+            strm.msg = 'invalid bit length repeat';
+            state.mode = BAD;
+            break;
+          }
+          while (copy--) {
+            state.lens[state.have++] = len;
+          }
+        }
+      }
+
+      /* handle error breaks in while */
+      if (state.mode === BAD) { break; }
+
+      /* check for end-of-block code (better have one) */
+      if (state.lens[256] === 0) {
+        strm.msg = 'invalid code -- missing end-of-block';
+        state.mode = BAD;
+        break;
+      }
+
+      /* build code tables -- note: do not change the lenbits or distbits
+         values here (9 and 6) without reading the comments in inftrees.h
+         concerning the ENOUGH constants, which depend on those values */
+      state.lenbits = 9;
+
+      opts = { bits: state.lenbits };
+      ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);
+      // We have separate tables & no pointers. 2 commented lines below not needed.
+      // state.next_index = opts.table_index;
+      state.lenbits = opts.bits;
+      // state.lencode = state.next;
+
+      if (ret) {
+        strm.msg = 'invalid literal/lengths set';
+        state.mode = BAD;
+        break;
+      }
+
+      state.distbits = 6;
+      //state.distcode.copy(state.codes);
+      // Switch to use dynamic table
+      state.distcode = state.distdyn;
+      opts = { bits: state.distbits };
+      ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);
+      // We have separate tables & no pointers. 2 commented lines below not needed.
+      // state.next_index = opts.table_index;
+      state.distbits = opts.bits;
+      // state.distcode = state.next;
+
+      if (ret) {
+        strm.msg = 'invalid distances set';
+        state.mode = BAD;
+        break;
+      }
+      //Tracev((stderr, 'inflate:       codes ok\n'));
+      state.mode = LEN_;
+      if (flush === Z_TREES) { break inf_leave; }
+      /* falls through */
+    case LEN_:
+      state.mode = LEN;
+      /* falls through */
+    case LEN:
+      if (have >= 6 && left >= 258) {
+        //--- RESTORE() ---
+        strm.next_out = put;
+        strm.avail_out = left;
+        strm.next_in = next;
+        strm.avail_in = have;
+        state.hold = hold;
+        state.bits = bits;
+        //---
+        inflate_fast(strm, _out);
+        //--- LOAD() ---
+        put = strm.next_out;
+        output = strm.output;
+        left = strm.avail_out;
+        next = strm.next_in;
+        input = strm.input;
+        have = strm.avail_in;
+        hold = state.hold;
+        bits = state.bits;
+        //---
+
+        if (state.mode === TYPE) {
+          state.back = -1;
+        }
+        break;
+      }
+      state.back = 0;
+      for (;;) {
+        here = state.lencode[hold & ((1 << state.lenbits) - 1)];  /*BITS(state.lenbits)*/
+        here_bits = here >>> 24;
+        here_op = (here >>> 16) & 0xff;
+        here_val = here & 0xffff;
+
+        if (here_bits <= bits) { break; }
+        //--- PULLBYTE() ---//
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+        //---//
+      }
+      if (here_op && (here_op & 0xf0) === 0) {
+        last_bits = here_bits;
+        last_op = here_op;
+        last_val = here_val;
+        for (;;) {
+          here = state.lencode[last_val +
+                  ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];
+          here_bits = here >>> 24;
+          here_op = (here >>> 16) & 0xff;
+          here_val = here & 0xffff;
+
+          if ((last_bits + here_bits) <= bits) { break; }
+          //--- PULLBYTE() ---//
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+          //---//
+        }
+        //--- DROPBITS(last.bits) ---//
+        hold >>>= last_bits;
+        bits -= last_bits;
+        //---//
+        state.back += last_bits;
+      }
+      //--- DROPBITS(here.bits) ---//
+      hold >>>= here_bits;
+      bits -= here_bits;
+      //---//
+      state.back += here_bits;
+      state.length = here_val;
+      if (here_op === 0) {
+        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
+        //        "inflate:         literal '%c'\n" :
+        //        "inflate:         literal 0x%02x\n", here.val));
+        state.mode = LIT;
+        break;
+      }
+      if (here_op & 32) {
+        //Tracevv((stderr, "inflate:         end of block\n"));
+        state.back = -1;
+        state.mode = TYPE;
+        break;
+      }
+      if (here_op & 64) {
+        strm.msg = 'invalid literal/length code';
+        state.mode = BAD;
+        break;
+      }
+      state.extra = here_op & 15;
+      state.mode = LENEXT;
+      /* falls through */
+    case LENEXT:
+      if (state.extra) {
+        //=== NEEDBITS(state.extra);
+        n = state.extra;
+        while (bits < n) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;
+        //--- DROPBITS(state.extra) ---//
+        hold >>>= state.extra;
+        bits -= state.extra;
+        //---//
+        state.back += state.extra;
+      }
+      //Tracevv((stderr, "inflate:         length %u\n", state.length));
+      state.was = state.length;
+      state.mode = DIST;
+      /* falls through */
+    case DIST:
+      for (;;) {
+        here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/
+        here_bits = here >>> 24;
+        here_op = (here >>> 16) & 0xff;
+        here_val = here & 0xffff;
+
+        if ((here_bits) <= bits) { break; }
+        //--- PULLBYTE() ---//
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+        //---//
+      }
+      if ((here_op & 0xf0) === 0) {
+        last_bits = here_bits;
+        last_op = here_op;
+        last_val = here_val;
+        for (;;) {
+          here = state.distcode[last_val +
+                  ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];
+          here_bits = here >>> 24;
+          here_op = (here >>> 16) & 0xff;
+          here_val = here & 0xffff;
+
+          if ((last_bits + here_bits) <= bits) { break; }
+          //--- PULLBYTE() ---//
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+          //---//
+        }
+        //--- DROPBITS(last.bits) ---//
+        hold >>>= last_bits;
+        bits -= last_bits;
+        //---//
+        state.back += last_bits;
+      }
+      //--- DROPBITS(here.bits) ---//
+      hold >>>= here_bits;
+      bits -= here_bits;
+      //---//
+      state.back += here_bits;
+      if (here_op & 64) {
+        strm.msg = 'invalid distance code';
+        state.mode = BAD;
+        break;
+      }
+      state.offset = here_val;
+      state.extra = (here_op) & 15;
+      state.mode = DISTEXT;
+      /* falls through */
+    case DISTEXT:
+      if (state.extra) {
+        //=== NEEDBITS(state.extra);
+        n = state.extra;
+        while (bits < n) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;
+        //--- DROPBITS(state.extra) ---//
+        hold >>>= state.extra;
+        bits -= state.extra;
+        //---//
+        state.back += state.extra;
+      }
+//#ifdef INFLATE_STRICT
+      if (state.offset > state.dmax) {
+        strm.msg = 'invalid distance too far back';
+        state.mode = BAD;
+        break;
+      }
+//#endif
+      //Tracevv((stderr, "inflate:         distance %u\n", state.offset));
+      state.mode = MATCH;
+      /* falls through */
+    case MATCH:
+      if (left === 0) { break inf_leave; }
+      copy = _out - left;
+      if (state.offset > copy) {         /* copy from window */
+        copy = state.offset - copy;
+        if (copy > state.whave) {
+          if (state.sane) {
+            strm.msg = 'invalid distance too far back';
+            state.mode = BAD;
+            break;
+          }
+// (!) This block is disabled in zlib defailts,
+// don't enable it for binary compatibility
+//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+//          Trace((stderr, "inflate.c too far\n"));
+//          copy -= state.whave;
+//          if (copy > state.length) { copy = state.length; }
+//          if (copy > left) { copy = left; }
+//          left -= copy;
+//          state.length -= copy;
+//          do {
+//            output[put++] = 0;
+//          } while (--copy);
+//          if (state.length === 0) { state.mode = LEN; }
+//          break;
+//#endif
+        }
+        if (copy > state.wnext) {
+          copy -= state.wnext;
+          from = state.wsize - copy;
+        }
+        else {
+          from = state.wnext - copy;
+        }
+        if (copy > state.length) { copy = state.length; }
+        from_source = state.window;
+      }
+      else {                              /* copy from output */
+        from_source = output;
+        from = put - state.offset;
+        copy = state.length;
+      }
+      if (copy > left) { copy = left; }
+      left -= copy;
+      state.length -= copy;
+      do {
+        output[put++] = from_source[from++];
+      } while (--copy);
+      if (state.length === 0) { state.mode = LEN; }
+      break;
+    case LIT:
+      if (left === 0) { break inf_leave; }
+      output[put++] = state.length;
+      left--;
+      state.mode = LEN;
+      break;
+    case CHECK:
+      if (state.wrap) {
+        //=== NEEDBITS(32);
+        while (bits < 32) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          // Use '|' insdead of '+' to make sure that result is signed
+          hold |= input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        _out -= left;
+        strm.total_out += _out;
+        state.total += _out;
+        if (_out) {
+          strm.adler = state.check =
+              /*UPDATE(state.check, put - _out, _out);*/
+              (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));
+
+        }
+        _out = left;
+        // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too
+        if ((state.flags ? hold : zswap32(hold)) !== state.check) {
+          strm.msg = 'incorrect data check';
+          state.mode = BAD;
+          break;
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+        //Tracev((stderr, "inflate:   check matches trailer\n"));
+      }
+      state.mode = LENGTH;
+      /* falls through */
+    case LENGTH:
+      if (state.wrap && state.flags) {
+        //=== NEEDBITS(32);
+        while (bits < 32) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        if (hold !== (state.total & 0xffffffff)) {
+          strm.msg = 'incorrect length check';
+          state.mode = BAD;
+          break;
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+        //Tracev((stderr, "inflate:   length matches trailer\n"));
+      }
+      state.mode = DONE;
+      /* falls through */
+    case DONE:
+      ret = Z_STREAM_END;
+      break inf_leave;
+    case BAD:
+      ret = Z_DATA_ERROR;
+      break inf_leave;
+    case MEM:
+      return Z_MEM_ERROR;
+    case SYNC:
+      /* falls through */
+    default:
+      return Z_STREAM_ERROR;
+    }
+  }
+
+  // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave"
+
+  /*
+     Return from inflate(), updating the total counts and the check value.
+     If there was no progress during the inflate() call, return a buffer
+     error.  Call updatewindow() to create and/or update the window state.
+     Note: a memory error from inflate() is non-recoverable.
+   */
+
+  //--- RESTORE() ---
+  strm.next_out = put;
+  strm.avail_out = left;
+  strm.next_in = next;
+  strm.avail_in = have;
+  state.hold = hold;
+  state.bits = bits;
+  //---
+
+  if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&
+                      (state.mode < CHECK || flush !== Z_FINISH))) {
+    if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {
+      state.mode = MEM;
+      return Z_MEM_ERROR;
+    }
+  }
+  _in -= strm.avail_in;
+  _out -= strm.avail_out;
+  strm.total_in += _in;
+  strm.total_out += _out;
+  state.total += _out;
+  if (state.wrap && _out) {
+    strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/
+      (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));
+  }
+  strm.data_type = state.bits + (state.last ? 64 : 0) +
+                    (state.mode === TYPE ? 128 : 0) +
+                    (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);
+  if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {
+    ret = Z_BUF_ERROR;
+  }
+  return ret;
+}
+
+function inflateEnd(strm) {
+
+  if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {
+    return Z_STREAM_ERROR;
+  }
+
+  var state = strm.state;
+  if (state.window) {
+    state.window = null;
+  }
+  strm.state = null;
+  return Z_OK;
+}
+
+function inflateGetHeader(strm, head) {
+  var state;
+
+  /* check state */
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+  if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }
+
+  /* save header structure */
+  state.head = head;
+  head.done = false;
+  return Z_OK;
+}
+
+function inflateSetDictionary(strm, dictionary) {
+  var dictLength = dictionary.length;
+
+  var state;
+  var dictid;
+  var ret;
+
+  /* check state */
+  if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }
+  state = strm.state;
+
+  if (state.wrap !== 0 && state.mode !== DICT) {
+    return Z_STREAM_ERROR;
+  }
+
+  /* check for correct dictionary identifier */
+  if (state.mode === DICT) {
+    dictid = 1; /* adler32(0, null, 0)*/
+    /* dictid = adler32(dictid, dictionary, dictLength); */
+    dictid = adler32(dictid, dictionary, dictLength, 0);
+    if (dictid !== state.check) {
+      return Z_DATA_ERROR;
+    }
+  }
+  /* copy dictionary to window using updatewindow(), which will amend the
+   existing dictionary if appropriate */
+  ret = updatewindow(strm, dictionary, dictLength, dictLength);
+  if (ret) {
+    state.mode = MEM;
+    return Z_MEM_ERROR;
+  }
+  state.havedict = 1;
+  // Tracev((stderr, "inflate:   dictionary set\n"));
+  return Z_OK;
+}
+
+exports.inflateReset = inflateReset;
+exports.inflateReset2 = inflateReset2;
+exports.inflateResetKeep = inflateResetKeep;
+exports.inflateInit = inflateInit;
+exports.inflateInit2 = inflateInit2;
+exports.inflate = inflate;
+exports.inflateEnd = inflateEnd;
+exports.inflateGetHeader = inflateGetHeader;
+exports.inflateSetDictionary = inflateSetDictionary;
+exports.inflateInfo = 'pako inflate (from Nodeca project)';
+
+/* Not implemented
+exports.inflateCopy = inflateCopy;
+exports.inflateGetDictionary = inflateGetDictionary;
+exports.inflateMark = inflateMark;
+exports.inflatePrime = inflatePrime;
+exports.inflateSync = inflateSync;
+exports.inflateSyncPoint = inflateSyncPoint;
+exports.inflateUndermine = inflateUndermine;
+*/
+
+},{"../utils/common":62,"./adler32":64,"./crc32":66,"./inffast":69,"./inftrees":71}],71:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils = require('../utils/common');
+
+var MAXBITS = 15;
+var ENOUGH_LENS = 852;
+var ENOUGH_DISTS = 592;
+//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);
+
+var CODES = 0;
+var LENS = 1;
+var DISTS = 2;
+
+var lbase = [ /* Length codes 257..285 base */
+  3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
+  35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0
+];
+
+var lext = [ /* Length codes 257..285 extra */
+  16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
+  19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78
+];
+
+var dbase = [ /* Distance codes 0..29 base */
+  1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
+  257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
+  8193, 12289, 16385, 24577, 0, 0
+];
+
+var dext = [ /* Distance codes 0..29 extra */
+  16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
+  23, 23, 24, 24, 25, 25, 26, 26, 27, 27,
+  28, 28, 29, 29, 64, 64
+];
+
+module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)
+{
+  var bits = opts.bits;
+      //here = opts.here; /* table entry for duplication */
+
+  var len = 0;               /* a code's length in bits */
+  var sym = 0;               /* index of code symbols */
+  var min = 0, max = 0;          /* minimum and maximum code lengths */
+  var root = 0;              /* number of index bits for root table */
+  var curr = 0;              /* number of index bits for current table */
+  var drop = 0;              /* code bits to drop for sub-table */
+  var left = 0;                   /* number of prefix codes available */
+  var used = 0;              /* code entries in table used */
+  var huff = 0;              /* Huffman code */
+  var incr;              /* for incrementing code, index */
+  var fill;              /* index for replicating entries */
+  var low;               /* low bits for current root entry */
+  var mask;              /* mask for low root bits */
+  var next;             /* next available space in table */
+  var base = null;     /* base value table to use */
+  var base_index = 0;
+//  var shoextra;    /* extra bits table to use */
+  var end;                    /* use base and extra for symbol > end */
+  var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];    /* number of codes of each length */
+  var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];     /* offsets in table for each length */
+  var extra = null;
+  var extra_index = 0;
+
+  var here_bits, here_op, here_val;
+
+  /*
+   Process a set of code lengths to create a canonical Huffman code.  The
+   code lengths are lens[0..codes-1].  Each length corresponds to the
+   symbols 0..codes-1.  The Huffman code is generated by first sorting the
+   symbols by length from short to long, and retaining the symbol order
+   for codes with equal lengths.  Then the code starts with all zero bits
+   for the first code of the shortest length, and the codes are integer
+   increments for the same length, and zeros are appended as the length
+   increases.  For the deflate format, these bits are stored backwards
+   from their more natural integer increment ordering, and so when the
+   decoding tables are built in the large loop below, the integer codes
+   are incremented backwards.
+
+   This routine assumes, but does not check, that all of the entries in
+   lens[] are in the range 0..MAXBITS.  The caller must assure this.
+   1..MAXBITS is interpreted as that code length.  zero means that that
+   symbol does not occur in this code.
+
+   The codes are sorted by computing a count of codes for each length,
+   creating from that a table of starting indices for each length in the
+   sorted table, and then entering the symbols in order in the sorted
+   table.  The sorted table is work[], with that space being provided by
+   the caller.
+
+   The length counts are used for other purposes as well, i.e. finding
+   the minimum and maximum length codes, determining if there are any
+   codes at all, checking for a valid set of lengths, and looking ahead
+   at length counts to determine sub-table sizes when building the
+   decoding tables.
+   */
+
+  /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
+  for (len = 0; len <= MAXBITS; len++) {
+    count[len] = 0;
+  }
+  for (sym = 0; sym < codes; sym++) {
+    count[lens[lens_index + sym]]++;
+  }
+
+  /* bound code lengths, force root to be within code lengths */
+  root = bits;
+  for (max = MAXBITS; max >= 1; max--) {
+    if (count[max] !== 0) { break; }
+  }
+  if (root > max) {
+    root = max;
+  }
+  if (max === 0) {                     /* no symbols to code at all */
+    //table.op[opts.table_index] = 64;  //here.op = (var char)64;    /* invalid code marker */
+    //table.bits[opts.table_index] = 1;   //here.bits = (var char)1;
+    //table.val[opts.table_index++] = 0;   //here.val = (var short)0;
+    table[table_index++] = (1 << 24) | (64 << 16) | 0;
+
+
+    //table.op[opts.table_index] = 64;
+    //table.bits[opts.table_index] = 1;
+    //table.val[opts.table_index++] = 0;
+    table[table_index++] = (1 << 24) | (64 << 16) | 0;
+
+    opts.bits = 1;
+    return 0;     /* no symbols, but wait for decoding to report error */
+  }
+  for (min = 1; min < max; min++) {
+    if (count[min] !== 0) { break; }
+  }
+  if (root < min) {
+    root = min;
+  }
+
+  /* check for an over-subscribed or incomplete set of lengths */
+  left = 1;
+  for (len = 1; len <= MAXBITS; len++) {
+    left <<= 1;
+    left -= count[len];
+    if (left < 0) {
+      return -1;
+    }        /* over-subscribed */
+  }
+  if (left > 0 && (type === CODES || max !== 1)) {
+    return -1;                      /* incomplete set */
+  }
+
+  /* generate offsets into symbol table for each length for sorting */
+  offs[1] = 0;
+  for (len = 1; len < MAXBITS; len++) {
+    offs[len + 1] = offs[len] + count[len];
+  }
+
+  /* sort symbols by length, by symbol order within each length */
+  for (sym = 0; sym < codes; sym++) {
+    if (lens[lens_index + sym] !== 0) {
+      work[offs[lens[lens_index + sym]]++] = sym;
+    }
+  }
+
+  /*
+   Create and fill in decoding tables.  In this loop, the table being
+   filled is at next and has curr index bits.  The code being used is huff
+   with length len.  That code is converted to an index by dropping drop
+   bits off of the bottom.  For codes where len is less than drop + curr,
+   those top drop + curr - len bits are incremented through all values to
+   fill the table with replicated entries.
+
+   root is the number of index bits for the root table.  When len exceeds
+   root, sub-tables are created pointed to by the root entry with an index
+   of the low root bits of huff.  This is saved in low to check for when a
+   new sub-table should be started.  drop is zero when the root table is
+   being filled, and drop is root when sub-tables are being filled.
+
+   When a new sub-table is needed, it is necessary to look ahead in the
+   code lengths to determine what size sub-table is needed.  The length
+   counts are used for this, and so count[] is decremented as codes are
+   entered in the tables.
+
+   used keeps track of how many table entries have been allocated from the
+   provided *table space.  It is checked for LENS and DIST tables against
+   the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
+   the initial root table size constants.  See the comments in inftrees.h
+   for more information.
+
+   sym increments through all symbols, and the loop terminates when
+   all codes of length max, i.e. all codes, have been processed.  This
+   routine permits incomplete codes, so another loop after this one fills
+   in the rest of the decoding tables with invalid code markers.
+   */
+
+  /* set up for code type */
+  // poor man optimization - use if-else instead of switch,
+  // to avoid deopts in old v8
+  if (type === CODES) {
+    base = extra = work;    /* dummy value--not used */
+    end = 19;
+
+  } else if (type === LENS) {
+    base = lbase;
+    base_index -= 257;
+    extra = lext;
+    extra_index -= 257;
+    end = 256;
+
+  } else {                    /* DISTS */
+    base = dbase;
+    extra = dext;
+    end = -1;
+  }
+
+  /* initialize opts for loop */
+  huff = 0;                   /* starting code */
+  sym = 0;                    /* starting code symbol */
+  len = min;                  /* starting code length */
+  next = table_index;              /* current table to fill in */
+  curr = root;                /* current table index bits */
+  drop = 0;                   /* current bits to drop from code for index */
+  low = -1;                   /* trigger new sub-table when len > root */
+  used = 1 << root;          /* use root table entries */
+  mask = used - 1;            /* mask for comparing low */
+
+  /* check available table space */
+  if ((type === LENS && used > ENOUGH_LENS) ||
+    (type === DISTS && used > ENOUGH_DISTS)) {
+    return 1;
+  }
+
+  /* process all codes and make table entries */
+  for (;;) {
+    /* create table entry */
+    here_bits = len - drop;
+    if (work[sym] < end) {
+      here_op = 0;
+      here_val = work[sym];
+    }
+    else if (work[sym] > end) {
+      here_op = extra[extra_index + work[sym]];
+      here_val = base[base_index + work[sym]];
+    }
+    else {
+      here_op = 32 + 64;         /* end of block */
+      here_val = 0;
+    }
+
+    /* replicate for those indices with low len bits equal to huff */
+    incr = 1 << (len - drop);
+    fill = 1 << curr;
+    min = fill;                 /* save offset to next table */
+    do {
+      fill -= incr;
+      table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;
+    } while (fill !== 0);
+
+    /* backwards increment the len-bit code huff */
+    incr = 1 << (len - 1);
+    while (huff & incr) {
+      incr >>= 1;
+    }
+    if (incr !== 0) {
+      huff &= incr - 1;
+      huff += incr;
+    } else {
+      huff = 0;
+    }
+
+    /* go to next symbol, update count, len */
+    sym++;
+    if (--count[len] === 0) {
+      if (len === max) { break; }
+      len = lens[lens_index + work[sym]];
+    }
+
+    /* create new sub-table if needed */
+    if (len > root && (huff & mask) !== low) {
+      /* if first time, transition to sub-tables */
+      if (drop === 0) {
+        drop = root;
+      }
+
+      /* increment past last table */
+      next += min;            /* here min is 1 << curr */
+
+      /* determine length of next table */
+      curr = len - drop;
+      left = 1 << curr;
+      while (curr + drop < max) {
+        left -= count[curr + drop];
+        if (left <= 0) { break; }
+        curr++;
+        left <<= 1;
+      }
+
+      /* check for enough space */
+      used += 1 << curr;
+      if ((type === LENS && used > ENOUGH_LENS) ||
+        (type === DISTS && used > ENOUGH_DISTS)) {
+        return 1;
+      }
+
+      /* point entry in root table to sub-table */
+      low = huff & mask;
+      /*table.op[low] = curr;
+      table.bits[low] = root;
+      table.val[low] = next - opts.table_index;*/
+      table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;
+    }
+  }
+
+  /* fill in remaining table entry if code is incomplete (guaranteed to have
+   at most one remaining entry, since if the code is incomplete, the
+   maximum code length that was allowed to get this far is one bit) */
+  if (huff !== 0) {
+    //table.op[next + huff] = 64;            /* invalid code marker */
+    //table.bits[next + huff] = len - drop;
+    //table.val[next + huff] = 0;
+    table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;
+  }
+
+  /* set return parameters */
+  //opts.table_index += used;
+  opts.bits = root;
+  return 0;
+};
+
+},{"../utils/common":62}],72:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+module.exports = {
+  2:      'need dictionary',     /* Z_NEED_DICT       2  */
+  1:      'stream end',          /* Z_STREAM_END      1  */
+  0:      '',                    /* Z_OK              0  */
+  '-1':   'file error',          /* Z_ERRNO         (-1) */
+  '-2':   'stream error',        /* Z_STREAM_ERROR  (-2) */
+  '-3':   'data error',          /* Z_DATA_ERROR    (-3) */
+  '-4':   'insufficient memory', /* Z_MEM_ERROR     (-4) */
+  '-5':   'buffer error',        /* Z_BUF_ERROR     (-5) */
+  '-6':   'incompatible version' /* Z_VERSION_ERROR (-6) */
+};
+
+},{}],73:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils = require('../utils/common');
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+
+//var Z_FILTERED          = 1;
+//var Z_HUFFMAN_ONLY      = 2;
+//var Z_RLE               = 3;
+var Z_FIXED               = 4;
+//var Z_DEFAULT_STRATEGY  = 0;
+
+/* Possible values of the data_type field (though see inflate()) */
+var Z_BINARY              = 0;
+var Z_TEXT                = 1;
+//var Z_ASCII             = 1; // = Z_TEXT
+var Z_UNKNOWN             = 2;
+
+/*============================================================================*/
+
+
+function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }
+
+// From zutil.h
+
+var STORED_BLOCK = 0;
+var STATIC_TREES = 1;
+var DYN_TREES    = 2;
+/* The three kinds of block type */
+
+var MIN_MATCH    = 3;
+var MAX_MATCH    = 258;
+/* The minimum and maximum match lengths */
+
+// From deflate.h
+/* ===========================================================================
+ * Internal compression state.
+ */
+
+var LENGTH_CODES  = 29;
+/* number of length codes, not counting the special END_BLOCK code */
+
+var LITERALS      = 256;
+/* number of literal bytes 0..255 */
+
+var L_CODES       = LITERALS + 1 + LENGTH_CODES;
+/* number of Literal or Length codes, including the END_BLOCK code */
+
+var D_CODES       = 30;
+/* number of distance codes */
+
+var BL_CODES      = 19;
+/* number of codes used to transfer the bit lengths */
+
+var HEAP_SIZE     = 2 * L_CODES + 1;
+/* maximum heap size */
+
+var MAX_BITS      = 15;
+/* All codes must not exceed MAX_BITS bits */
+
+var Buf_size      = 16;
+/* size of bit buffer in bi_buf */
+
+
+/* ===========================================================================
+ * Constants
+ */
+
+var MAX_BL_BITS = 7;
+/* Bit length codes must not exceed MAX_BL_BITS bits */
+
+var END_BLOCK   = 256;
+/* end of block literal code */
+
+var REP_3_6     = 16;
+/* repeat previous bit length 3-6 times (2 bits of repeat count) */
+
+var REPZ_3_10   = 17;
+/* repeat a zero length 3-10 times  (3 bits of repeat count) */
+
+var REPZ_11_138 = 18;
+/* repeat a zero length 11-138 times  (7 bits of repeat count) */
+
+/* eslint-disable comma-spacing,array-bracket-spacing */
+var extra_lbits =   /* extra bits for each length code */
+  [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];
+
+var extra_dbits =   /* extra bits for each distance code */
+  [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];
+
+var extra_blbits =  /* extra bits for each bit length code */
+  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];
+
+var bl_order =
+  [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];
+/* eslint-enable comma-spacing,array-bracket-spacing */
+
+/* The lengths of the bit length codes are sent in order of decreasing
+ * probability, to avoid transmitting the lengths for unused bit length codes.
+ */
+
+/* ===========================================================================
+ * Local data. These are initialized only once.
+ */
+
+// We pre-fill arrays with 0 to avoid uninitialized gaps
+
+var DIST_CODE_LEN = 512; /* see definition of array dist_code below */
+
+// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1
+var static_ltree  = new Array((L_CODES + 2) * 2);
+zero(static_ltree);
+/* The static literal tree. Since the bit lengths are imposed, there is no
+ * need for the L_CODES extra codes used during heap construction. However
+ * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
+ * below).
+ */
+
+var static_dtree  = new Array(D_CODES * 2);
+zero(static_dtree);
+/* The static distance tree. (Actually a trivial tree since all codes use
+ * 5 bits.)
+ */
+
+var _dist_code    = new Array(DIST_CODE_LEN);
+zero(_dist_code);
+/* Distance codes. The first 256 values correspond to the distances
+ * 3 .. 258, the last 256 values correspond to the top 8 bits of
+ * the 15 bit distances.
+ */
+
+var _length_code  = new Array(MAX_MATCH - MIN_MATCH + 1);
+zero(_length_code);
+/* length code for each normalized match length (0 == MIN_MATCH) */
+
+var base_length   = new Array(LENGTH_CODES);
+zero(base_length);
+/* First normalized length for each code (0 = MIN_MATCH) */
+
+var base_dist     = new Array(D_CODES);
+zero(base_dist);
+/* First normalized distance for each code (0 = distance of 1) */
+
+
+function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
+
+  this.static_tree  = static_tree;  /* static tree or NULL */
+  this.extra_bits   = extra_bits;   /* extra bits for each code or NULL */
+  this.extra_base   = extra_base;   /* base index for extra_bits */
+  this.elems        = elems;        /* max number of elements in the tree */
+  this.max_length   = max_length;   /* max bit length for the codes */
+
+  // show if `static_tree` has data or dummy - needed for monomorphic objects
+  this.has_stree    = static_tree && static_tree.length;
+}
+
+
+var static_l_desc;
+var static_d_desc;
+var static_bl_desc;
+
+
+function TreeDesc(dyn_tree, stat_desc) {
+  this.dyn_tree = dyn_tree;     /* the dynamic tree */
+  this.max_code = 0;            /* largest code with non zero frequency */
+  this.stat_desc = stat_desc;   /* the corresponding static tree */
+}
+
+
+
+function d_code(dist) {
+  return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
+}
+
+
+/* ===========================================================================
+ * Output a short LSB first on the stream.
+ * IN assertion: there is enough room in pendingBuf.
+ */
+function put_short(s, w) {
+//    put_byte(s, (uch)((w) & 0xff));
+//    put_byte(s, (uch)((ush)(w) >> 8));
+  s.pending_buf[s.pending++] = (w) & 0xff;
+  s.pending_buf[s.pending++] = (w >>> 8) & 0xff;
+}
+
+
+/* ===========================================================================
+ * Send a value on a given number of bits.
+ * IN assertion: length <= 16 and value fits in length bits.
+ */
+function send_bits(s, value, length) {
+  if (s.bi_valid > (Buf_size - length)) {
+    s.bi_buf |= (value << s.bi_valid) & 0xffff;
+    put_short(s, s.bi_buf);
+    s.bi_buf = value >> (Buf_size - s.bi_valid);
+    s.bi_valid += length - Buf_size;
+  } else {
+    s.bi_buf |= (value << s.bi_valid) & 0xffff;
+    s.bi_valid += length;
+  }
+}
+
+
+function send_code(s, c, tree) {
+  send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);
+}
+
+
+/* ===========================================================================
+ * Reverse the first len bits of a code, using straightforward code (a faster
+ * method would use a table)
+ * IN assertion: 1 <= len <= 15
+ */
+function bi_reverse(code, len) {
+  var res = 0;
+  do {
+    res |= code & 1;
+    code >>>= 1;
+    res <<= 1;
+  } while (--len > 0);
+  return res >>> 1;
+}
+
+
+/* ===========================================================================
+ * Flush the bit buffer, keeping at most 7 bits in it.
+ */
+function bi_flush(s) {
+  if (s.bi_valid === 16) {
+    put_short(s, s.bi_buf);
+    s.bi_buf = 0;
+    s.bi_valid = 0;
+
+  } else if (s.bi_valid >= 8) {
+    s.pending_buf[s.pending++] = s.bi_buf & 0xff;
+    s.bi_buf >>= 8;
+    s.bi_valid -= 8;
+  }
+}
+
+
+/* ===========================================================================
+ * Compute the optimal bit lengths for a tree and update the total bit length
+ * for the current block.
+ * IN assertion: the fields freq and dad are set, heap[heap_max] and
+ *    above are the tree nodes sorted by increasing frequency.
+ * OUT assertions: the field len is set to the optimal bit length, the
+ *     array bl_count contains the frequencies for each bit length.
+ *     The length opt_len is updated; static_len is also updated if stree is
+ *     not null.
+ */
+function gen_bitlen(s, desc)
+//    deflate_state *s;
+//    tree_desc *desc;    /* the tree descriptor */
+{
+  var tree            = desc.dyn_tree;
+  var max_code        = desc.max_code;
+  var stree           = desc.stat_desc.static_tree;
+  var has_stree       = desc.stat_desc.has_stree;
+  var extra           = desc.stat_desc.extra_bits;
+  var base            = desc.stat_desc.extra_base;
+  var max_length      = desc.stat_desc.max_length;
+  var h;              /* heap index */
+  var n, m;           /* iterate over the tree elements */
+  var bits;           /* bit length */
+  var xbits;          /* extra bits */
+  var f;              /* frequency */
+  var overflow = 0;   /* number of elements with bit length too large */
+
+  for (bits = 0; bits <= MAX_BITS; bits++) {
+    s.bl_count[bits] = 0;
+  }
+
+  /* In a first pass, compute the optimal bit lengths (which may
+   * overflow in the case of the bit length tree).
+   */
+  tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */
+
+  for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {
+    n = s.heap[h];
+    bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;
+    if (bits > max_length) {
+      bits = max_length;
+      overflow++;
+    }
+    tree[n * 2 + 1]/*.Len*/ = bits;
+    /* We overwrite tree[n].Dad which is no longer needed */
+
+    if (n > max_code) { continue; } /* not a leaf node */
+
+    s.bl_count[bits]++;
+    xbits = 0;
+    if (n >= base) {
+      xbits = extra[n - base];
+    }
+    f = tree[n * 2]/*.Freq*/;
+    s.opt_len += f * (bits + xbits);
+    if (has_stree) {
+      s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);
+    }
+  }
+  if (overflow === 0) { return; }
+
+  // Trace((stderr,"\nbit length overflow\n"));
+  /* This happens for example on obj2 and pic of the Calgary corpus */
+
+  /* Find the first bit length which could increase: */
+  do {
+    bits = max_length - 1;
+    while (s.bl_count[bits] === 0) { bits--; }
+    s.bl_count[bits]--;      /* move one leaf down the tree */
+    s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */
+    s.bl_count[max_length]--;
+    /* The brother of the overflow item also moves one step up,
+     * but this does not affect bl_count[max_length]
+     */
+    overflow -= 2;
+  } while (overflow > 0);
+
+  /* Now recompute all bit lengths, scanning in increasing frequency.
+   * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
+   * lengths instead of fixing only the wrong ones. This idea is taken
+   * from 'ar' written by Haruhiko Okumura.)
+   */
+  for (bits = max_length; bits !== 0; bits--) {
+    n = s.bl_count[bits];
+    while (n !== 0) {
+      m = s.heap[--h];
+      if (m > max_code) { continue; }
+      if (tree[m * 2 + 1]/*.Len*/ !== bits) {
+        // Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
+        s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;
+        tree[m * 2 + 1]/*.Len*/ = bits;
+      }
+      n--;
+    }
+  }
+}
+
+
+/* ===========================================================================
+ * Generate the codes for a given tree and bit counts (which need not be
+ * optimal).
+ * IN assertion: the array bl_count contains the bit length statistics for
+ * the given tree and the field len is set for all tree elements.
+ * OUT assertion: the field code is set for all tree elements of non
+ *     zero code length.
+ */
+function gen_codes(tree, max_code, bl_count)
+//    ct_data *tree;             /* the tree to decorate */
+//    int max_code;              /* largest code with non zero frequency */
+//    ushf *bl_count;            /* number of codes at each bit length */
+{
+  var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */
+  var code = 0;              /* running code value */
+  var bits;                  /* bit index */
+  var n;                     /* code index */
+
+  /* The distribution counts are first used to generate the code values
+   * without bit reversal.
+   */
+  for (bits = 1; bits <= MAX_BITS; bits++) {
+    next_code[bits] = code = (code + bl_count[bits - 1]) << 1;
+  }
+  /* Check that the bit counts in bl_count are consistent. The last code
+   * must be all ones.
+   */
+  //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
+  //        "inconsistent bit counts");
+  //Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
+
+  for (n = 0;  n <= max_code; n++) {
+    var len = tree[n * 2 + 1]/*.Len*/;
+    if (len === 0) { continue; }
+    /* Now reverse the bits */
+    tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);
+
+    //Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
+    //     n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
+  }
+}
+
+
+/* ===========================================================================
+ * Initialize the various 'constant' tables.
+ */
+function tr_static_init() {
+  var n;        /* iterates over tree elements */
+  var bits;     /* bit counter */
+  var length;   /* length value */
+  var code;     /* code value */
+  var dist;     /* distance index */
+  var bl_count = new Array(MAX_BITS + 1);
+  /* number of codes at each bit length for an optimal tree */
+
+  // do check in _tr_init()
+  //if (static_init_done) return;
+
+  /* For some embedded targets, global variables are not initialized: */
+/*#ifdef NO_INIT_GLOBAL_POINTERS
+  static_l_desc.static_tree = static_ltree;
+  static_l_desc.extra_bits = extra_lbits;
+  static_d_desc.static_tree = static_dtree;
+  static_d_desc.extra_bits = extra_dbits;
+  static_bl_desc.extra_bits = extra_blbits;
+#endif*/
+
+  /* Initialize the mapping length (0..255) -> length code (0..28) */
+  length = 0;
+  for (code = 0; code < LENGTH_CODES - 1; code++) {
+    base_length[code] = length;
+    for (n = 0; n < (1 << extra_lbits[code]); n++) {
+      _length_code[length++] = code;
+    }
+  }
+  //Assert (length == 256, "tr_static_init: length != 256");
+  /* Note that the length 255 (match length 258) can be represented
+   * in two different ways: code 284 + 5 bits or code 285, so we
+   * overwrite length_code[255] to use the best encoding:
+   */
+  _length_code[length - 1] = code;
+
+  /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
+  dist = 0;
+  for (code = 0; code < 16; code++) {
+    base_dist[code] = dist;
+    for (n = 0; n < (1 << extra_dbits[code]); n++) {
+      _dist_code[dist++] = code;
+    }
+  }
+  //Assert (dist == 256, "tr_static_init: dist != 256");
+  dist >>= 7; /* from now on, all distances are divided by 128 */
+  for (; code < D_CODES; code++) {
+    base_dist[code] = dist << 7;
+    for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {
+      _dist_code[256 + dist++] = code;
+    }
+  }
+  //Assert (dist == 256, "tr_static_init: 256+dist != 512");
+
+  /* Construct the codes of the static literal tree */
+  for (bits = 0; bits <= MAX_BITS; bits++) {
+    bl_count[bits] = 0;
+  }
+
+  n = 0;
+  while (n <= 143) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 8;
+    n++;
+    bl_count[8]++;
+  }
+  while (n <= 255) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 9;
+    n++;
+    bl_count[9]++;
+  }
+  while (n <= 279) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 7;
+    n++;
+    bl_count[7]++;
+  }
+  while (n <= 287) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 8;
+    n++;
+    bl_count[8]++;
+  }
+  /* Codes 286 and 287 do not exist, but we must include them in the
+   * tree construction to get a canonical Huffman tree (longest code
+   * all ones)
+   */
+  gen_codes(static_ltree, L_CODES + 1, bl_count);
+
+  /* The static distance tree is trivial: */
+  for (n = 0; n < D_CODES; n++) {
+    static_dtree[n * 2 + 1]/*.Len*/ = 5;
+    static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);
+  }
+
+  // Now data ready and we can init static trees
+  static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);
+  static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0,          D_CODES, MAX_BITS);
+  static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0,         BL_CODES, MAX_BL_BITS);
+
+  //static_init_done = true;
+}
+
+
+/* ===========================================================================
+ * Initialize a new block.
+ */
+function init_block(s) {
+  var n; /* iterates over tree elements */
+
+  /* Initialize the trees. */
+  for (n = 0; n < L_CODES;  n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }
+  for (n = 0; n < D_CODES;  n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }
+  for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }
+
+  s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;
+  s.opt_len = s.static_len = 0;
+  s.last_lit = s.matches = 0;
+}
+
+
+/* ===========================================================================
+ * Flush the bit buffer and align the output on a byte boundary
+ */
+function bi_windup(s)
+{
+  if (s.bi_valid > 8) {
+    put_short(s, s.bi_buf);
+  } else if (s.bi_valid > 0) {
+    //put_byte(s, (Byte)s->bi_buf);
+    s.pending_buf[s.pending++] = s.bi_buf;
+  }
+  s.bi_buf = 0;
+  s.bi_valid = 0;
+}
+
+/* ===========================================================================
+ * Copy a stored block, storing first the length and its
+ * one's complement if requested.
+ */
+function copy_block(s, buf, len, header)
+//DeflateState *s;
+//charf    *buf;    /* the input data */
+//unsigned len;     /* its length */
+//int      header;  /* true if block header must be written */
+{
+  bi_windup(s);        /* align on byte boundary */
+
+  if (header) {
+    put_short(s, len);
+    put_short(s, ~len);
+  }
+//  while (len--) {
+//    put_byte(s, *buf++);
+//  }
+  utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);
+  s.pending += len;
+}
+
+/* ===========================================================================
+ * Compares to subtrees, using the tree depth as tie breaker when
+ * the subtrees have equal frequency. This minimizes the worst case length.
+ */
+function smaller(tree, n, m, depth) {
+  var _n2 = n * 2;
+  var _m2 = m * 2;
+  return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||
+         (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));
+}
+
+/* ===========================================================================
+ * Restore the heap property by moving down the tree starting at node k,
+ * exchanging a node with the smallest of its two sons if necessary, stopping
+ * when the heap property is re-established (each father smaller than its
+ * two sons).
+ */
+function pqdownheap(s, tree, k)
+//    deflate_state *s;
+//    ct_data *tree;  /* the tree to restore */
+//    int k;               /* node to move down */
+{
+  var v = s.heap[k];
+  var j = k << 1;  /* left son of k */
+  while (j <= s.heap_len) {
+    /* Set j to the smallest of the two sons: */
+    if (j < s.heap_len &&
+      smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {
+      j++;
+    }
+    /* Exit if v is smaller than both sons */
+    if (smaller(tree, v, s.heap[j], s.depth)) { break; }
+
+    /* Exchange v with the smallest son */
+    s.heap[k] = s.heap[j];
+    k = j;
+
+    /* And continue down the tree, setting j to the left son of k */
+    j <<= 1;
+  }
+  s.heap[k] = v;
+}
+
+
+// inlined manually
+// var SMALLEST = 1;
+
+/* ===========================================================================
+ * Send the block data compressed using the given Huffman trees
+ */
+function compress_block(s, ltree, dtree)
+//    deflate_state *s;
+//    const ct_data *ltree; /* literal tree */
+//    const ct_data *dtree; /* distance tree */
+{
+  var dist;           /* distance of matched string */
+  var lc;             /* match length or unmatched char (if dist == 0) */
+  var lx = 0;         /* running index in l_buf */
+  var code;           /* the code to send */
+  var extra;          /* number of extra bits to send */
+
+  if (s.last_lit !== 0) {
+    do {
+      dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);
+      lc = s.pending_buf[s.l_buf + lx];
+      lx++;
+
+      if (dist === 0) {
+        send_code(s, lc, ltree); /* send a literal byte */
+        //Tracecv(isgraph(lc), (stderr," '%c' ", lc));
+      } else {
+        /* Here, lc is the match length - MIN_MATCH */
+        code = _length_code[lc];
+        send_code(s, code + LITERALS + 1, ltree); /* send the length code */
+        extra = extra_lbits[code];
+        if (extra !== 0) {
+          lc -= base_length[code];
+          send_bits(s, lc, extra);       /* send the extra length bits */
+        }
+        dist--; /* dist is now the match distance - 1 */
+        code = d_code(dist);
+        //Assert (code < D_CODES, "bad d_code");
+
+        send_code(s, code, dtree);       /* send the distance code */
+        extra = extra_dbits[code];
+        if (extra !== 0) {
+          dist -= base_dist[code];
+          send_bits(s, dist, extra);   /* send the extra distance bits */
+        }
+      } /* literal or match pair ? */
+
+      /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
+      //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,
+      //       "pendingBuf overflow");
+
+    } while (lx < s.last_lit);
+  }
+
+  send_code(s, END_BLOCK, ltree);
+}
+
+
+/* ===========================================================================
+ * Construct one Huffman tree and assigns the code bit strings and lengths.
+ * Update the total bit length for the current block.
+ * IN assertion: the field freq is set for all tree elements.
+ * OUT assertions: the fields len and code are set to the optimal bit length
+ *     and corresponding code. The length opt_len is updated; static_len is
+ *     also updated if stree is not null. The field max_code is set.
+ */
+function build_tree(s, desc)
+//    deflate_state *s;
+//    tree_desc *desc; /* the tree descriptor */
+{
+  var tree     = desc.dyn_tree;
+  var stree    = desc.stat_desc.static_tree;
+  var has_stree = desc.stat_desc.has_stree;
+  var elems    = desc.stat_desc.elems;
+  var n, m;          /* iterate over heap elements */
+  var max_code = -1; /* largest code with non zero frequency */
+  var node;          /* new node being created */
+
+  /* Construct the initial heap, with least frequent element in
+   * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
+   * heap[0] is not used.
+   */
+  s.heap_len = 0;
+  s.heap_max = HEAP_SIZE;
+
+  for (n = 0; n < elems; n++) {
+    if (tree[n * 2]/*.Freq*/ !== 0) {
+      s.heap[++s.heap_len] = max_code = n;
+      s.depth[n] = 0;
+
+    } else {
+      tree[n * 2 + 1]/*.Len*/ = 0;
+    }
+  }
+
+  /* The pkzip format requires that at least one distance code exists,
+   * and that at least one bit should be sent even if there is only one
+   * possible code. So to avoid special checks later on we force at least
+   * two codes of non zero frequency.
+   */
+  while (s.heap_len < 2) {
+    node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);
+    tree[node * 2]/*.Freq*/ = 1;
+    s.depth[node] = 0;
+    s.opt_len--;
+
+    if (has_stree) {
+      s.static_len -= stree[node * 2 + 1]/*.Len*/;
+    }
+    /* node is 0 or 1 so it does not have extra bits */
+  }
+  desc.max_code = max_code;
+
+  /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
+   * establish sub-heaps of increasing lengths:
+   */
+  for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }
+
+  /* Construct the Huffman tree by repeatedly combining the least two
+   * frequent nodes.
+   */
+  node = elems;              /* next internal node of the tree */
+  do {
+    //pqremove(s, tree, n);  /* n = node of least frequency */
+    /*** pqremove ***/
+    n = s.heap[1/*SMALLEST*/];
+    s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];
+    pqdownheap(s, tree, 1/*SMALLEST*/);
+    /***/
+
+    m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */
+
+    s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */
+    s.heap[--s.heap_max] = m;
+
+    /* Create a new node father of n and m */
+    tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;
+    s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;
+    tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;
+
+    /* and insert the new node in the heap */
+    s.heap[1/*SMALLEST*/] = node++;
+    pqdownheap(s, tree, 1/*SMALLEST*/);
+
+  } while (s.heap_len >= 2);
+
+  s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];
+
+  /* At this point, the fields freq and dad are set. We can now
+   * generate the bit lengths.
+   */
+  gen_bitlen(s, desc);
+
+  /* The field len is now set, we can generate the bit codes */
+  gen_codes(tree, max_code, s.bl_count);
+}
+
+
+/* ===========================================================================
+ * Scan a literal or distance tree to determine the frequencies of the codes
+ * in the bit length tree.
+ */
+function scan_tree(s, tree, max_code)
+//    deflate_state *s;
+//    ct_data *tree;   /* the tree to be scanned */
+//    int max_code;    /* and its largest code of non zero frequency */
+{
+  var n;                     /* iterates over all tree elements */
+  var prevlen = -1;          /* last emitted length */
+  var curlen;                /* length of current code */
+
+  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */
+
+  var count = 0;             /* repeat count of the current code */
+  var max_count = 7;         /* max repeat count */
+  var min_count = 4;         /* min repeat count */
+
+  if (nextlen === 0) {
+    max_count = 138;
+    min_count = 3;
+  }
+  tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */
+
+  for (n = 0; n <= max_code; n++) {
+    curlen = nextlen;
+    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;
+
+    if (++count < max_count && curlen === nextlen) {
+      continue;
+
+    } else if (count < min_count) {
+      s.bl_tree[curlen * 2]/*.Freq*/ += count;
+
+    } else if (curlen !== 0) {
+
+      if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }
+      s.bl_tree[REP_3_6 * 2]/*.Freq*/++;
+
+    } else if (count <= 10) {
+      s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;
+
+    } else {
+      s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;
+    }
+
+    count = 0;
+    prevlen = curlen;
+
+    if (nextlen === 0) {
+      max_count = 138;
+      min_count = 3;
+
+    } else if (curlen === nextlen) {
+      max_count = 6;
+      min_count = 3;
+
+    } else {
+      max_count = 7;
+      min_count = 4;
+    }
+  }
+}
+
+
+/* ===========================================================================
+ * Send a literal or distance tree in compressed form, using the codes in
+ * bl_tree.
+ */
+function send_tree(s, tree, max_code)
+//    deflate_state *s;
+//    ct_data *tree; /* the tree to be scanned */
+//    int max_code;       /* and its largest code of non zero frequency */
+{
+  var n;                     /* iterates over all tree elements */
+  var prevlen = -1;          /* last emitted length */
+  var curlen;                /* length of current code */
+
+  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */
+
+  var count = 0;             /* repeat count of the current code */
+  var max_count = 7;         /* max repeat count */
+  var min_count = 4;         /* min repeat count */
+
+  /* tree[max_code+1].Len = -1; */  /* guard already set */
+  if (nextlen === 0) {
+    max_count = 138;
+    min_count = 3;
+  }
+
+  for (n = 0; n <= max_code; n++) {
+    curlen = nextlen;
+    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;
+
+    if (++count < max_count && curlen === nextlen) {
+      continue;
+
+    } else if (count < min_count) {
+      do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);
+
+    } else if (curlen !== 0) {
+      if (curlen !== prevlen) {
+        send_code(s, curlen, s.bl_tree);
+        count--;
+      }
+      //Assert(count >= 3 && count <= 6, " 3_6?");
+      send_code(s, REP_3_6, s.bl_tree);
+      send_bits(s, count - 3, 2);
+
+    } else if (count <= 10) {
+      send_code(s, REPZ_3_10, s.bl_tree);
+      send_bits(s, count - 3, 3);
+
+    } else {
+      send_code(s, REPZ_11_138, s.bl_tree);
+      send_bits(s, count - 11, 7);
+    }
+
+    count = 0;
+    prevlen = curlen;
+    if (nextlen === 0) {
+      max_count = 138;
+      min_count = 3;
+
+    } else if (curlen === nextlen) {
+      max_count = 6;
+      min_count = 3;
+
+    } else {
+      max_count = 7;
+      min_count = 4;
+    }
+  }
+}
+
+
+/* ===========================================================================
+ * Construct the Huffman tree for the bit lengths and return the index in
+ * bl_order of the last bit length code to send.
+ */
+function build_bl_tree(s) {
+  var max_blindex;  /* index of last bit length code of non zero freq */
+
+  /* Determine the bit length frequencies for literal and distance trees */
+  scan_tree(s, s.dyn_ltree, s.l_desc.max_code);
+  scan_tree(s, s.dyn_dtree, s.d_desc.max_code);
+
+  /* Build the bit length tree: */
+  build_tree(s, s.bl_desc);
+  /* opt_len now includes the length of the tree representations, except
+   * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
+   */
+
+  /* Determine the number of bit length codes to send. The pkzip format
+   * requires that at least 4 bit length codes be sent. (appnote.txt says
+   * 3 but the actual value used is 4.)
+   */
+  for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {
+    if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {
+      break;
+    }
+  }
+  /* Update opt_len to include the bit length tree and counts */
+  s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
+  //Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
+  //        s->opt_len, s->static_len));
+
+  return max_blindex;
+}
+
+
+/* ===========================================================================
+ * Send the header for a block using dynamic Huffman trees: the counts, the
+ * lengths of the bit length codes, the literal tree and the distance tree.
+ * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
+ */
+function send_all_trees(s, lcodes, dcodes, blcodes)
+//    deflate_state *s;
+//    int lcodes, dcodes, blcodes; /* number of codes for each tree */
+{
+  var rank;                    /* index in bl_order */
+
+  //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
+  //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
+  //        "too many codes");
+  //Tracev((stderr, "\nbl counts: "));
+  send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */
+  send_bits(s, dcodes - 1,   5);
+  send_bits(s, blcodes - 4,  4); /* not -3 as stated in appnote.txt */
+  for (rank = 0; rank < blcodes; rank++) {
+    //Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
+    send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);
+  }
+  //Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
+
+  send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */
+  //Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
+
+  send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */
+  //Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
+}
+
+
+/* ===========================================================================
+ * Check if the data type is TEXT or BINARY, using the following algorithm:
+ * - TEXT if the two conditions below are satisfied:
+ *    a) There are no non-portable control characters belonging to the
+ *       "black list" (0..6, 14..25, 28..31).
+ *    b) There is at least one printable character belonging to the
+ *       "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
+ * - BINARY otherwise.
+ * - The following partially-portable control characters form a
+ *   "gray list" that is ignored in this detection algorithm:
+ *   (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
+ * IN assertion: the fields Freq of dyn_ltree are set.
+ */
+function detect_data_type(s) {
+  /* black_mask is the bit mask of black-listed bytes
+   * set bits 0..6, 14..25, and 28..31
+   * 0xf3ffc07f = binary 11110011111111111100000001111111
+   */
+  var black_mask = 0xf3ffc07f;
+  var n;
+
+  /* Check for non-textual ("black-listed") bytes. */
+  for (n = 0; n <= 31; n++, black_mask >>>= 1) {
+    if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {
+      return Z_BINARY;
+    }
+  }
+
+  /* Check for textual ("white-listed") bytes. */
+  if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||
+      s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {
+    return Z_TEXT;
+  }
+  for (n = 32; n < LITERALS; n++) {
+    if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {
+      return Z_TEXT;
+    }
+  }
+
+  /* There are no "black-listed" or "white-listed" bytes:
+   * this stream either is empty or has tolerated ("gray-listed") bytes only.
+   */
+  return Z_BINARY;
+}
+
+
+var static_init_done = false;
+
+/* ===========================================================================
+ * Initialize the tree data structures for a new zlib stream.
+ */
+function _tr_init(s)
+{
+
+  if (!static_init_done) {
+    tr_static_init();
+    static_init_done = true;
+  }
+
+  s.l_desc  = new TreeDesc(s.dyn_ltree, static_l_desc);
+  s.d_desc  = new TreeDesc(s.dyn_dtree, static_d_desc);
+  s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);
+
+  s.bi_buf = 0;
+  s.bi_valid = 0;
+
+  /* Initialize the first block of the first file: */
+  init_block(s);
+}
+
+
+/* ===========================================================================
+ * Send a stored block
+ */
+function _tr_stored_block(s, buf, stored_len, last)
+//DeflateState *s;
+//charf *buf;       /* input block */
+//ulg stored_len;   /* length of input block */
+//int last;         /* one if this is the last block for a file */
+{
+  send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);    /* send block type */
+  copy_block(s, buf, stored_len, true); /* with header */
+}
+
+
+/* ===========================================================================
+ * Send one empty static block to give enough lookahead for inflate.
+ * This takes 10 bits, of which 7 may remain in the bit buffer.
+ */
+function _tr_align(s) {
+  send_bits(s, STATIC_TREES << 1, 3);
+  send_code(s, END_BLOCK, static_ltree);
+  bi_flush(s);
+}
+
+
+/* ===========================================================================
+ * Determine the best encoding for the current block: dynamic trees, static
+ * trees or store, and output the encoded block to the zip file.
+ */
+function _tr_flush_block(s, buf, stored_len, last)
+//DeflateState *s;
+//charf *buf;       /* input block, or NULL if too old */
+//ulg stored_len;   /* length of input block */
+//int last;         /* one if this is the last block for a file */
+{
+  var opt_lenb, static_lenb;  /* opt_len and static_len in bytes */
+  var max_blindex = 0;        /* index of last bit length code of non zero freq */
+
+  /* Build the Huffman trees unless a stored block is forced */
+  if (s.level > 0) {
+
+    /* Check if the file is binary or text */
+    if (s.strm.data_type === Z_UNKNOWN) {
+      s.strm.data_type = detect_data_type(s);
+    }
+
+    /* Construct the literal and distance trees */
+    build_tree(s, s.l_desc);
+    // Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len,
+    //        s->static_len));
+
+    build_tree(s, s.d_desc);
+    // Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len,
+    //        s->static_len));
+    /* At this point, opt_len and static_len are the total bit lengths of
+     * the compressed block data, excluding the tree representations.
+     */
+
+    /* Build the bit length tree for the above two trees, and get the index
+     * in bl_order of the last bit length code to send.
+     */
+    max_blindex = build_bl_tree(s);
+
+    /* Determine the best encoding. Compute the block lengths in bytes. */
+    opt_lenb = (s.opt_len + 3 + 7) >>> 3;
+    static_lenb = (s.static_len + 3 + 7) >>> 3;
+
+    // Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
+    //        opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
+    //        s->last_lit));
+
+    if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }
+
+  } else {
+    // Assert(buf != (char*)0, "lost buf");
+    opt_lenb = static_lenb = stored_len + 5; /* force a stored block */
+  }
+
+  if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {
+    /* 4: two words for the lengths */
+
+    /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
+     * Otherwise we can't have processed more than WSIZE input bytes since
+     * the last block flush, because compression would have been
+     * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
+     * transform a block into a stored block.
+     */
+    _tr_stored_block(s, buf, stored_len, last);
+
+  } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {
+
+    send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
+    compress_block(s, static_ltree, static_dtree);
+
+  } else {
+    send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
+    send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
+    compress_block(s, s.dyn_ltree, s.dyn_dtree);
+  }
+  // Assert (s->compressed_len == s->bits_sent, "bad compressed size");
+  /* The above check is made mod 2^32, for files larger than 512 MB
+   * and uLong implemented on 32 bits.
+   */
+  init_block(s);
+
+  if (last) {
+    bi_windup(s);
+  }
+  // Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
+  //       s->compressed_len-7*last));
+}
+
+/* ===========================================================================
+ * Save the match info and tally the frequency counts. Return true if
+ * the current block must be flushed.
+ */
+function _tr_tally(s, dist, lc)
+//    deflate_state *s;
+//    unsigned dist;  /* distance of matched string */
+//    unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */
+{
+  //var out_length, in_length, dcode;
+
+  s.pending_buf[s.d_buf + s.last_lit * 2]     = (dist >>> 8) & 0xff;
+  s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;
+
+  s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;
+  s.last_lit++;
+
+  if (dist === 0) {
+    /* lc is the unmatched char */
+    s.dyn_ltree[lc * 2]/*.Freq*/++;
+  } else {
+    s.matches++;
+    /* Here, lc is the match length - MIN_MATCH */
+    dist--;             /* dist = match distance - 1 */
+    //Assert((ush)dist < (ush)MAX_DIST(s) &&
+    //       (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
+    //       (ush)d_code(dist) < (ush)D_CODES,  "_tr_tally: bad match");
+
+    s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;
+    s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;
+  }
+
+// (!) This block is disabled in zlib defailts,
+// don't enable it for binary compatibility
+
+//#ifdef TRUNCATE_BLOCK
+//  /* Try to guess if it is profitable to stop the current block here */
+//  if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {
+//    /* Compute an upper bound for the compressed length */
+//    out_length = s.last_lit*8;
+//    in_length = s.strstart - s.block_start;
+//
+//    for (dcode = 0; dcode < D_CODES; dcode++) {
+//      out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);
+//    }
+//    out_length >>>= 3;
+//    //Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
+//    //       s->last_lit, in_length, out_length,
+//    //       100L - out_length*100L/in_length));
+//    if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {
+//      return true;
+//    }
+//  }
+//#endif
+
+  return (s.last_lit === s.lit_bufsize - 1);
+  /* We avoid equality with lit_bufsize because of wraparound at 64K
+   * on 16 bit machines and because stored blocks are restricted to
+   * 64K-1 bytes.
+   */
+}
+
+exports._tr_init  = _tr_init;
+exports._tr_stored_block = _tr_stored_block;
+exports._tr_flush_block  = _tr_flush_block;
+exports._tr_tally = _tr_tally;
+exports._tr_align = _tr_align;
+
+},{"../utils/common":62}],74:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+function ZStream() {
+  /* next input byte */
+  this.input = null; // JS specific, because we have no pointers
+  this.next_in = 0;
+  /* number of bytes available at input */
+  this.avail_in = 0;
+  /* total number of input bytes read so far */
+  this.total_in = 0;
+  /* next output byte should be put there */
+  this.output = null; // JS specific, because we have no pointers
+  this.next_out = 0;
+  /* remaining free space at output */
+  this.avail_out = 0;
+  /* total number of bytes output so far */
+  this.total_out = 0;
+  /* last error message, NULL if no error */
+  this.msg = ''/*Z_NULL*/;
+  /* not visible by applications */
+  this.state = null;
+  /* best guess about the data type: binary or text */
+  this.data_type = 2/*Z_UNKNOWN*/;
+  /* adler32 value of the uncompressed data */
+  this.adler = 0;
+}
+
+module.exports = ZStream;
+
+},{}]},{},[10])(10)
+});
\ No newline at end of file
diff --git a/apidocs/1.20/jquery/jszip/dist/jszip.min.js b/apidocs/1.20/jquery/jszip/dist/jszip.min.js
new file mode 100644
index 00000000..b9188736
--- /dev/null
+++ b/apidocs/1.20/jquery/jszip/dist/jszip.min.js
@@ -0,0 +1,15 @@
+/*!
+
+JSZip v3.1.5 - A JavaScript class for generating and reading zip files
+<http://stuartk.com/jszip>
+
+(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.
+
+JSZip uses the library pako released under the MIT license :
+https://github.com/nodeca/pako/blob/master/LICENSE
+*/
+!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.JSZip=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";var d=a("./utils"),e=a("./support"),f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";c.encode=function(a){for(var b,c,e,g,h,i,j,k=[],l=0,m=a.length,n=m,o="string"!==d.getTypeOf(a);l<a.length;)n=m-l,o?(b=a[l++],c=l<m?a[l++]:0,e=l<m?a[l++]:0):(b=a.charCodeAt(l++),c=l<m?a.charCodeAt(l++):0,e=l<m?a.charCodeAt(l++):0),g=b>>2,h=(3&b)<<4|c>>4,i=n>1?(15&c)<<2|e>>6:64,j=n>2?63&e:64,k.push(f.charAt(g)+f.charAt(h)+f.charAt(i)+f.charAt(j));return k.join("")},c.decode=function(a){var b,c,d,g,h,i,j,k=0,l=0,m="data:";if(a.substr(0,m.length)===m)throw new Error("Invalid base64 input, it looks like a data url.");a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");var n=3*a.length/4;if(a.charAt(a.length-1)===f.charAt(64)&&n--,a.charAt(a.length-2)===f.charAt(64)&&n--,n%1!==0)throw new Error("Invalid base64 input, bad content length.");var o;for(o=e.uint8array?new Uint8Array(0|n):new Array(0|n);k<a.length;)g=f.indexOf(a.charAt(k++)),h=f.indexOf(a.charAt(k++)),i=f.indexOf(a.charAt(k++)),j=f.indexOf(a.charAt(k++)),b=g<<2|h>>4,c=(15&h)<<4|i>>2,d=(3&i)<<6|j,o[l++]=b,64!==i&&(o[l++]=c),64!==j&&(o[l++]=d);return o}},{"./support":30,"./utils":32}],2:[function(a,b,c){"use strict";function d(a,b,c,d,e){this.compressedSize=a,this.uncompressedSize=b,this.crc32=c,this.compression=d,this.compressedContent=e}var e=a("./external"),f=a("./stream/DataWorker"),g=a("./stream/DataLengthProbe"),h=a("./stream/Crc32Probe"),g=a("./stream/DataLengthProbe");d.prototype={getContentWorker:function(){var a=new f(e.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new g("data_length")),b=this;return a.on("end",function(){if(this.streamInfo.data_length!==b.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),a},getCompressedWorker:function(){return new f(e.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},d.createWorkerFrom=function(a,b,c){return a.pipe(new h).pipe(new g("uncompressedSize")).pipe(b.compressWorker(c)).pipe(new g("compressedSize")).withStreamInfo("compression",b)},b.exports=d},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(a,b,c){"use strict";var d=a("./stream/GenericWorker");c.STORE={magic:"\0\0",compressWorker:function(a){return new d("STORE compression")},uncompressWorker:function(){return new d("STORE decompression")}},c.DEFLATE=a("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(a,b,c){"use strict";function d(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=h,f=d+c;a^=-1;for(var g=d;g<f;g++)a=a>>>8^e[255&(a^b[g])];return a^-1}function f(a,b,c,d){var e=h,f=d+c;a^=-1;for(var g=d;g<f;g++)a=a>>>8^e[255&(a^b.charCodeAt(g))];return a^-1}var g=a("./utils"),h=d();b.exports=function(a,b){if("undefined"==typeof a||!a.length)return 0;var c="string"!==g.getTypeOf(a);return c?e(0|b,a,a.length,0):f(0|b,a,a.length,0)}},{"./utils":32}],5:[function(a,b,c){"use strict";c.base64=!1,c.binary=!1,c.dir=!1,c.createFolders=!0,c.date=null,c.compression=null,c.compressionOptions=null,c.comment=null,c.unixPermissions=null,c.dosPermissions=null},{}],6:[function(a,b,c){"use strict";var d=null;d="undefined"!=typeof Promise?Promise:a("lie"),b.exports={Promise:d}},{lie:58}],7:[function(a,b,c){"use strict";function d(a,b){h.call(this,"FlateWorker/"+a),this._pako=null,this._pakoAction=a,this._pakoOptions=b,this.meta={}}var e="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,f=a("pako"),g=a("./utils"),h=a("./stream/GenericWorker"),i=e?"uint8array":"array";c.magic="\b\0",g.inherits(d,h),d.prototype.processChunk=function(a){this.meta=a.meta,null===this._pako&&this._createPako(),this._pako.push(g.transformTo(i,a.data),!1)},d.prototype.flush=function(){h.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},d.prototype.cleanUp=function(){h.prototype.cleanUp.call(this),this._pako=null},d.prototype._createPako=function(){this._pako=new f[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var a=this;this._pako.onData=function(b){a.push({data:b,meta:a.meta})}},c.compressWorker=function(a){return new d("Deflate",a)},c.uncompressWorker=function(){return new d("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:59}],8:[function(a,b,c){"use strict";function d(a,b,c,d){f.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=b,this.zipPlatform=c,this.encodeFileName=d,this.streamFiles=a,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}var e=a("../utils"),f=a("../stream/GenericWorker"),g=a("../utf8"),h=a("../crc32"),i=a("../signature"),j=function(a,b){var c,d="";for(c=0;c<b;c++)d+=String.fromCharCode(255&a),a>>>=8;return d},k=function(a,b){var c=a;return a||(c=b?16893:33204),(65535&c)<<16},l=function(a,b){return 63&(a||0)},m=function(a,b,c,d,f,m){var n,o,p=a.file,q=a.compression,r=m!==g.utf8encode,s=e.transformTo("string",m(p.name)),t=e.transformTo("string",g.utf8encode(p.name)),u=p.comment,v=e.transformTo("string",m(u)),w=e.transformTo("string",g.utf8encode(u)),x=t.length!==p.name.length,y=w.length!==u.length,z="",A="",B="",C=p.dir,D=p.date,E={crc32:0,compressedSize:0,uncompressedSize:0};b&&!c||(E.crc32=a.crc32,E.compressedSize=a.compressedSize,E.uncompressedSize=a.uncompressedSize);var F=0;b&&(F|=8),r||!x&&!y||(F|=2048);var G=0,H=0;C&&(G|=16),"UNIX"===f?(H=798,G|=k(p.unixPermissions,C)):(H=20,G|=l(p.dosPermissions,C)),n=D.getUTCHours(),n<<=6,n|=D.getUTCMinutes(),n<<=5,n|=D.getUTCSeconds()/2,o=D.getUTCFullYear()-1980,o<<=4,o|=D.getUTCMonth()+1,o<<=5,o|=D.getUTCDate(),x&&(A=j(1,1)+j(h(s),4)+t,z+="up"+j(A.length,2)+A),y&&(B=j(1,1)+j(h(v),4)+w,z+="uc"+j(B.length,2)+B);var I="";I+="\n\0",I+=j(F,2),I+=q.magic,I+=j(n,2),I+=j(o,2),I+=j(E.crc32,4),I+=j(E.compressedSize,4),I+=j(E.uncompressedSize,4),I+=j(s.length,2),I+=j(z.length,2);var J=i.LOCAL_FILE_HEADER+I+s+z,K=i.CENTRAL_FILE_HEADER+j(H,2)+I+j(v.length,2)+"\0\0\0\0"+j(G,4)+j(d,4)+s+z+v;return{fileRecord:J,dirRecord:K}},n=function(a,b,c,d,f){var g="",h=e.transformTo("string",f(d));return g=i.CENTRAL_DIRECTORY_END+"\0\0\0\0"+j(a,2)+j(a,2)+j(b,4)+j(c,4)+j(h.length,2)+h},o=function(a){var b="";return b=i.DATA_DESCRIPTOR+j(a.crc32,4)+j(a.compressedSize,4)+j(a.uncompressedSize,4)};e.inherits(d,f),d.prototype.push=function(a){var b=a.meta.percent||0,c=this.entriesCount,d=this._sources.length;this.accumulate?this.contentBuffer.push(a):(this.bytesWritten+=a.data.length,f.prototype.push.call(this,{data:a.data,meta:{currentFile:this.currentFile,percent:c?(b+100*(c-d-1))/c:100}}))},d.prototype.openedSource=function(a){this.currentSourceOffset=this.bytesWritten,this.currentFile=a.file.name;var b=this.streamFiles&&!a.file.dir;if(b){var c=m(a,b,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:c.fileRecord,meta:{percent:0}})}else this.accumulate=!0},d.prototype.closedSource=function(a){this.accumulate=!1;var b=this.streamFiles&&!a.file.dir,c=m(a,b,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(c.dirRecord),b)this.push({data:o(a),meta:{percent:100}});else for(this.push({data:c.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},d.prototype.flush=function(){for(var a=this.bytesWritten,b=0;b<this.dirRecords.length;b++)this.push({data:this.dirRecords[b],meta:{percent:100}});var c=this.bytesWritten-a,d=n(this.dirRecords.length,c,a,this.zipComment,this.encodeFileName);this.push({data:d,meta:{percent:100}})},d.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},d.prototype.registerPrevious=function(a){this._sources.push(a);var b=this;return a.on("data",function(a){b.processChunk(a)}),a.on("end",function(){b.closedSource(b.previous.streamInfo),b._sources.length?b.prepareNextSource():b.end()}),a.on("error",function(a){b.error(a)}),this},d.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},d.prototype.error=function(a){var b=this._sources;if(!f.prototype.error.call(this,a))return!1;for(var c=0;c<b.length;c++)try{b[c].error(a)}catch(a){}return!0},d.prototype.lock=function(){f.prototype.lock.call(this);for(var a=this._sources,b=0;b<a.length;b++)a[b].lock()},b.exports=d},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(a,b,c){"use strict";var d=a("../compressions"),e=a("./ZipFileWorker"),f=function(a,b){var c=a||b,e=d[c];if(!e)throw new Error(c+" is not a valid compression method !");return e};c.generateWorker=function(a,b,c){var d=new e(b.streamFiles,c,b.platform,b.encodeFileName),g=0;try{a.forEach(function(a,c){g++;var e=f(c.options.compression,b.compression),h=c.options.compressionOptions||b.compressionOptions||{},i=c.dir,j=c.date;c._compressWorker(e,h).withStreamInfo("file",{name:a,dir:i,date:j,comment:c.comment||"",unixPermissions:c.unixPermissions,dosPermissions:c.dosPermissions}).pipe(d)}),d.entriesCount=g}catch(h){d.error(h)}return d}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(a,b,c){"use strict";function d(){if(!(this instanceof d))return new d;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files={},this.comment=null,this.root="",this.clone=function(){var a=new d;for(var b in this)"function"!=typeof this[b]&&(a[b]=this[b]);return a}}d.prototype=a("./object"),d.prototype.loadAsync=a("./load"),d.support=a("./support"),d.defaults=a("./defaults"),d.version="3.1.5",d.loadAsync=function(a,b){return(new d).loadAsync(a,b)},d.external=a("./external"),b.exports=d},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(a,b,c){"use strict";function d(a){return new f.Promise(function(b,c){var d=a.decompressed.getContentWorker().pipe(new i);d.on("error",function(a){c(a)}).on("end",function(){d.streamInfo.crc32!==a.decompressed.crc32?c(new Error("Corrupted zip : CRC32 mismatch")):b()}).resume()})}var e=a("./utils"),f=a("./external"),g=a("./utf8"),e=a("./utils"),h=a("./zipEntries"),i=a("./stream/Crc32Probe"),j=a("./nodejsUtils");b.exports=function(a,b){var c=this;return b=e.extend(b||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:g.utf8decode}),j.isNode&&j.isStream(a)?f.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):e.prepareContent("the loaded zip file",a,!0,b.optimizedBinaryString,b.base64).then(function(a){var c=new h(b);return c.load(a),c}).then(function(a){var c=[f.Promise.resolve(a)],e=a.files;if(b.checkCRC32)for(var g=0;g<e.length;g++)c.push(d(e[g]));return f.Promise.all(c)}).then(function(a){for(var d=a.shift(),e=d.files,f=0;f<e.length;f++){var g=e[f];c.file(g.fileNameStr,g.decompressed,{binary:!0,optimizedBinaryString:!0,date:g.date,dir:g.dir,comment:g.fileCommentStr.length?g.fileCommentStr:null,unixPermissions:g.unixPermissions,dosPermissions:g.dosPermissions,createFolders:b.createFolders})}return d.zipComment.length&&(c.comment=d.zipComment),c})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(a,b,c){"use strict";function d(a,b){f.call(this,"Nodejs stream input adapter for "+a),this._upstreamEnded=!1,this._bindStream(b)}var e=a("../utils"),f=a("../stream/GenericWorker");e.inherits(d,f),d.prototype._bindStream=function(a){var b=this;this._stream=a,a.pause(),a.on("data",function(a){b.push({data:a,meta:{percent:0}})}).on("error",function(a){b.isPaused?this.generatedError=a:b.error(a)}).on("end",function(){b.isPaused?b._upstreamEnded=!0:b.end()})},d.prototype.pause=function(){return!!f.prototype.pause.call(this)&&(this._stream.pause(),!0)},d.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},b.exports=d},{"../stream/GenericWorker":28,"../utils":32}],13:[function(a,b,c){"use strict";function d(a,b,c){e.call(this,b),this._helper=a;var d=this;a.on("data",function(a,b){d.push(a)||d._helper.pause(),c&&c(b)}).on("error",function(a){d.emit("error",a)}).on("end",function(){d.push(null)})}var e=a("readable-stream").Readable,f=a("../utils");f.inherits(d,e),d.prototype._read=function(){this._helper.resume()},b.exports=d},{"../utils":32,"readable-stream":16}],14:[function(a,b,c){"use strict";b.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(a,b){return new Buffer(a,b)},allocBuffer:function(a){return Buffer.alloc?Buffer.alloc(a):new Buffer(a)},isBuffer:function(a){return Buffer.isBuffer(a)},isStream:function(a){return a&&"function"==typeof a.on&&"function"==typeof a.pause&&"function"==typeof a.resume}}},{}],15:[function(a,b,c){"use strict";function d(a){return"[object RegExp]"===Object.prototype.toString.call(a)}var e=a("./utf8"),f=a("./utils"),g=a("./stream/GenericWorker"),h=a("./stream/StreamHelper"),i=a("./defaults"),j=a("./compressedObject"),k=a("./zipObject"),l=a("./generate"),m=a("./nodejsUtils"),n=a("./nodejs/NodejsStreamInputAdapter"),o=function(a,b,c){var d,e=f.getTypeOf(b),h=f.extend(c||{},i);h.date=h.date||new Date,null!==h.compression&&(h.compression=h.compression.toUpperCase()),"string"==typeof h.unixPermissions&&(h.unixPermissions=parseInt(h.unixPermissions,8)),h.unixPermissions&&16384&h.unixPermissions&&(h.dir=!0),h.dosPermissions&&16&h.dosPermissions&&(h.dir=!0),h.dir&&(a=q(a)),h.createFolders&&(d=p(a))&&r.call(this,d,!0);var l="string"===e&&h.binary===!1&&h.base64===!1;c&&"undefined"!=typeof c.binary||(h.binary=!l);var o=b instanceof j&&0===b.uncompressedSize;(o||h.dir||!b||0===b.length)&&(h.base64=!1,h.binary=!0,b="",h.compression="STORE",e="string");var s=null;s=b instanceof j||b instanceof g?b:m.isNode&&m.isStream(b)?new n(a,b):f.prepareContent(a,b,h.binary,h.optimizedBinaryString,h.base64);var t=new k(a,s,h);this.files[a]=t},p=function(a){"/"===a.slice(-1)&&(a=a.substring(0,a.length-1));var b=a.lastIndexOf("/");return b>0?a.substring(0,b):""},q=function(a){return"/"!==a.slice(-1)&&(a+="/"),a},r=function(a,b){return b="undefined"!=typeof b?b:i.createFolders,a=q(a),this.files[a]||o.call(this,a,null,{dir:!0,createFolders:b}),this.files[a]},s={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(a){var b,c,d;for(b in this.files)this.files.hasOwnProperty(b)&&(d=this.files[b],c=b.slice(this.root.length,b.length),c&&b.slice(0,this.root.length)===this.root&&a(c,d))},filter:function(a){var b=[];return this.forEach(function(c,d){a(c,d)&&b.push(d)}),b},file:function(a,b,c){if(1===arguments.length){if(d(a)){var e=a;return this.filter(function(a,b){return!b.dir&&e.test(a)})}var f=this.files[this.root+a];return f&&!f.dir?f:null}return a=this.root+a,o.call(this,a,b,c),this},folder:function(a){if(!a)return this;if(d(a))return this.filter(function(b,c){return c.dir&&a.test(b)});var b=this.root+a,c=r.call(this,b),e=this.clone();return e.root=c.name,e},remove:function(a){a=this.root+a;var b=this.files[a];if(b||("/"!==a.slice(-1)&&(a+="/"),b=this.files[a]),b&&!b.dir)delete this.files[a];else for(var c=this.filter(function(b,c){return c.name.slice(0,a.length)===a}),d=0;d<c.length;d++)delete this.files[c[d].name];return this},generate:function(a){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(a){var b,c={};try{if(c=f.extend(a||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:e.utf8encode}),c.type=c.type.toLowerCase(),c.compression=c.compression.toUpperCase(),"binarystring"===c.type&&(c.type="string"),!c.type)throw new Error("No output type specified.");f.checkSupport(c.type),"darwin"!==c.platform&&"freebsd"!==c.platform&&"linux"!==c.platform&&"sunos"!==c.platform||(c.platform="UNIX"),"win32"===c.platform&&(c.platform="DOS");var d=c.comment||this.comment||"";b=l.generateWorker(this,c,d)}catch(i){b=new g("error"),b.error(i)}return new h(b,c.type||"string",c.mimeType)},generateAsync:function(a,b){return this.generateInternalStream(a).accumulate(b)},generateNodeStream:function(a,b){return a=a||{},a.type||(a.type="nodebuffer"),this.generateInternalStream(a).toNodejsStream(b)}};b.exports=s},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(a,b,c){b.exports=a("stream")},{stream:void 0}],17:[function(a,b,c){"use strict";function d(a){e.call(this,a);for(var b=0;b<this.data.length;b++)a[b]=255&a[b]}var e=a("./DataReader"),f=a("../utils");f.inherits(d,e),d.prototype.byteAt=function(a){return this.data[this.zero+a]},d.prototype.lastIndexOfSignature=function(a){for(var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.length-4;f>=0;--f)if(this.data[f]===b&&this.data[f+1]===c&&this.data[f+2]===d&&this.data[f+3]===e)return f-this.zero;return-1},d.prototype.readAndCheckSignature=function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.readData(4);return b===f[0]&&c===f[1]&&d===f[2]&&e===f[3]},d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return[];var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./DataReader":18}],18:[function(a,b,c){"use strict";function d(a){this.data=a,this.length=a.length,this.index=0,this.zero=0}var e=a("../utils");d.prototype={checkOffset:function(a){this.checkIndex(this.index+a)},checkIndex:function(a){if(this.length<this.zero+a||a<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+a+"). Corrupted zip ?")},setIndex:function(a){this.checkIndex(a),this.index=a},skip:function(a){this.setIndex(this.index+a)},byteAt:function(a){},readInt:function(a){var b,c=0;for(this.checkOffset(a),b=this.index+a-1;b>=this.index;b--)c=(c<<8)+this.byteAt(b);return this.index+=a,c},readString:function(a){return e.transformTo("string",this.readData(a))},readData:function(a){},lastIndexOfSignature:function(a){},readAndCheckSignature:function(a){},readDate:function(){var a=this.readInt(4);return new Date(Date.UTC((a>>25&127)+1980,(a>>21&15)-1,a>>16&31,a>>11&31,a>>5&63,(31&a)<<1))}},b.exports=d},{"../utils":32}],19:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./Uint8ArrayReader"),f=a("../utils");f.inherits(d,e),d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./DataReader"),f=a("../utils");f.inherits(d,e),d.prototype.byteAt=function(a){return this.data.charCodeAt(this.zero+a)},d.prototype.lastIndexOfSignature=function(a){return this.data.lastIndexOf(a)-this.zero},d.prototype.readAndCheckSignature=function(a){var b=this.readData(4);return a===b},d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./DataReader":18}],21:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./ArrayReader"),f=a("../utils");f.inherits(d,e),d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return new Uint8Array(0);var b=this.data.subarray(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./ArrayReader":17}],22:[function(a,b,c){"use strict";var d=a("../utils"),e=a("../support"),f=a("./ArrayReader"),g=a("./StringReader"),h=a("./NodeBufferReader"),i=a("./Uint8ArrayReader");b.exports=function(a){var b=d.getTypeOf(a);return d.checkSupport(b),"string"!==b||e.uint8array?"nodebuffer"===b?new h(a):e.uint8array?new i(d.transformTo("uint8array",a)):new f(d.transformTo("array",a)):new g(a)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(a,b,c){"use strict";c.LOCAL_FILE_HEADER="PK",c.CENTRAL_FILE_HEADER="PK",c.CENTRAL_DIRECTORY_END="PK",c.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",c.ZIP64_CENTRAL_DIRECTORY_END="PK",c.DATA_DESCRIPTOR="PK\b"},{}],24:[function(a,b,c){"use strict";function d(a){e.call(this,"ConvertWorker to "+a),this.destType=a}var e=a("./GenericWorker"),f=a("../utils");f.inherits(d,e),d.prototype.processChunk=function(a){this.push({data:f.transformTo(this.destType,a.data),meta:a.meta})},b.exports=d},{"../utils":32,"./GenericWorker":28}],25:[function(a,b,c){"use strict";function d(){e.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}var e=a("./GenericWorker"),f=a("../crc32"),g=a("../utils");g.inherits(d,e),d.prototype.processChunk=function(a){this.streamInfo.crc32=f(a.data,this.streamInfo.crc32||0),this.push(a)},b.exports=d},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(a,b,c){"use strict";function d(a){f.call(this,"DataLengthProbe for "+a),this.propName=a,this.withStreamInfo(a,0)}var e=a("../utils"),f=a("./GenericWorker");e.inherits(d,f),d.prototype.processChunk=function(a){if(a){var b=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=b+a.data.length}f.prototype.processChunk.call(this,a)},b.exports=d},{"../utils":32,"./GenericWorker":28}],27:[function(a,b,c){"use strict";function d(a){f.call(this,"DataWorker");var b=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,a.then(function(a){b.dataIsReady=!0,b.data=a,b.max=a&&a.length||0,b.type=e.getTypeOf(a),b.isPaused||b._tickAndRepeat()},function(a){b.error(a)})}var e=a("../utils"),f=a("./GenericWorker"),g=16384;e.inherits(d,f),d.prototype.cleanUp=function(){f.prototype.cleanUp.call(this),this.data=null},d.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,e.delay(this._tickAndRepeat,[],this)),!0)},d.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(e.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},d.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var a=g,b=null,c=Math.min(this.max,this.index+a);if(this.index>=this.max)return this.end();switch(this.type){case"string":b=this.data.substring(this.index,c);break;case"uint8array":b=this.data.subarray(this.index,c);break;case"array":case"nodebuffer":b=this.data.slice(this.index,c)}return this.index=c,this.push({data:b,meta:{percent:this.max?this.index/this.max*100:0}})},b.exports=d},{"../utils":32,"./GenericWorker":28}],28:[function(a,b,c){"use strict";function d(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}d.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return!this.isFinished&&(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,b){return this._listeners[a].push(b),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,b){if(this._listeners[a])for(var c=0;c<this._listeners[a].length;c++)this._listeners[a][c].call(this,b)},pipe:function(a){return a.registerPrevious(this)},registerPrevious:function(a){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=a.streamInfo,this.mergeStreamInfo(),this.previous=a;var b=this;return a.on("data",function(a){b.processChunk(a)}),a.on("end",function(){b.end()}),a.on("error",function(a){b.error(a)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;this.isPaused=!1;var a=!1;return this.generatedError&&(this.error(this.generatedError),a=!0),this.previous&&this.previous.resume(),!a},flush:function(){},processChunk:function(a){this.push(a)},withStreamInfo:function(a,b){return this.extraStreamInfo[a]=b,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var a in this.extraStreamInfo)this.extraStreamInfo.hasOwnProperty(a)&&(this.streamInfo[a]=this.extraStreamInfo[a])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var a="Worker "+this.name;return this.previous?this.previous+" -> "+a:a}},b.exports=d},{}],29:[function(a,b,c){"use strict";function d(a,b,c){switch(a){case"blob":return h.newBlob(h.transformTo("arraybuffer",b),c);case"base64":return k.encode(b);default:return h.transformTo(a,b)}}function e(a,b){var c,d=0,e=null,f=0;for(c=0;c<b.length;c++)f+=b[c].length;switch(a){case"string":return b.join("");case"array":return Array.prototype.concat.apply([],b);case"uint8array":for(e=new Uint8Array(f),c=0;c<b.length;c++)e.set(b[c],d),d+=b[c].length;return e;case"nodebuffer":return Buffer.concat(b);default:throw new Error("concat : unsupported type '"+a+"'")}}function f(a,b){return new m.Promise(function(c,f){var g=[],h=a._internalType,i=a._outputType,j=a._mimeType;a.on("data",function(a,c){g.push(a),b&&b(c)}).on("error",function(a){g=[],f(a)}).on("end",function(){try{var a=d(i,e(h,g),j);c(a)}catch(b){f(b)}g=[]}).resume()})}function g(a,b,c){var d=b;switch(b){case"blob":case"arraybuffer":d="uint8array";break;case"base64":d="string"}try{this._internalType=d,this._outputType=b,this._mimeType=c,h.checkSupport(d),this._worker=a.pipe(new i(d)),a.lock()}catch(e){this._worker=new j("error"),this._worker.error(e)}}var h=a("../utils"),i=a("./ConvertWorker"),j=a("./GenericWorker"),k=a("../base64"),l=a("../support"),m=a("../external"),n=null;if(l.nodestream)try{n=a("../nodejs/NodejsStreamOutputAdapter")}catch(o){}g.prototype={accumulate:function(a){return f(this,a)},on:function(a,b){var c=this;return"data"===a?this._worker.on(a,function(a){b.call(c,a.data,a.meta)}):this._worker.on(a,function(){h.delay(b,arguments,c)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(a){if(h.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new n(this,{objectMode:"nodebuffer"!==this._outputType},a)}},b.exports=g},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(a,b,c){"use strict";if(c.base64=!0,c.array=!0,c.string=!0,c.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,c.nodebuffer="undefined"!=typeof Buffer,c.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)c.blob=!1;else{var d=new ArrayBuffer(0);try{c.blob=0===new Blob([d],{type:"application/zip"}).size}catch(e){try{var f=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,g=new f;g.append(d),c.blob=0===g.getBlob("application/zip").size}catch(e){c.blob=!1}}}try{c.nodestream=!!a("readable-stream").Readable}catch(e){c.nodestream=!1}},{"readable-stream":16}],31:[function(a,b,c){"use strict";function d(){i.call(this,"utf-8 decode"),this.leftOver=null}function e(){i.call(this,"utf-8 encode")}for(var f=a("./utils"),g=a("./support"),h=a("./nodejsUtils"),i=a("./stream/GenericWorker"),j=new Array(256),k=0;k<256;k++)j[k]=k>=252?6:k>=248?5:k>=240?4:k>=224?3:k>=192?2:1;j[254]=j[254]=1;var l=function(a){var b,c,d,e,f,h=a.length,i=0;for(e=0;e<h;e++)c=a.charCodeAt(e),55296===(64512&c)&&e+1<h&&(d=a.charCodeAt(e+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),e++)),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=g.uint8array?new Uint8Array(i):new Array(i),f=0,e=0;f<i;e++)c=a.charCodeAt(e),55296===(64512&c)&&e+1<h&&(d=a.charCodeAt(e+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),e++)),c<128?b[f++]=c:c<2048?(b[f++]=192|c>>>6,b[f++]=128|63&c):c<65536?(b[f++]=224|c>>>12,b[f++]=128|c>>>6&63,b[f++]=128|63&c):(b[f++]=240|c>>>18,b[f++]=128|c>>>12&63,b[f++]=128|c>>>6&63,b[f++]=128|63&c);return b},m=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+j[a[c]]>b?c:b},n=function(a){var b,c,d,e,g=a.length,h=new Array(2*g);for(c=0,b=0;b<g;)if(d=a[b++],d<128)h[c++]=d;else if(e=j[d],e>4)h[c++]=65533,b+=e-1;else{for(d&=2===e?31:3===e?15:7;e>1&&b<g;)d=d<<6|63&a[b++],e--;e>1?h[c++]=65533:d<65536?h[c++]=d:(d-=65536,h[c++]=55296|d>>10&1023,h[c++]=56320|1023&d)}return h.length!==c&&(h.subarray?h=h.subarray(0,c):h.length=c),f.applyFromCharCode(h)};c.utf8encode=function(a){return g.nodebuffer?h.newBufferFrom(a,"utf-8"):l(a)},c.utf8decode=function(a){return g.nodebuffer?f.transformTo("nodebuffer",a).toString("utf-8"):(a=f.transformTo(g.uint8array?"uint8array":"array",a),n(a))},f.inherits(d,i),d.prototype.processChunk=function(a){var b=f.transformTo(g.uint8array?"uint8array":"array",a.data);if(this.leftOver&&this.leftOver.length){if(g.uint8array){var d=b;b=new Uint8Array(d.length+this.leftOver.length),b.set(this.leftOver,0),b.set(d,this.leftOver.length)}else b=this.leftOver.concat(b);this.leftOver=null}var e=m(b),h=b;e!==b.length&&(g.uint8array?(h=b.subarray(0,e),this.leftOver=b.subarray(e,b.length)):(h=b.slice(0,e),this.leftOver=b.slice(e,b.length))),this.push({data:c.utf8decode(h),meta:a.meta})},d.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:c.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},c.Utf8DecodeWorker=d,f.inherits(e,i),e.prototype.processChunk=function(a){this.push({data:c.utf8encode(a.data),meta:a.meta})},c.Utf8EncodeWorker=e},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(a,b,c){"use strict";function d(a){var b=null;return b=i.uint8array?new Uint8Array(a.length):new Array(a.length),f(a,b)}function e(a){return a}function f(a,b){for(var c=0;c<a.length;++c)b[c]=255&a.charCodeAt(c);return b}function g(a){var b=65536,d=c.getTypeOf(a),e=!0;if("uint8array"===d?e=n.applyCanBeUsed.uint8array:"nodebuffer"===d&&(e=n.applyCanBeUsed.nodebuffer),e)for(;b>1;)try{return n.stringifyByChunk(a,d,b)}catch(f){b=Math.floor(b/2)}return n.stringifyByChar(a)}function h(a,b){for(var c=0;c<a.length;c++)b[c]=a[c];
+return b}var i=a("./support"),j=a("./base64"),k=a("./nodejsUtils"),l=a("core-js/library/fn/set-immediate"),m=a("./external");c.newBlob=function(a,b){c.checkSupport("blob");try{return new Blob([a],{type:b})}catch(d){try{var e=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,f=new e;return f.append(a),f.getBlob(b)}catch(d){throw new Error("Bug : can't construct the Blob.")}}};var n={stringifyByChunk:function(a,b,c){var d=[],e=0,f=a.length;if(f<=c)return String.fromCharCode.apply(null,a);for(;e<f;)"array"===b||"nodebuffer"===b?d.push(String.fromCharCode.apply(null,a.slice(e,Math.min(e+c,f)))):d.push(String.fromCharCode.apply(null,a.subarray(e,Math.min(e+c,f)))),e+=c;return d.join("")},stringifyByChar:function(a){for(var b="",c=0;c<a.length;c++)b+=String.fromCharCode(a[c]);return b},applyCanBeUsed:{uint8array:function(){try{return i.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(a){return!1}}(),nodebuffer:function(){try{return i.nodebuffer&&1===String.fromCharCode.apply(null,k.allocBuffer(1)).length}catch(a){return!1}}()}};c.applyFromCharCode=g;var o={};o.string={string:e,array:function(a){return f(a,new Array(a.length))},arraybuffer:function(a){return o.string.uint8array(a).buffer},uint8array:function(a){return f(a,new Uint8Array(a.length))},nodebuffer:function(a){return f(a,k.allocBuffer(a.length))}},o.array={string:g,array:e,arraybuffer:function(a){return new Uint8Array(a).buffer},uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return k.newBufferFrom(a)}},o.arraybuffer={string:function(a){return g(new Uint8Array(a))},array:function(a){return h(new Uint8Array(a),new Array(a.byteLength))},arraybuffer:e,uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return k.newBufferFrom(new Uint8Array(a))}},o.uint8array={string:g,array:function(a){return h(a,new Array(a.length))},arraybuffer:function(a){return a.buffer},uint8array:e,nodebuffer:function(a){return k.newBufferFrom(a)}},o.nodebuffer={string:g,array:function(a){return h(a,new Array(a.length))},arraybuffer:function(a){return o.nodebuffer.uint8array(a).buffer},uint8array:function(a){return h(a,new Uint8Array(a.length))},nodebuffer:e},c.transformTo=function(a,b){if(b||(b=""),!a)return b;c.checkSupport(a);var d=c.getTypeOf(b),e=o[d][a](b);return e},c.getTypeOf=function(a){return"string"==typeof a?"string":"[object Array]"===Object.prototype.toString.call(a)?"array":i.nodebuffer&&k.isBuffer(a)?"nodebuffer":i.uint8array&&a instanceof Uint8Array?"uint8array":i.arraybuffer&&a instanceof ArrayBuffer?"arraybuffer":void 0},c.checkSupport=function(a){var b=i[a.toLowerCase()];if(!b)throw new Error(a+" is not supported by this platform")},c.MAX_VALUE_16BITS=65535,c.MAX_VALUE_32BITS=-1,c.pretty=function(a){var b,c,d="";for(c=0;c<(a||"").length;c++)b=a.charCodeAt(c),d+="\\x"+(b<16?"0":"")+b.toString(16).toUpperCase();return d},c.delay=function(a,b,c){l(function(){a.apply(c||null,b||[])})},c.inherits=function(a,b){var c=function(){};c.prototype=b.prototype,a.prototype=new c},c.extend=function(){var a,b,c={};for(a=0;a<arguments.length;a++)for(b in arguments[a])arguments[a].hasOwnProperty(b)&&"undefined"==typeof c[b]&&(c[b]=arguments[a][b]);return c},c.prepareContent=function(a,b,e,f,g){var h=m.Promise.resolve(b).then(function(a){var b=i.blob&&(a instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(a))!==-1);return b&&"undefined"!=typeof FileReader?new m.Promise(function(b,c){var d=new FileReader;d.onload=function(a){b(a.target.result)},d.onerror=function(a){c(a.target.error)},d.readAsArrayBuffer(a)}):a});return h.then(function(b){var h=c.getTypeOf(b);return h?("arraybuffer"===h?b=c.transformTo("uint8array",b):"string"===h&&(g?b=j.decode(b):e&&f!==!0&&(b=d(b))),b):m.Promise.reject(new Error("Can't read the data of '"+a+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"core-js/library/fn/set-immediate":36}],33:[function(a,b,c){"use strict";function d(a){this.files=[],this.loadOptions=a}var e=a("./reader/readerFor"),f=a("./utils"),g=a("./signature"),h=a("./zipEntry"),i=(a("./utf8"),a("./support"));d.prototype={checkSignature:function(a){if(!this.reader.readAndCheckSignature(a)){this.reader.index-=4;var b=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+f.pretty(b)+", expected "+f.pretty(a)+")")}},isSignature:function(a,b){var c=this.reader.index;this.reader.setIndex(a);var d=this.reader.readString(4),e=d===b;return this.reader.setIndex(c),e},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var a=this.reader.readData(this.zipCommentLength),b=i.uint8array?"uint8array":"array",c=f.transformTo(b,a);this.zipComment=this.loadOptions.decodeFileName(c)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var a,b,c,d=this.zip64EndOfCentralSize-44,e=0;e<d;)a=this.reader.readInt(2),b=this.reader.readInt(4),c=this.reader.readData(b),this.zip64ExtensibleData[a]={id:a,length:b,value:c}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var a,b;for(a=0;a<this.files.length;a++)b=this.files[a],this.reader.setIndex(b.localHeaderOffset),this.checkSignature(g.LOCAL_FILE_HEADER),b.readLocalPart(this.reader),b.handleUTF8(),b.processAttributes()},readCentralDir:function(){var a;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(g.CENTRAL_FILE_HEADER);)a=new h({zip64:this.zip64},this.loadOptions),a.readCentralPart(this.reader),this.files.push(a);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var a=this.reader.lastIndexOfSignature(g.CENTRAL_DIRECTORY_END);if(a<0){var b=!this.isSignature(0,g.LOCAL_FILE_HEADER);throw b?new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip: can't find end of central directory")}this.reader.setIndex(a);var c=a;if(this.checkSignature(g.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===f.MAX_VALUE_16BITS||this.diskWithCentralDirStart===f.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===f.MAX_VALUE_16BITS||this.centralDirRecords===f.MAX_VALUE_16BITS||this.centralDirSize===f.MAX_VALUE_32BITS||this.centralDirOffset===f.MAX_VALUE_32BITS){if(this.zip64=!0,a=this.reader.lastIndexOfSignature(g.ZIP64_CENTRAL_DIRECTORY_LOCATOR),a<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(a),this.checkSignature(g.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,g.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(g.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(g.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var d=this.centralDirOffset+this.centralDirSize;this.zip64&&(d+=20,d+=12+this.zip64EndOfCentralSize);var e=c-d;if(e>0)this.isSignature(c,g.CENTRAL_FILE_HEADER)||(this.reader.zero=e);else if(e<0)throw new Error("Corrupted zip: missing "+Math.abs(e)+" bytes.")},prepareReader:function(a){this.reader=e(a)},load:function(a){this.prepareReader(a),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},b.exports=d},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(a,b,c){"use strict";function d(a,b){this.options=a,this.loadOptions=b}var e=a("./reader/readerFor"),f=a("./utils"),g=a("./compressedObject"),h=a("./crc32"),i=a("./utf8"),j=a("./compressions"),k=a("./support"),l=0,m=3,n=function(a){for(var b in j)if(j.hasOwnProperty(b)&&j[b].magic===a)return j[b];return null};d.prototype={isEncrypted:function(){return 1===(1&this.bitFlag)},useUTF8:function(){return 2048===(2048&this.bitFlag)},readLocalPart:function(a){var b,c;if(a.skip(22),this.fileNameLength=a.readInt(2),c=a.readInt(2),this.fileName=a.readData(this.fileNameLength),a.skip(c),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(b=n(this.compressionMethod),null===b)throw new Error("Corrupted zip : compression "+f.pretty(this.compressionMethod)+" unknown (inner file : "+f.transformTo("string",this.fileName)+")");this.decompressed=new g(this.compressedSize,this.uncompressedSize,this.crc32,b,a.readData(this.compressedSize))},readCentralPart:function(a){this.versionMadeBy=a.readInt(2),a.skip(2),this.bitFlag=a.readInt(2),this.compressionMethod=a.readString(2),this.date=a.readDate(),this.crc32=a.readInt(4),this.compressedSize=a.readInt(4),this.uncompressedSize=a.readInt(4);var b=a.readInt(2);if(this.extraFieldsLength=a.readInt(2),this.fileCommentLength=a.readInt(2),this.diskNumberStart=a.readInt(2),this.internalFileAttributes=a.readInt(2),this.externalFileAttributes=a.readInt(4),this.localHeaderOffset=a.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");a.skip(b),this.readExtraFields(a),this.parseZIP64ExtraField(a),this.fileComment=a.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var a=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),a===l&&(this.dosPermissions=63&this.externalFileAttributes),a===m&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(a){if(this.extraFields[1]){var b=e(this.extraFields[1].value);this.uncompressedSize===f.MAX_VALUE_32BITS&&(this.uncompressedSize=b.readInt(8)),this.compressedSize===f.MAX_VALUE_32BITS&&(this.compressedSize=b.readInt(8)),this.localHeaderOffset===f.MAX_VALUE_32BITS&&(this.localHeaderOffset=b.readInt(8)),this.diskNumberStart===f.MAX_VALUE_32BITS&&(this.diskNumberStart=b.readInt(4))}},readExtraFields:function(a){var b,c,d,e=a.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});a.index<e;)b=a.readInt(2),c=a.readInt(2),d=a.readData(c),this.extraFields[b]={id:b,length:c,value:d}},handleUTF8:function(){var a=k.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=i.utf8decode(this.fileName),this.fileCommentStr=i.utf8decode(this.fileComment);else{var b=this.findExtraFieldUnicodePath();if(null!==b)this.fileNameStr=b;else{var c=f.transformTo(a,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(c)}var d=this.findExtraFieldUnicodeComment();if(null!==d)this.fileCommentStr=d;else{var e=f.transformTo(a,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(e)}}},findExtraFieldUnicodePath:function(){var a=this.extraFields[28789];if(a){var b=e(a.value);return 1!==b.readInt(1)?null:h(this.fileName)!==b.readInt(4)?null:i.utf8decode(b.readData(a.length-5))}return null},findExtraFieldUnicodeComment:function(){var a=this.extraFields[25461];if(a){var b=e(a.value);return 1!==b.readInt(1)?null:h(this.fileComment)!==b.readInt(4)?null:i.utf8decode(b.readData(a.length-5))}return null}},b.exports=d},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(a,b,c){"use strict";var d=a("./stream/StreamHelper"),e=a("./stream/DataWorker"),f=a("./utf8"),g=a("./compressedObject"),h=a("./stream/GenericWorker"),i=function(a,b,c){this.name=a,this.dir=c.dir,this.date=c.date,this.comment=c.comment,this.unixPermissions=c.unixPermissions,this.dosPermissions=c.dosPermissions,this._data=b,this._dataBinary=c.binary,this.options={compression:c.compression,compressionOptions:c.compressionOptions}};i.prototype={internalStream:function(a){var b=null,c="string";try{if(!a)throw new Error("No output type specified.");c=a.toLowerCase();var e="string"===c||"text"===c;"binarystring"!==c&&"text"!==c||(c="string"),b=this._decompressWorker();var g=!this._dataBinary;g&&!e&&(b=b.pipe(new f.Utf8EncodeWorker)),!g&&e&&(b=b.pipe(new f.Utf8DecodeWorker))}catch(i){b=new h("error"),b.error(i)}return new d(b,c,"")},async:function(a,b){return this.internalStream(a).accumulate(b)},nodeStream:function(a,b){return this.internalStream(a||"nodebuffer").toNodejsStream(b)},_compressWorker:function(a,b){if(this._data instanceof g&&this._data.compression.magic===a.magic)return this._data.getCompressedWorker();var c=this._decompressWorker();return this._dataBinary||(c=c.pipe(new f.Utf8EncodeWorker)),g.createWorkerFrom(c,a,b)},_decompressWorker:function(){return this._data instanceof g?this._data.getContentWorker():this._data instanceof h?this._data:new e(this._data)}};for(var j=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],k=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},l=0;l<j.length;l++)i.prototype[j[l]]=k;b.exports=i},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(a,b,c){a("../modules/web.immediate"),b.exports=a("../modules/_core").setImmediate},{"../modules/_core":40,"../modules/web.immediate":56}],37:[function(a,b,c){b.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},{}],38:[function(a,b,c){var d=a("./_is-object");b.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},{"./_is-object":51}],39:[function(a,b,c){var d={}.toString;b.exports=function(a){return d.call(a).slice(8,-1)}},{}],40:[function(a,b,c){var d=b.exports={version:"2.3.0"};"number"==typeof __e&&(__e=d)},{}],41:[function(a,b,c){var d=a("./_a-function");b.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},{"./_a-function":37}],42:[function(a,b,c){b.exports=!a("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":45}],43:[function(a,b,c){var d=a("./_is-object"),e=a("./_global").document,f=d(e)&&d(e.createElement);b.exports=function(a){return f?e.createElement(a):{}}},{"./_global":46,"./_is-object":51}],44:[function(a,b,c){var d=a("./_global"),e=a("./_core"),f=a("./_ctx"),g=a("./_hide"),h="prototype",i=function(a,b,c){var j,k,l,m=a&i.F,n=a&i.G,o=a&i.S,p=a&i.P,q=a&i.B,r=a&i.W,s=n?e:e[b]||(e[b]={}),t=s[h],u=n?d:o?d[b]:(d[b]||{})[h];n&&(c=b);for(j in c)k=!m&&u&&void 0!==u[j],k&&j in s||(l=k?u[j]:c[j],s[j]=n&&"function"!=typeof u[j]?c[j]:q&&k?f(l,d):r&&u[j]==l?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[h]=a[h],b}(l):p&&"function"==typeof l?f(Function.call,l):l,p&&((s.virtual||(s.virtual={}))[j]=l,a&i.R&&t&&!t[j]&&g(t,j,l)))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,i.U=64,i.R=128,b.exports=i},{"./_core":40,"./_ctx":41,"./_global":46,"./_hide":47}],45:[function(a,b,c){b.exports=function(a){try{return!!a()}catch(b){return!0}}},{}],46:[function(a,b,c){var d=b.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=d)},{}],47:[function(a,b,c){var d=a("./_object-dp"),e=a("./_property-desc");b.exports=a("./_descriptors")?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},{"./_descriptors":42,"./_object-dp":52,"./_property-desc":53}],48:[function(a,b,c){b.exports=a("./_global").document&&document.documentElement},{"./_global":46}],49:[function(a,b,c){b.exports=!a("./_descriptors")&&!a("./_fails")(function(){return 7!=Object.defineProperty(a("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},{"./_descriptors":42,"./_dom-create":43,"./_fails":45}],50:[function(a,b,c){b.exports=function(a,b,c){var d=void 0===c;switch(b.length){case 0:return d?a():a.call(c);case 1:return d?a(b[0]):a.call(c,b[0]);case 2:return d?a(b[0],b[1]):a.call(c,b[0],b[1]);case 3:return d?a(b[0],b[1],b[2]):a.call(c,b[0],b[1],b[2]);case 4:return d?a(b[0],b[1],b[2],b[3]):a.call(c,b[0],b[1],b[2],b[3])}return a.apply(c,b)}},{}],51:[function(a,b,c){b.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},{}],52:[function(a,b,c){var d=a("./_an-object"),e=a("./_ie8-dom-define"),f=a("./_to-primitive"),g=Object.defineProperty;c.f=a("./_descriptors")?Object.defineProperty:function(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(h){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},{"./_an-object":38,"./_descriptors":42,"./_ie8-dom-define":49,"./_to-primitive":55}],53:[function(a,b,c){b.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},{}],54:[function(a,b,c){var d,e,f,g=a("./_ctx"),h=a("./_invoke"),i=a("./_html"),j=a("./_dom-create"),k=a("./_global"),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function(a){delete q[a]},"process"==a("./_cof")(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(e=new o,f=e.port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),b.exports={set:m,clear:n}},{"./_cof":39,"./_ctx":41,"./_dom-create":43,"./_global":46,"./_html":48,"./_invoke":50}],55:[function(a,b,c){var d=a("./_is-object");b.exports=function(a,b){if(!d(a))return a;var c,e;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;if("function"==typeof(c=a.valueOf)&&!d(e=c.call(a)))return e;if(!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},{"./_is-object":51}],56:[function(a,b,c){var d=a("./_export"),e=a("./_task");d(d.G+d.B,{setImmediate:e.set,clearImmediate:e.clear})},{"./_export":44,"./_task":54}],57:[function(a,b,c){(function(a){"use strict";function c(){k=!0;for(var a,b,c=l.length;c;){for(b=l,l=[],a=-1;++a<c;)b[a]();c=l.length}k=!1}function d(a){1!==l.push(a)||k||e()}var e,f=a.MutationObserver||a.WebKitMutationObserver;if(f){var g=0,h=new f(c),i=a.document.createTextNode("");h.observe(i,{characterData:!0}),e=function(){i.data=g=++g%2}}else if(a.setImmediate||"undefined"==typeof a.MessageChannel)e="document"in a&&"onreadystatechange"in a.document.createElement("script")?function(){var b=a.document.createElement("script");b.onreadystatechange=function(){c(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},a.document.documentElement.appendChild(b)}:function(){setTimeout(c,0)};else{var j=new a.MessageChannel;j.port1.onmessage=c,e=function(){j.port2.postMessage(0)}}var k,l=[];b.exports=d}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],58:[function(a,b,c){"use strict";function d(){}function e(a){if("function"!=typeof a)throw new TypeError("resolver must be a function");this.state=s,this.queue=[],this.outcome=void 0,a!==d&&i(this,a)}function f(a,b,c){this.promise=a,"function"==typeof b&&(this.onFulfilled=b,this.callFulfilled=this.otherCallFulfilled),"function"==typeof c&&(this.onRejected=c,this.callRejected=this.otherCallRejected)}function g(a,b,c){o(function(){var d;try{d=b(c)}catch(e){return p.reject(a,e)}d===a?p.reject(a,new TypeError("Cannot resolve promise with itself")):p.resolve(a,d)})}function h(a){var b=a&&a.then;if(a&&("object"==typeof a||"function"==typeof a)&&"function"==typeof b)return function(){b.apply(a,arguments)}}function i(a,b){function c(b){f||(f=!0,p.reject(a,b))}function d(b){f||(f=!0,p.resolve(a,b))}function e(){b(d,c)}var f=!1,g=j(e);"error"===g.status&&c(g.value)}function j(a,b){var c={};try{c.value=a(b),c.status="success"}catch(d){c.status="error",c.value=d}return c}function k(a){return a instanceof this?a:p.resolve(new this(d),a)}function l(a){var b=new this(d);return p.reject(b,a)}function m(a){function b(a,b){function d(a){g[b]=a,++h!==e||f||(f=!0,p.resolve(j,g))}c.resolve(a).then(d,function(a){f||(f=!0,p.reject(j,a))})}var c=this;if("[object Array]"!==Object.prototype.toString.call(a))return this.reject(new TypeError("must be an array"));var e=a.length,f=!1;if(!e)return this.resolve([]);for(var g=new Array(e),h=0,i=-1,j=new this(d);++i<e;)b(a[i],i);return j}function n(a){function b(a){c.resolve(a).then(function(a){f||(f=!0,p.resolve(h,a))},function(a){f||(f=!0,p.reject(h,a))})}var c=this;if("[object Array]"!==Object.prototype.toString.call(a))return this.reject(new TypeError("must be an array"));var e=a.length,f=!1;if(!e)return this.resolve([]);for(var g=-1,h=new this(d);++g<e;)b(a[g]);return h}var o=a("immediate"),p={},q=["REJECTED"],r=["FULFILLED"],s=["PENDING"];b.exports=e,e.prototype["catch"]=function(a){return this.then(null,a)},e.prototype.then=function(a,b){if("function"!=typeof a&&this.state===r||"function"!=typeof b&&this.state===q)return this;var c=new this.constructor(d);if(this.state!==s){var e=this.state===r?a:b;g(c,e,this.outcome)}else this.queue.push(new f(c,a,b));return c},f.prototype.callFulfilled=function(a){p.resolve(this.promise,a)},f.prototype.otherCallFulfilled=function(a){g(this.promise,this.onFulfilled,a)},f.prototype.callRejected=function(a){p.reject(this.promise,a)},f.prototype.otherCallRejected=function(a){g(this.promise,this.onRejected,a)},p.resolve=function(a,b){var c=j(h,b);if("error"===c.status)return p.reject(a,c.value);var d=c.value;if(d)i(a,d);else{a.state=r,a.outcome=b;for(var e=-1,f=a.queue.length;++e<f;)a.queue[e].callFulfilled(b)}return a},p.reject=function(a,b){a.state=q,a.outcome=b;for(var c=-1,d=a.queue.length;++c<d;)a.queue[c].callRejected(b);return a},e.resolve=k,e.reject=l,e.all=m,e.race=n},{immediate:57}],59:[function(a,b,c){"use strict";var d=a("./lib/utils/common").assign,e=a("./lib/deflate"),f=a("./lib/inflate"),g=a("./lib/zlib/constants"),h={};d(h,e,f,g),b.exports=h},{"./lib/deflate":60,"./lib/inflate":61,"./lib/utils/common":62,"./lib/zlib/constants":65}],60:[function(a,b,c){"use strict";function d(a){if(!(this instanceof d))return new d(a);this.options=i.assign({level:s,method:u,chunkSize:16384,windowBits:15,memLevel:8,strategy:t,to:""},a||{});var b=this.options;b.raw&&b.windowBits>0?b.windowBits=-b.windowBits:b.gzip&&b.windowBits>0&&b.windowBits<16&&(b.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=h.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==p)throw new Error(k[c]);if(b.header&&h.deflateSetHeader(this.strm,b.header),b.dictionary){var e;if(e="string"==typeof b.dictionary?j.string2buf(b.dictionary):"[object ArrayBuffer]"===m.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=h.deflateSetDictionary(this.strm,e),c!==p)throw new Error(k[c]);this._dict_set=!0}}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg||k[c.err];return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}function g(a,b){return b=b||{},b.gzip=!0,e(a,b)}var h=a("./zlib/deflate"),i=a("./utils/common"),j=a("./utils/strings"),k=a("./zlib/messages"),l=a("./zlib/zstream"),m=Object.prototype.toString,n=0,o=4,p=0,q=1,r=2,s=-1,t=0,u=8;d.prototype.push=function(a,b){var c,d,e=this.strm,f=this.options.chunkSize;if(this.ended)return!1;d=b===~~b?b:b===!0?o:n,"string"==typeof a?e.input=j.string2buf(a):"[object ArrayBuffer]"===m.call(a)?e.input=new Uint8Array(a):e.input=a,e.next_in=0,e.avail_in=e.input.length;do{if(0===e.avail_out&&(e.output=new i.Buf8(f),e.next_out=0,e.avail_out=f),c=h.deflate(e,d),c!==q&&c!==p)return this.onEnd(c),this.ended=!0,!1;0!==e.avail_out&&(0!==e.avail_in||d!==o&&d!==r)||("string"===this.options.to?this.onData(j.buf2binstring(i.shrinkBuf(e.output,e.next_out))):this.onData(i.shrinkBuf(e.output,e.next_out)))}while((e.avail_in>0||0===e.avail_out)&&c!==q);return d===o?(c=h.deflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===p):d!==r||(this.onEnd(p),e.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===p&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Deflate=d,c.deflate=e,c.deflateRaw=f,c.gzip=g},{"./utils/common":62,"./utils/strings":63,"./zlib/deflate":67,"./zlib/messages":72,"./zlib/zstream":74}],61:[function(a,b,c){"use strict";function d(a){if(!(this instanceof d))return new d(a);this.options=h.assign({chunkSize:16384,windowBits:0,to:""},a||{});var b=this.options;b.raw&&b.windowBits>=0&&b.windowBits<16&&(b.windowBits=-b.windowBits,0===b.windowBits&&(b.windowBits=-15)),!(b.windowBits>=0&&b.windowBits<16)||a&&a.windowBits||(b.windowBits+=32),b.windowBits>15&&b.windowBits<48&&0===(15&b.windowBits)&&(b.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=g.inflateInit2(this.strm,b.windowBits);if(c!==j.Z_OK)throw new Error(k[c]);this.header=new m,g.inflateGetHeader(this.strm,this.header)}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg||k[c.err];return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}var g=a("./zlib/inflate"),h=a("./utils/common"),i=a("./utils/strings"),j=a("./zlib/constants"),k=a("./zlib/messages"),l=a("./zlib/zstream"),m=a("./zlib/gzheader"),n=Object.prototype.toString;d.prototype.push=function(a,b){var c,d,e,f,k,l,m=this.strm,o=this.options.chunkSize,p=this.options.dictionary,q=!1;if(this.ended)return!1;d=b===~~b?b:b===!0?j.Z_FINISH:j.Z_NO_FLUSH,"string"==typeof a?m.input=i.binstring2buf(a):"[object ArrayBuffer]"===n.call(a)?m.input=new Uint8Array(a):m.input=a,m.next_in=0,m.avail_in=m.input.length;do{if(0===m.avail_out&&(m.output=new h.Buf8(o),m.next_out=0,m.avail_out=o),c=g.inflate(m,j.Z_NO_FLUSH),c===j.Z_NEED_DICT&&p&&(l="string"==typeof p?i.string2buf(p):"[object ArrayBuffer]"===n.call(p)?new Uint8Array(p):p,c=g.inflateSetDictionary(this.strm,l)),c===j.Z_BUF_ERROR&&q===!0&&(c=j.Z_OK,q=!1),c!==j.Z_STREAM_END&&c!==j.Z_OK)return this.onEnd(c),this.ended=!0,!1;m.next_out&&(0!==m.avail_out&&c!==j.Z_STREAM_END&&(0!==m.avail_in||d!==j.Z_FINISH&&d!==j.Z_SYNC_FLUSH)||("string"===this.options.to?(e=i.utf8border(m.output,m.next_out),f=m.next_out-e,k=i.buf2string(m.output,e),m.next_out=f,m.avail_out=o-f,f&&h.arraySet(m.output,m.output,e,f,0),this.onData(k)):this.onData(h.shrinkBuf(m.output,m.next_out)))),0===m.avail_in&&0===m.avail_out&&(q=!0)}while((m.avail_in>0||0===m.avail_out)&&c!==j.Z_STREAM_END);return c===j.Z_STREAM_END&&(d=j.Z_FINISH),d===j.Z_FINISH?(c=g.inflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===j.Z_OK):d!==j.Z_SYNC_FLUSH||(this.onEnd(j.Z_OK),m.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===j.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=h.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Inflate=d,c.inflate=e,c.inflateRaw=f,c.ungzip=e},{"./utils/common":62,"./utils/strings":63,"./zlib/constants":65,"./zlib/gzheader":68,"./zlib/inflate":70,"./zlib/messages":72,"./zlib/zstream":74}],62:[function(a,b,c){"use strict";var d="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;c.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},c.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var e={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(d=0,b=0,c=a.length;b<c;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;b<c;b++)f=a[b],g.set(f,e),e+=f.length;return g}},f={arraySet:function(a,b,c,d,e){for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};c.setTyped=function(a){a?(c.Buf8=Uint8Array,c.Buf16=Uint16Array,c.Buf32=Int32Array,c.assign(c,e)):(c.Buf8=Array,c.Buf16=Array,c.Buf32=Array,c.assign(c,f))},c.setTyped(d)},{}],63:[function(a,b,c){"use strict";function d(a,b){if(b<65537&&(a.subarray&&g||!a.subarray&&f))return String.fromCharCode.apply(null,e.shrinkBuf(a,b));for(var c="",d=0;d<b;d++)c+=String.fromCharCode(a[d]);return c}var e=a("./common"),f=!0,g=!0;try{String.fromCharCode.apply(null,[0])}catch(h){f=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(h){g=!1}for(var i=new e.Buf8(256),j=0;j<256;j++)i[j]=j>=252?6:j>=248?5:j>=240?4:j>=224?3:j>=192?2:1;i[254]=i[254]=1,c.string2buf=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;f<h;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=new e.Buf8(i),g=0,f=0;g<i;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),c<128?b[g++]=c:c<2048?(b[g++]=192|c>>>6,b[g++]=128|63&c):c<65536?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},c.buf2binstring=function(a){return d(a,a.length)},c.binstring2buf=function(a){for(var b=new e.Buf8(a.length),c=0,d=b.length;c<d;c++)b[c]=a.charCodeAt(c);return b},c.buf2string=function(a,b){var c,e,f,g,h=b||a.length,j=new Array(2*h);for(e=0,c=0;c<h;)if(f=a[c++],f<128)j[e++]=f;else if(g=i[f],g>4)j[e++]=65533,c+=g-1;else{for(f&=2===g?31:3===g?15:7;g>1&&c<h;)f=f<<6|63&a[c++],g--;g>1?j[e++]=65533:f<65536?j[e++]=f:(f-=65536,j[e++]=55296|f>>10&1023,j[e++]=56320|1023&f)}return d(j,e)},c.utf8border=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+i[a[c]]>b?c:b}},{"./common":62}],64:[function(a,b,c){"use strict";function d(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0;
+}b.exports=d},{}],65:[function(a,b,c){"use strict";b.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],66:[function(a,b,c){"use strict";function d(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=f,g=d+c;a^=-1;for(var h=d;h<g;h++)a=a>>>8^e[255&(a^b[h])];return a^-1}var f=d();b.exports=e},{}],67:[function(a,b,c){"use strict";function d(a,b){return a.msg=I[b],b}function e(a){return(a<<1)-(a>4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(E.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){F._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,E.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=G(a.adler,b,e,c):2===a.state.wrap&&(a.adler=H(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-la?a.strstart-(a.w_size-la):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ka,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&f<m);if(d=ka-(m-f),f=m-ka,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-la)){E.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=ja)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+1])&a.hash_mask;a.insert&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+ja-1])&a.hash_mask,a.prev[f&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=f,f++,a.insert--,!(a.lookahead+a.insert<ja)););}while(a.lookahead<la&&0!==a.strm.avail_in)}function n(a,b){var c=65535;for(c>a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===J)return ua;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return ua;if(a.strstart-a.block_start>=a.w_size-la&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?ua:ua}function o(a,b){for(var c,d;;){if(a.lookahead<la){if(m(a),a.lookahead<la&&b===J)return ua;if(0===a.lookahead)break}if(c=0,a.lookahead>=ja&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),0!==c&&a.strstart-c<=a.w_size-la&&(a.match_length=l(a,c)),a.match_length>=ja)if(d=F._tr_tally(a,a.strstart-a.match_start,a.match_length-ja),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=ja){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart;while(0!==--a.match_length);a.strstart++}else a.strstart+=a.match_length,a.match_length=0,a.ins_h=a.window[a.strstart],a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+1])&a.hash_mask;else d=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++;if(d&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=a.strstart<ja-1?a.strstart:ja-1,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function p(a,b){for(var c,d,e;;){if(a.lookahead<la){if(m(a),a.lookahead<la&&b===J)return ua;if(0===a.lookahead)break}if(c=0,a.lookahead>=ja&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),a.prev_length=a.match_length,a.prev_match=a.match_start,a.match_length=ja-1,0!==c&&a.prev_length<a.max_lazy_match&&a.strstart-c<=a.w_size-la&&(a.match_length=l(a,c),a.match_length<=5&&(a.strategy===U||a.match_length===ja&&a.strstart-a.match_start>4096)&&(a.match_length=ja-1)),a.prev_length>=ja&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-ja,d=F._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-ja),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart);while(0!==--a.prev_length);if(a.match_available=0,a.match_length=ja-1,a.strstart++,d&&(h(a,!1),0===a.strm.avail_out))return ua}else if(a.match_available){if(d=F._tr_tally(a,0,a.window[a.strstart-1]),d&&h(a,!1),a.strstart++,a.lookahead--,0===a.strm.avail_out)return ua}else a.match_available=1,a.strstart++,a.lookahead--}return a.match_available&&(d=F._tr_tally(a,0,a.window[a.strstart-1]),a.match_available=0),a.insert=a.strstart<ja-1?a.strstart:ja-1,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function q(a,b){for(var c,d,e,f,g=a.window;;){if(a.lookahead<=ka){if(m(a),a.lookahead<=ka&&b===J)return ua;if(0===a.lookahead)break}if(a.match_length=0,a.lookahead>=ja&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ka;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&e<f);a.match_length=ka-(f-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=ja?(c=F._tr_tally(a,1,a.match_length-ja),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===J)return ua;break}if(a.match_length=0,c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function s(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e}function t(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=D[a.level].max_lazy,a.good_match=D[a.level].good_length,a.nice_match=D[a.level].nice_length,a.max_chain_length=D[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=ja-1,a.match_available=0,a.ins_h=0}function u(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=$,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new E.Buf16(2*ha),this.dyn_dtree=new E.Buf16(2*(2*fa+1)),this.bl_tree=new E.Buf16(2*(2*ga+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new E.Buf16(ia+1),this.heap=new E.Buf16(2*ea+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new E.Buf16(2*ea+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function v(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=Z,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?na:sa,a.adler=2===b.wrap?0:1,b.last_flush=J,F._tr_init(b),O):d(a,Q)}function w(a){var b=v(a);return b===O&&t(a.state),b}function x(a,b){return a&&a.state?2!==a.state.wrap?Q:(a.state.gzhead=b,O):Q}function y(a,b,c,e,f,g){if(!a)return Q;var h=1;if(b===T&&(b=6),e<0?(h=0,e=-e):e>15&&(h=2,e-=16),f<1||f>_||c!==$||e<8||e>15||b<0||b>9||g<0||g>X)return d(a,Q);8===e&&(e=9);var i=new u;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<<i.w_bits,i.w_mask=i.w_size-1,i.hash_bits=f+7,i.hash_size=1<<i.hash_bits,i.hash_mask=i.hash_size-1,i.hash_shift=~~((i.hash_bits+ja-1)/ja),i.window=new E.Buf8(2*i.w_size),i.head=new E.Buf16(i.hash_size),i.prev=new E.Buf16(i.w_size),i.lit_bufsize=1<<f+6,i.pending_buf_size=4*i.lit_bufsize,i.pending_buf=new E.Buf8(i.pending_buf_size),i.d_buf=1*i.lit_bufsize,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,w(a)}function z(a,b){return y(a,b,$,aa,ba,Y)}function A(a,b){var c,h,k,l;if(!a||!a.state||b>N||b<0)return a?d(a,Q):Q;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===ta&&b!==M)return d(a,0===a.avail_out?S:Q);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===na)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=H(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=oa):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,ya),h.status=sa);else{var m=$+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=V||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=ma),m+=31-m%31,h.status=sa,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===oa)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=pa)}else h.status=pa;if(h.status===pa)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.name.length?255&h.gzhead.name.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=qa)}else h.status=qa;if(h.status===qa)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.comment.length?255&h.gzhead.comment.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=ra)}else h.status=ra;if(h.status===ra&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=sa)):h.status=sa),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,O}else if(0===a.avail_in&&e(b)<=e(c)&&b!==M)return d(a,S);if(h.status===ta&&0!==a.avail_in)return d(a,S);if(0!==a.avail_in||0!==h.lookahead||b!==J&&h.status!==ta){var o=h.strategy===V?r(h,b):h.strategy===W?q(h,b):D[h.level].func(h,b);if(o!==wa&&o!==xa||(h.status=ta),o===ua||o===wa)return 0===a.avail_out&&(h.last_flush=-1),O;if(o===va&&(b===K?F._tr_align(h):b!==N&&(F._tr_stored_block(h,0,0,!1),b===L&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,O}return b!==M?O:h.wrap<=0?P:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?O:P)}function B(a){var b;return a&&a.state?(b=a.state.status,b!==na&&b!==oa&&b!==pa&&b!==qa&&b!==ra&&b!==sa&&b!==ta?d(a,Q):(a.state=null,b===sa?d(a,R):O)):Q}function C(a,b){var c,d,e,g,h,i,j,k,l=b.length;if(!a||!a.state)return Q;if(c=a.state,g=c.wrap,2===g||1===g&&c.status!==na||c.lookahead)return Q;for(1===g&&(a.adler=G(a.adler,b,l,0)),c.wrap=0,l>=c.w_size&&(0===g&&(f(c.head),c.strstart=0,c.block_start=0,c.insert=0),k=new E.Buf8(c.w_size),E.arraySet(k,b,l-c.w_size,c.w_size,0),b=k,l=c.w_size),h=a.avail_in,i=a.next_in,j=a.input,a.avail_in=l,a.next_in=0,a.input=b,m(c);c.lookahead>=ja;){d=c.strstart,e=c.lookahead-(ja-1);do c.ins_h=(c.ins_h<<c.hash_shift^c.window[d+ja-1])&c.hash_mask,c.prev[d&c.w_mask]=c.head[c.ins_h],c.head[c.ins_h]=d,d++;while(--e);c.strstart=d,c.lookahead=ja-1,m(c)}return c.strstart+=c.lookahead,c.block_start=c.strstart,c.insert=c.lookahead,c.lookahead=0,c.match_length=c.prev_length=ja-1,c.match_available=0,a.next_in=i,a.input=j,a.avail_in=h,c.wrap=g,O}var D,E=a("../utils/common"),F=a("./trees"),G=a("./adler32"),H=a("./crc32"),I=a("./messages"),J=0,K=1,L=3,M=4,N=5,O=0,P=1,Q=-2,R=-3,S=-5,T=-1,U=1,V=2,W=3,X=4,Y=0,Z=2,$=8,_=9,aa=15,ba=8,ca=29,da=256,ea=da+1+ca,fa=30,ga=19,ha=2*ea+1,ia=15,ja=3,ka=258,la=ka+ja+1,ma=32,na=42,oa=69,pa=73,qa=91,ra=103,sa=113,ta=666,ua=1,va=2,wa=3,xa=4,ya=3;D=[new s(0,0,0,0,n),new s(4,4,8,4,o),new s(4,5,16,8,o),new s(4,6,32,32,o),new s(4,4,16,16,p),new s(8,16,32,32,p),new s(8,16,128,128,p),new s(8,32,128,256,p),new s(32,128,258,1024,p),new s(32,258,258,4096,p)],c.deflateInit=z,c.deflateInit2=y,c.deflateReset=w,c.deflateResetKeep=v,c.deflateSetHeader=x,c.deflate=A,c.deflateEnd=B,c.deflateSetDictionary=C,c.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":62,"./adler32":64,"./crc32":66,"./messages":72,"./trees":73}],68:[function(a,b,c){"use strict";function d(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}b.exports=d},{}],69:[function(a,b,c){"use strict";var d=30,e=12;b.exports=function(a,b){var c,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C;c=a.state,f=a.next_in,B=a.input,g=f+(a.avail_in-5),h=a.next_out,C=a.output,i=h-(b-a.avail_out),j=h+(a.avail_out-257),k=c.dmax,l=c.wsize,m=c.whave,n=c.wnext,o=c.window,p=c.hold,q=c.bits,r=c.lencode,s=c.distcode,t=(1<<c.lenbits)-1,u=(1<<c.distbits)-1;a:do{q<15&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=r[p&t];b:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<<w)-1)];continue b}if(32&w){c.mode=e;break a}a.msg="invalid literal/length code",c.mode=d;break a}x=65535&v,w&=15,w&&(q<w&&(p+=B[f++]<<q,q+=8),x+=p&(1<<w)-1,p>>>=w,q-=w),q<15&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=s[p&u];c:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<<w)-1)];continue c}a.msg="invalid distance code",c.mode=d;break a}if(y=65535&v,w&=15,q<w&&(p+=B[f++]<<q,q+=8,q<w&&(p+=B[f++]<<q,q+=8)),y+=p&(1<<w)-1,y>k){a.msg="invalid distance too far back",c.mode=d;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&c.sane){a.msg="invalid distance too far back",c.mode=d;break a}if(z=0,A=o,0===n){if(z+=l-w,w<x){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}else if(n<w){if(z+=l+n-w,w-=n,w<x){x-=w;do C[h++]=o[z++];while(--w);if(z=0,n<x){w=n,x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}}else if(z+=n-w,w<x){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}for(;x>2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(f<g&&h<j);x=q>>3,f-=x,q-=x<<3,p&=(1<<q)-1,a.next_in=f,a.next_out=h,a.avail_in=f<g?5+(g-f):5-(f-g),a.avail_out=h<j?257+(j-h):257-(h-j),c.hold=p,c.bits=q}},{}],70:[function(a,b,c){"use strict";function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=L,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new s.Buf32(pa),b.distcode=b.distdyn=new s.Buf32(qa),b.sane=1,b.back=-1,D):G}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):G}function h(a,b){var c,d;return a&&a.state?(d=a.state,b<0?(c=0,b=-b):(c=(b>>4)+1,b<48&&(b&=15)),b&&(b<8||b>15)?G:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):G}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==D&&(a.state=null),c):G}function j(a){return i(a,sa)}function k(a){if(ta){var b;for(q=new s.Buf32(512),r=new s.Buf32(32),b=0;b<144;)a.lens[b++]=8;for(;b<256;)a.lens[b++]=9;for(;b<280;)a.lens[b++]=7;for(;b<288;)a.lens[b++]=8;for(w(y,a.lens,0,288,q,0,a.work,{bits:9}),b=0;b<32;)a.lens[b++]=5;w(z,a.lens,0,32,r,0,a.work,{bits:5}),ta=!1}a.lencode=q,a.lenbits=9,a.distcode=r,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<<f.wbits,f.wnext=0,f.whave=0,f.window=new s.Buf8(f.wsize)),d>=f.wsize?(s.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),s.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(s.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whave<f.wsize&&(f.whave+=e))),0}function m(a,b){var c,e,f,g,h,i,j,m,n,o,p,q,r,pa,qa,ra,sa,ta,ua,va,wa,xa,ya,za,Aa=0,Ba=new s.Buf8(4),Ca=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!a||!a.state||!a.output||!a.input&&0!==a.avail_in)return G;c=a.state,c.mode===W&&(c.mode=X),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,o=i,p=j,xa=D;a:for(;;)switch(c.mode){case L:if(0===c.wrap){c.mode=X;break}for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(2&c.wrap&&35615===m){c.check=0,Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0),m=0,n=0,c.mode=M;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg="incorrect header check",c.mode=ma;break}if((15&m)!==K){a.msg="unknown compression method",c.mode=ma;break}if(m>>>=4,n-=4,wa=(15&m)+8,0===c.wbits)c.wbits=wa;else if(wa>c.wbits){a.msg="invalid window size",c.mode=ma;break}c.dmax=1<<wa,a.adler=c.check=1,c.mode=512&m?U:W,m=0,n=0;break;case M:for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.flags=m,(255&c.flags)!==K){a.msg="unknown compression method",c.mode=ma;break}if(57344&c.flags){a.msg="unknown header flags set",c.mode=ma;break}c.head&&(c.head.text=m>>8&1),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=N;case N:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.time=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,Ba[2]=m>>>16&255,Ba[3]=m>>>24&255,c.check=u(c.check,Ba,4,0)),m=0,n=0,c.mode=O;case O:for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.xflags=255&m,c.head.os=m>>8),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=P;case P:if(1024&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length=m,c.head&&(c.head.extra_len=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=Q;case Q:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wa=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),s.arraySet(c.head.extra,e,g,q,wa)),512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=R;case R:if(2048&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.name+=String.fromCharCode(wa));while(wa&&q<i);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.name=null);c.length=0,c.mode=S;case S:if(4096&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.comment+=String.fromCharCode(wa));while(wa&&q<i);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.comment=null);c.mode=T;case T:if(512&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(65535&c.check)){a.msg="header crc mismatch",c.mode=ma;break}m=0,n=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=W;break;case U:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}a.adler=c.check=d(m),m=0,n=0,c.mode=V;case V:if(0===c.havedict)return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,F;a.adler=c.check=1,c.mode=W;case W:if(b===B||b===C)break a;case X:if(c.last){m>>>=7&n,n-=7&n,c.mode=ja;break}for(;n<3;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}switch(c.last=1&m,m>>>=1,n-=1,3&m){case 0:c.mode=Y;break;case 1:if(k(c),c.mode=ca,b===C){m>>>=2,n-=2;break a}break;case 2:c.mode=_;break;case 3:a.msg="invalid block type",c.mode=ma}m>>>=2,n-=2;break;case Y:for(m>>>=7&n,n-=7&n;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if((65535&m)!==(m>>>16^65535)){a.msg="invalid stored block lengths",c.mode=ma;break}if(c.length=65535&m,m=0,n=0,c.mode=Z,b===C)break a;case Z:c.mode=$;case $:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;s.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=W;break;case _:for(;n<14;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.nlen=(31&m)+257,m>>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=ma;break}c.have=0,c.mode=aa;case aa:for(;c.have<c.ncode;){for(;n<3;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.lens[Ca[c.have++]]=7&m,m>>>=3,n-=3}for(;c.have<19;)c.lens[Ca[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ya={bits:c.lenbits},xa=w(x,c.lens,0,19,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid code lengths set",c.mode=ma;break}c.have=0,c.mode=ba;case ba:for(;c.have<c.nlen+c.ndist;){for(;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(sa<16)m>>>=qa,n-=qa,c.lens[c.have++]=sa;else{if(16===sa){for(za=qa+2;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m>>>=qa,n-=qa,0===c.have){a.msg="invalid bit length repeat",c.mode=ma;break}wa=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sa){for(za=qa+3;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=3+(7&m),m>>>=3,n-=3}else{for(za=qa+7;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=ma;break}for(;q--;)c.lens[c.have++]=wa}}if(c.mode===ma)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=ma;break}if(c.lenbits=9,ya={bits:c.lenbits},xa=w(y,c.lens,0,c.nlen,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid literal/lengths set",c.mode=ma;break}if(c.distbits=6,c.distcode=c.distdyn,ya={bits:c.distbits},xa=w(z,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ya),c.distbits=ya.bits,xa){a.msg="invalid distances set",c.mode=ma;break}if(c.mode=ca,b===C)break a;case ca:c.mode=da;case da:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,v(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===W&&(c.back=-1);break}for(c.back=0;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(ra&&0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.lencode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,c.length=sa,0===ra){c.mode=ia;break}if(32&ra){c.back=-1,c.mode=W;break}if(64&ra){a.msg="invalid literal/length code",c.mode=ma;break}c.extra=15&ra,c.mode=ea;case ea:if(c.extra){for(za=c.extra;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=fa;case fa:for(;Aa=c.distcode[m&(1<<c.distbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.distcode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,64&ra){a.msg="invalid distance code",c.mode=ma;break}c.offset=sa,c.extra=15&ra,c.mode=ga;case ga:if(c.extra){for(za=c.extra;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.offset+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=ma;break}c.mode=ha;case ha:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=ma;break}q>c.wnext?(q-=c.wnext,r=c.wsize-q):r=c.wnext-q,q>c.length&&(q=c.length),pa=c.window}else pa=f,r=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pa[r++];while(--q);0===c.length&&(c.mode=da);break;case ia:if(0===j)break a;f[h++]=c.length,j--,c.mode=da;break;case ja:if(c.wrap){for(;n<32;){if(0===i)break a;i--,m|=e[g++]<<n,n+=8}if(p-=j,a.total_out+=p,c.total+=p,p&&(a.adler=c.check=c.flags?u(c.check,f,p,h-p):t(c.check,f,p,h-p)),p=j,(c.flags?m:d(m))!==c.check){a.msg="incorrect data check",c.mode=ma;break}m=0,n=0}c.mode=ka;case ka:if(c.wrap&&c.flags){for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(4294967295&c.total)){a.msg="incorrect length check",c.mode=ma;break}m=0,n=0}c.mode=la;case la:xa=E;break a;case ma:xa=H;break a;case na:return I;case oa:default:return G}return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,(c.wsize||p!==a.avail_out&&c.mode<ma&&(c.mode<ja||b!==A))&&l(a,a.output,a.next_out,p-a.avail_out)?(c.mode=na,I):(o-=a.avail_in,p-=a.avail_out,a.total_in+=o,a.total_out+=p,c.total+=p,c.wrap&&p&&(a.adler=c.check=c.flags?u(c.check,f,p,a.next_out-p):t(c.check,f,p,a.next_out-p)),a.data_type=c.bits+(c.last?64:0)+(c.mode===W?128:0)+(c.mode===ca||c.mode===Z?256:0),(0===o&&0===p||b===A)&&xa===D&&(xa=J),xa)}function n(a){if(!a||!a.state)return G;var b=a.state;return b.window&&(b.window=null),a.state=null,D}function o(a,b){var c;return a&&a.state?(c=a.state,0===(2&c.wrap)?G:(c.head=b,b.done=!1,D)):G}function p(a,b){var c,d,e,f=b.length;return a&&a.state?(c=a.state,0!==c.wrap&&c.mode!==V?G:c.mode===V&&(d=1,d=t(d,b,f,0),d!==c.check)?H:(e=l(a,b,f,f))?(c.mode=na,I):(c.havedict=1,D)):G}var q,r,s=a("../utils/common"),t=a("./adler32"),u=a("./crc32"),v=a("./inffast"),w=a("./inftrees"),x=0,y=1,z=2,A=4,B=5,C=6,D=0,E=1,F=2,G=-2,H=-3,I=-4,J=-5,K=8,L=1,M=2,N=3,O=4,P=5,Q=6,R=7,S=8,T=9,U=10,V=11,W=12,X=13,Y=14,Z=15,$=16,_=17,aa=18,ba=19,ca=20,da=21,ea=22,fa=23,ga=24,ha=25,ia=26,ja=27,ka=28,la=29,ma=30,na=31,oa=32,pa=852,qa=592,ra=15,sa=ra,ta=!0;c.inflateReset=g,c.inflateReset2=h,c.inflateResetKeep=f,c.inflateInit=j,c.inflateInit2=i,c.inflate=m,c.inflateEnd=n,c.inflateGetHeader=o,c.inflateSetDictionary=p,c.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":62,"./adler32":64,"./crc32":66,"./inffast":69,"./inftrees":71}],71:[function(a,b,c){"use strict";var d=a("../utils/common"),e=15,f=852,g=592,h=0,i=1,j=2,k=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],l=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],m=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],n=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];b.exports=function(a,b,c,o,p,q,r,s){var t,u,v,w,x,y,z,A,B,C=s.bits,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=null,O=0,P=new d.Buf16(e+1),Q=new d.Buf16(e+1),R=null,S=0;for(D=0;D<=e;D++)P[D]=0;for(E=0;E<o;E++)P[b[c+E]]++;for(H=C,G=e;G>=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;F<G&&0===P[F];F++);for(H<F&&(H=F),K=1,D=1;D<=e;D++)if(K<<=1,K-=P[D],K<0)return-1;if(K>0&&(a===h||1!==G))return-1;for(Q[1]=0,D=1;D<e;D++)Q[D+1]=Q[D]+P[D];for(E=0;E<o;E++)0!==b[c+E]&&(r[Q[b[c+E]]++]=E);if(a===h?(N=R=r,y=19):a===i?(N=k,O-=257,R=l,S-=257,y=256):(N=m,R=n,y=-1),M=0,E=0,D=F,x=q,I=H,J=0,v=-1,L=1<<H,w=L-1,a===i&&L>f||a===j&&L>g)return 1;for(;;){z=D-J,r[E]<y?(A=0,B=r[E]):r[E]>y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<<D-J,u=1<<I,F=u;do u-=t,p[x+(M>>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<<D-1;M&t;)t>>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[c+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<<I;I+J<G&&(K-=P[I+J],!(K<=0));)I++,K<<=1;if(L+=1<<I,a===i&&L>f||a===j&&L>g)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},{"../utils/common":62}],72:[function(a,b,c){"use strict";b.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],73:[function(a,b,c){"use strict";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length}function f(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b}function g(a){return a<256?ia[a]:ia[256+(a>>>7)]}function h(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function i(a,b,c){a.bi_valid>X-c?(a.bi_buf|=b<<a.bi_valid&65535,h(a,a.bi_buf),a.bi_buf=b>>X-a.bi_valid,a.bi_valid+=c-X):(a.bi_buf|=b<<a.bi_valid&65535,a.bi_valid+=c)}function j(a,b,c){i(a,c[2*b],c[2*b+1])}function k(a,b){var c=0;do c|=1&a,a>>>=1,c<<=1;while(--b>0);return c>>>1}function l(a){16===a.bi_valid?(h(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function m(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;f<=W;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,
+c=a.heap_max+1;c<V;c++)d=a.heap[c],f=i[2*i[2*d+1]+1]+1,f>o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function n(a,b,c){var d,e,f=new Array(W+1),g=0;for(d=1;d<=W;d++)f[d]=g=g+c[d-1]<<1;for(e=0;e<=b;e++){var h=a[2*e+1];0!==h&&(a[2*e]=k(f[h]++,h))}}function o(){var a,b,c,d,f,g=new Array(W+1);for(c=0,d=0;d<Q-1;d++)for(ka[d]=c,a=0;a<1<<ba[d];a++)ja[c++]=d;for(ja[c-1]=d,f=0,d=0;d<16;d++)for(la[d]=f,a=0;a<1<<ca[d];a++)ia[f++]=d;for(f>>=7;d<T;d++)for(la[d]=f<<7,a=0;a<1<<ca[d]-7;a++)ia[256+f++]=d;for(b=0;b<=W;b++)g[b]=0;for(a=0;a<=143;)ga[2*a+1]=8,a++,g[8]++;for(;a<=255;)ga[2*a+1]=9,a++,g[9]++;for(;a<=279;)ga[2*a+1]=7,a++,g[7]++;for(;a<=287;)ga[2*a+1]=8,a++,g[8]++;for(n(ga,S+1,g),a=0;a<T;a++)ha[2*a+1]=5,ha[2*a]=k(a,5);ma=new e(ga,ba,R+1,S,W),na=new e(ha,ca,0,T,W),oa=new e(new Array(0),da,0,U,Y)}function p(a){var b;for(b=0;b<S;b++)a.dyn_ltree[2*b]=0;for(b=0;b<T;b++)a.dyn_dtree[2*b]=0;for(b=0;b<U;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*Z]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function q(a){a.bi_valid>8?h(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function r(a,b,c,d){q(a),d&&(h(a,c),h(a,~c)),G.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function s(a,b,c,d){var e=2*b,f=2*c;return a[e]<a[f]||a[e]===a[f]&&d[b]<=d[c]}function t(a,b,c){for(var d=a.heap[c],e=c<<1;e<=a.heap_len&&(e<a.heap_len&&s(b,a.heap[e+1],a.heap[e],a.depth)&&e++,!s(b,d,a.heap[e],a.depth));)a.heap[c]=a.heap[e],c=e,e<<=1;a.heap[c]=d}function u(a,b,c){var d,e,f,h,k=0;if(0!==a.last_lit)do d=a.pending_buf[a.d_buf+2*k]<<8|a.pending_buf[a.d_buf+2*k+1],e=a.pending_buf[a.l_buf+k],k++,0===d?j(a,e,b):(f=ja[e],j(a,f+R+1,b),h=ba[f],0!==h&&(e-=ka[f],i(a,e,h)),d--,f=g(d),j(a,f,c),h=ca[f],0!==h&&(d-=la[f],i(a,d,h)));while(k<a.last_lit);j(a,Z,b)}function v(a,b){var c,d,e,f=b.dyn_tree,g=b.stat_desc.static_tree,h=b.stat_desc.has_stree,i=b.stat_desc.elems,j=-1;for(a.heap_len=0,a.heap_max=V,c=0;c<i;c++)0!==f[2*c]?(a.heap[++a.heap_len]=j=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)e=a.heap[++a.heap_len]=j<2?++j:0,f[2*e]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=j,c=a.heap_len>>1;c>=1;c--)t(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],t(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,t(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],m(a,b),n(f,j,a.bl_count)}function w(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;d<=c;d++)e=g,g=b[2*(d+1)+1],++h<i&&e===g||(h<j?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[2*$]++):h<=10?a.bl_tree[2*_]++:a.bl_tree[2*aa]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function x(a,b,c){var d,e,f=-1,g=b[1],h=0,k=7,l=4;for(0===g&&(k=138,l=3),d=0;d<=c;d++)if(e=g,g=b[2*(d+1)+1],!(++h<k&&e===g)){if(h<l){do j(a,e,a.bl_tree);while(0!==--h)}else 0!==e?(e!==f&&(j(a,e,a.bl_tree),h--),j(a,$,a.bl_tree),i(a,h-3,2)):h<=10?(j(a,_,a.bl_tree),i(a,h-3,3)):(j(a,aa,a.bl_tree),i(a,h-11,7));h=0,f=e,0===g?(k=138,l=3):e===g?(k=6,l=3):(k=7,l=4)}}function y(a){var b;for(w(a,a.dyn_ltree,a.l_desc.max_code),w(a,a.dyn_dtree,a.d_desc.max_code),v(a,a.bl_desc),b=U-1;b>=3&&0===a.bl_tree[2*ea[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function z(a,b,c,d){var e;for(i(a,b-257,5),i(a,c-1,5),i(a,d-4,4),e=0;e<d;e++)i(a,a.bl_tree[2*ea[e]+1],3);x(a,a.dyn_ltree,b-1),x(a,a.dyn_dtree,c-1)}function A(a){var b,c=4093624447;for(b=0;b<=31;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return I;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return J;for(b=32;b<R;b++)if(0!==a.dyn_ltree[2*b])return J;return I}function B(a){pa||(o(),pa=!0),a.l_desc=new f(a.dyn_ltree,ma),a.d_desc=new f(a.dyn_dtree,na),a.bl_desc=new f(a.bl_tree,oa),a.bi_buf=0,a.bi_valid=0,p(a)}function C(a,b,c,d){i(a,(L<<1)+(d?1:0),3),r(a,b,c,!0)}function D(a){i(a,M<<1,3),j(a,Z,ga),l(a)}function E(a,b,c,d){var e,f,g=0;a.level>0?(a.strm.data_type===K&&(a.strm.data_type=A(a)),v(a,a.l_desc),v(a,a.d_desc),g=y(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,f<=e&&(e=f)):e=f=c+5,c+4<=e&&b!==-1?C(a,b,c,d):a.strategy===H||f===e?(i(a,(M<<1)+(d?1:0),3),u(a,ga,ha)):(i(a,(N<<1)+(d?1:0),3),z(a,a.l_desc.max_code+1,a.d_desc.max_code+1,g+1),u(a,a.dyn_ltree,a.dyn_dtree)),p(a),d&&q(a)}function F(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(ja[c]+R+1)]++,a.dyn_dtree[2*g(b)]++),a.last_lit===a.lit_bufsize-1}var G=a("../utils/common"),H=4,I=0,J=1,K=2,L=0,M=1,N=2,O=3,P=258,Q=29,R=256,S=R+1+Q,T=30,U=19,V=2*S+1,W=15,X=16,Y=7,Z=256,$=16,_=17,aa=18,ba=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ca=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],da=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ea=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],fa=512,ga=new Array(2*(S+2));d(ga);var ha=new Array(2*T);d(ha);var ia=new Array(fa);d(ia);var ja=new Array(P-O+1);d(ja);var ka=new Array(Q);d(ka);var la=new Array(T);d(la);var ma,na,oa,pa=!1;c._tr_init=B,c._tr_stored_block=C,c._tr_flush_block=E,c._tr_tally=F,c._tr_align=D},{"../utils/common":62}],74:[function(a,b,c){"use strict";function d(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}b.exports=d},{}]},{},[10])(10)});
\ No newline at end of file
diff --git a/apidocs/1.20/member-search-index.js b/apidocs/1.20/member-search-index.js
new file mode 100644
index 00000000..28bfb1fb
--- /dev/null
+++ b/apidocs/1.20/member-search-index.js
@@ -0,0 +1 @@
+memberSearchIndex = [{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"AbstractMultivaluedMap(Map<K, List<V>>)","url":"%3Cinit%3E(java.util.Map)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"add(K, V)","url":"add(K,V)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedMap","l":"add(K, V)","url":"add(K,V)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"addAll(K, List<V>)","url":"addAll(K,java.util.List)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedMap","l":"addAll(K, List<V>)","url":"addAll(K,java.util.List)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"addAll(K, V...)","url":"addAll(K,V...)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedMap","l":"addAll(K, V...)","url":"addAll(K,V...)"},{"p":"javax.websocket.server","c":"ServerContainer","l":"addEndpoint(Class<?>)","url":"addEndpoint(java.lang.Class)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"addEndpoint(Class<?>)","url":"addEndpoint(java.lang.Class)"},{"p":"javax.websocket.server","c":"ServerContainer","l":"addEndpoint(ServerEndpointConfig)","url":"addEndpoint(javax.websocket.server.ServerEndpointConfig)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"addEndpoint(ServerEndpointConfig)","url":"addEndpoint(javax.websocket.server.ServerEndpointConfig)"},{"p":"org.glassfish.tyrus.core","c":"ErrorCollector","l":"addException(Exception)","url":"addException(java.lang.Exception)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"addFirst(K, V)","url":"addFirst(K,V)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedMap","l":"addFirst(K, V)","url":"addFirst(K,V)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedStringMap","l":"addFirstNull(List<String>)","url":"addFirstNull(java.util.List)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"addFirstNull(List<V>)","url":"addFirstNull(java.util.List)"},{"p":"javax.websocket","c":"Session","l":"addMessageHandler(Class<T>, MessageHandler.Partial<T>)","url":"addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)"},{"p":"org.glassfish.tyrus.core","c":"MessageHandlerManager","l":"addMessageHandler(Class<T>, MessageHandler.Partial<T>)","url":"addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"addMessageHandler(Class<T>, MessageHandler.Partial<T>)","url":"addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"addMessageHandler(Class<T>, MessageHandler.Partial<T>)","url":"addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)"},{"p":"javax.websocket","c":"Session","l":"addMessageHandler(Class<T>, MessageHandler.Whole<T>)","url":"addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)"},{"p":"org.glassfish.tyrus.core","c":"MessageHandlerManager","l":"addMessageHandler(Class<T>, MessageHandler.Whole<T>)","url":"addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"addMessageHandler(Class<T>, MessageHandler.Whole<T>)","url":"addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"addMessageHandler(Class<T>, MessageHandler.Whole<T>)","url":"addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)"},{"p":"javax.websocket","c":"Session","l":"addMessageHandler(MessageHandler)","url":"addMessageHandler(javax.websocket.MessageHandler)"},{"p":"org.glassfish.tyrus.core","c":"MessageHandlerManager","l":"addMessageHandler(MessageHandler)","url":"addMessageHandler(javax.websocket.MessageHandler)"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"addMessageHandler(MessageHandler)","url":"addMessageHandler(javax.websocket.MessageHandler)"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"addMessageHandler(MessageHandler)","url":"addMessageHandler(javax.websocket.MessageHandler)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedStringMap","l":"addNull(List<String>)","url":"addNull(java.util.List)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"addNull(List<V>)","url":"addNull(java.util.List)"},{"p":"javax.websocket","c":"ClientEndpointConfig.Configurator","l":"afterResponse(HandshakeResponse)","url":"afterResponse(javax.websocket.HandshakeResponse)"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.TracingType","l":"ALL"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders","l":"ALL"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders","l":"ALL_INSTANCES"},{"p":"org.glassfish.tyrus.spi","c":"ClientEngine.ClientUpgradeStatus","l":"ANOTHER_UPGRADE_REQUEST_REQUIRED"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"Application","l":"any"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"appendBuffers(ByteBuffer, ByteBuffer, int, int)","url":"appendBuffers(java.nio.ByteBuffer,java.nio.ByteBuffer,int,int)"},{"p":"org.glassfish.tyrus.core","c":"DebugContext","l":"appendLogMessage(Logger, Level, DebugContext.Type, Object...)","url":"appendLogMessage(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Object...)"},{"p":"org.glassfish.tyrus.core","c":"DebugContext","l":"appendLogMessageWithThrowable(Logger, Level, DebugContext.Type, Throwable, Object...)","url":"appendLogMessageWithThrowable(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Throwable,java.lang.Object...)"},{"p":"org.glassfish.tyrus.core","c":"DebugContext","l":"appendStandardOutputMessage(DebugContext.Type, String)","url":"appendStandardOutputMessage(org.glassfish.tyrus.core.DebugContext.Type,java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"DebugContext","l":"appendTraceMessage(Logger, Level, DebugContext.Type, Object...)","url":"appendTraceMessage(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Object...)"},{"p":"org.glassfish.tyrus.core","c":"DebugContext","l":"appendTraceMessageWithThrowable(Logger, Level, DebugContext.Type, Throwable, Object...)","url":"appendTraceMessageWithThrowable(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Throwable,java.lang.Object...)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"APPLICATION_DATA_TOO_LONG(Object)","url":"APPLICATION_DATA_TOO_LONG(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.monitoring","c":"ApplicationEventListener","l":"APPLICATION_EVENT_LISTENER"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"Application","l":"Application()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine.TyrusWebSocketEngineBuilder","l":"applicationEventListener(ApplicationEventListener)","url":"applicationEventListener(org.glassfish.tyrus.core.monitoring.ApplicationEventListener)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ARGUMENT_NOT_NULL(Object)","url":"ARGUMENT_NOT_NULL(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern","l":"asClosed(PathPattern)","url":"asClosed(org.glassfish.tyrus.core.uri.internal.PathPattern)"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.RemoteEndpointType","l":"ASYNC"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"asyncConnectToServer(Class<?>, URI)","url":"asyncConnectToServer(java.lang.Class,java.net.URI)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"asyncConnectToServer(Class<?>, URI)","url":"asyncConnectToServer(java.lang.Class,java.net.URI)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"asyncConnectToServer(Class<? extends Endpoint>, ClientEndpointConfig, URI)","url":"asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"asyncConnectToServer(Class<? extends Endpoint>, ClientEndpointConfig, URI)","url":"asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"asyncConnectToServer(Endpoint, ClientEndpointConfig, URI)","url":"asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"asyncConnectToServer(Endpoint, ClientEndpointConfig, URI)","url":"asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"asyncConnectToServer(Object, URI)","url":"asyncConnectToServer(java.lang.Object,java.net.URI)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"asyncConnectToServer(Object, URI)","url":"asyncConnectToServer(java.lang.Object,java.net.URI)"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"AUTH_CONFIG"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"AUTHENTICATION_CREATE_AUTH_HEADER_FAILED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"AUTHENTICATION_CREDENTIALS_MISSING()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"AUTHENTICATION_DIGEST_NO_SUCH_ALG()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"AUTHENTICATION_DIGEST_QOP_UNSUPPORTED(Object)","url":"AUTHENTICATION_DIGEST_QOP_UNSUPPORTED(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"AUTHENTICATION_FAILED()"},{"p":"org.glassfish.tyrus.client.auth","c":"AuthenticationException","l":"AuthenticationException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.glassfish.tyrus.client.auth","c":"Authenticator","l":"Authenticator()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"AUTHORITY"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"AUTHORIZATION"},{"p":"org.glassfish.tyrus.core","c":"BaseContainer","l":"BaseContainer()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.RemoteEndpointType","l":"BASIC"},{"p":"javax.websocket","c":"ClientEndpointConfig.Configurator","l":"beforeRequest(Map<String, List<String>>)","url":"beforeRequest(java.util.Map)"},{"p":"org.glassfish.tyrus.core.frame","c":"TyrusFrame.FrameType","l":"BINARY"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.MessageType","l":"BINARY"},{"p":"org.glassfish.tyrus.core.frame","c":"TyrusFrame.FrameType","l":"BINARY_CONTINUATION"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.MessageType","l":"BINARY_CONTINUATION"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"BINARY_MESSAGE_HANDLER_NOT_FOUND(Object)","url":"BINARY_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"BINARY_MESSAGE_OUT_OF_ORDER(Object)","url":"BINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.frame","c":"BinaryFrame","l":"BinaryFrame(byte[], boolean, boolean)","url":"%3Cinit%3E(byte[],boolean,boolean)"},{"p":"org.glassfish.tyrus.core.frame","c":"BinaryFrame","l":"BinaryFrame(Frame, boolean)","url":"%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,boolean)"},{"p":"org.glassfish.tyrus.core.frame","c":"BinaryFrame","l":"BinaryFrame(Frame)","url":"%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.BooleanDecoder","l":"BooleanDecoder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.RemoteEndpointType","l":"BROADCAST"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"broadcast(ByteBuffer)","url":"broadcast(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"broadcast(String)","url":"broadcast(java.lang.String)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"broadcastBinary(String, byte[])","url":"broadcastBinary(java.lang.String,byte[])"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"broadcastText(String, String)","url":"broadcastText(java.lang.String,java.lang.String)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"BUFFER_OVERFLOW()"},{"p":"javax.websocket","c":"ClientEndpointConfig.Builder","l":"build()"},{"p":"javax.websocket.server","c":"ServerEndpointConfig.Builder","l":"build()"},{"p":"org.glassfish.tyrus.client.auth","c":"AuthConfig.Builder","l":"build()"},{"p":"org.glassfish.tyrus.core","c":"RequestContext.Builder","l":"build()"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfig.Builder","l":"build()"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine.TyrusWebSocketEngineBuilder","l":"build()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame.Builder","l":"build()"},{"p":"org.glassfish.tyrus.client.auth","c":"AuthConfig","l":"builder()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"builder()"},{"p":"org.glassfish.tyrus.core","c":"RequestContext.Builder","l":"Builder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame.Builder","l":"Builder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"builder(Frame)","url":"builder(org.glassfish.tyrus.core.frame.Frame)"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame.Builder","l":"Builder(Frame)","url":"%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"builder(WebSocketContainer)","url":"builder(javax.websocket.WebSocketContainer)"},{"p":"org.glassfish.tyrus.core","c":"OsgiRegistry","l":"bundleChanged(BundleEvent)","url":"bundleChanged(org.osgi.framework.BundleEvent)"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.ByteDecoder","l":"ByteDecoder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper.ClassTypePair","l":"c"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper.TypeClassPair","l":"c"},{"p":"org.glassfish.tyrus.core","c":"TyrusFuture","l":"cancel(boolean)"},{"p":"org.glassfish.tyrus.spi","c":"CompletionHandler","l":"cancelled()"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"CANNOT_ACCEPT"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"CANNOT_ACCEPT"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern.RightHandPath","l":"capturingZeroOrMoreSegments"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern.RightHandPath","l":"capturingZeroSegments"},{"p":"org.glassfish.tyrus.gf.cdi","c":"CdiComponentProvider","l":"CdiComponentProvider()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.CharacterDecoder","l":"CharacterDecoder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"checkNotNull(T, String)","url":"checkNotNull(T,java.lang.String)"},{"p":"javax.websocket.server","c":"ServerEndpointConfig.Configurator","l":"checkOrigin(String)","url":"checkOrigin(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfigurator","l":"checkOrigin(String)","url":"checkOrigin(java.lang.String)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(Object, Object)","url":"CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"CLASS_CHECKER_FORBIDDEN_RETURN_TYPE(Object, Object)","url":"CLASS_CHECKER_FORBIDDEN_RETURN_TYPE(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(Object, Object)","url":"CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM(Object, Object, Object)","url":"CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(Object, Object, Object)","url":"CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"CLASS_CHECKER_MANDATORY_PARAM_MISSING(Object, Object)","url":"CLASS_CHECKER_MANDATORY_PARAM_MISSING(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(Object, Object)","url":"CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"CLASS_NOT_INSTANTIATED(Object)","url":"CLASS_NOT_INSTANTIATED(java.lang.Object)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"classForName(String, ClassLoader)","url":"classForName(java.lang.String,java.lang.ClassLoader)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"classForName(String)","url":"classForName(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"classForNameWithException(String, ClassLoader)","url":"classForNameWithException(java.lang.String,java.lang.ClassLoader)"},{"p":"org.glassfish.tyrus.core","c":"OsgiRegistry","l":"classForNameWithException(String)","url":"classForNameWithException(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"classForNameWithException(String)","url":"classForNameWithException(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"classForNameWithExceptionPEA(String, ClassLoader)","url":"classForNameWithExceptionPEA(java.lang.String,java.lang.ClassLoader)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"classForNameWithExceptionPEA(String)","url":"classForNameWithExceptionPEA(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper.ClassTypePair","l":"ClassTypePair(Class, Type)","url":"%3Cinit%3E(java.lang.Class,java.lang.reflect.Type)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper.ClassTypePair","l":"ClassTypePair(Class)","url":"%3Cinit%3E(java.lang.Class)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"clear()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"CLIENT_CANNOT_CONNECT(Object)","url":"CLIENT_CANNOT_CONNECT(java.lang.Object)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"ClientManager()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"clientMode"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"ClientProperties()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.frame","c":"TyrusFrame.FrameType","l":"CLOSE"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.MessageType","l":"CLOSE"},{"p":"javax.websocket","c":"Session","l":"close()"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyWriter","l":"close()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"close()"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"close()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"close()"},{"p":"javax.websocket","c":"Session","l":"close(CloseReason)","url":"close(javax.websocket.CloseReason)"},{"p":"org.glassfish.tyrus.core","c":"TyrusRemoteEndpoint","l":"close(CloseReason)","url":"close(javax.websocket.CloseReason)"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"close(CloseReason)","url":"close(javax.websocket.CloseReason)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"close(CloseReason)","url":"close(javax.websocket.CloseReason)"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"close(CloseReason)","url":"close(javax.websocket.CloseReason)"},{"p":"org.glassfish.tyrus.spi","c":"Connection","l":"close(CloseReason)","url":"close(javax.websocket.CloseReason)"},{"p":"org.glassfish.tyrus.spi","c":"Connection.CloseListener","l":"close(CloseReason)","url":"close(javax.websocket.CloseReason)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"close(int, String)","url":"close(int,java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"close(int, String)","url":"close(int,java.lang.String)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"close(String, CloseReason)","url":"close(java.lang.String,javax.websocket.CloseReason)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"close(String)","url":"close(java.lang.String)"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"CLOSED_ABNORMALLY"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"CLOSED_ABNORMALLY"},{"p":"org.glassfish.tyrus.core.frame","c":"CloseFrame","l":"CloseFrame(CloseReason)","url":"%3Cinit%3E(javax.websocket.CloseReason)"},{"p":"org.glassfish.tyrus.core.frame","c":"CloseFrame","l":"CloseFrame(Frame)","url":"%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)"},{"p":"javax.websocket","c":"CloseReason","l":"CloseReason(CloseReason.CloseCode, String)","url":"%3Cinit%3E(javax.websocket.CloseReason.CloseCode,java.lang.String)"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"CLUSTER_CONNECTION_ID_HEADER"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"CLUSTER_CONTEXT"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"ClusterContext()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine.TyrusWebSocketEngineBuilder","l":"clusterContext(ClusterContext)","url":"clusterContext(org.glassfish.tyrus.core.cluster.ClusterContext)"},{"p":"org.glassfish.tyrus.core.coder","c":"CoderAdapter","l":"CoderAdapter()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.coder","c":"CoderWrapper","l":"CoderWrapper(Class<? extends T>, Class<?>)","url":"%3Cinit%3E(java.lang.Class,java.lang.Class)"},{"p":"org.glassfish.tyrus.core.coder","c":"CoderWrapper","l":"CoderWrapper(T, Class<?>)","url":"%3Cinit%3E(T,java.lang.Class)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern","l":"COMPARATOR"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"COMPARATOR"},{"p":"org.glassfish.tyrus.spi","c":"CompletionHandler","l":"completed(E)"},{"p":"org.glassfish.tyrus.spi","c":"CompletionHandler","l":"CompletionHandler()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"COMPONENT_PROVIDER_NOT_FOUND(Object)","url":"COMPONENT_PROVIDER_NOT_FOUND(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"COMPONENT_PROVIDER_THREW_EXCEPTION(Object)","url":"COMPONENT_PROVIDER_THREW_EXCEPTION(java.lang.Object)"},{"p":"org.glassfish.tyrus.core","c":"ComponentProvider","l":"ComponentProvider()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"ComponentProviderService","l":"ComponentProviderService(ComponentProviderService)","url":"%3Cinit%3E(org.glassfish.tyrus.core.ComponentProviderService)"},{"p":"org.glassfish.tyrus.core","c":"ErrorCollector","l":"composeComprehensiveException()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper.DeclaringClassInterfacePair","l":"concreteClass"},{"p":"javax.websocket","c":"ClientEndpoint","l":"configurator()"},{"p":"javax.websocket.server","c":"ServerEndpoint","l":"configurator()"},{"p":"javax.websocket","c":"ClientEndpointConfig.Configurator","l":"Configurator()","url":"%3Cinit%3E()"},{"p":"javax.websocket.server","c":"ServerEndpointConfig.Configurator","l":"Configurator()","url":"%3Cinit%3E()"},{"p":"javax.websocket","c":"ClientEndpointConfig.Builder","l":"configurator(ClientEndpointConfig.Configurator)","url":"configurator(javax.websocket.ClientEndpointConfig.Configurator)"},{"p":"javax.websocket.server","c":"ServerEndpointConfig.Builder","l":"configurator(ServerEndpointConfig.Configurator)","url":"configurator(javax.websocket.server.ServerEndpointConfig.Configurator)"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfig.Builder","l":"configurator(ServerEndpointConfig.Configurator)","url":"configurator(javax.websocket.server.ServerEndpointConfig.Configurator)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"configure(SSLEngine)","url":"configure(javax.net.ssl.SSLEngine)"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyClientSocket","l":"connect()"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"CONNECTION"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"CONNECTION_HAS_BEEN_CLOSED()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"CONNECTION_ID"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"CONNECTION_NULL()"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"connectToServer(Class, URI)","url":"connectToServer(java.lang.Class,java.net.URI)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"connectToServer(Class, URI)","url":"connectToServer(java.lang.Class,java.net.URI)"},{"p":"javax.websocket","c":"WebSocketContainer","l":"connectToServer(Class<?>, URI)","url":"connectToServer(java.lang.Class,java.net.URI)"},{"p":"javax.websocket","c":"WebSocketContainer","l":"connectToServer(Class<? extends Endpoint>, ClientEndpointConfig, URI)","url":"connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"connectToServer(Class<? extends Endpoint>, ClientEndpointConfig, URI)","url":"connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"connectToServer(Class<? extends Endpoint>, ClientEndpointConfig, URI)","url":"connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"},{"p":"javax.websocket","c":"WebSocketContainer","l":"connectToServer(Endpoint, ClientEndpointConfig, URI)","url":"connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"connectToServer(Endpoint, ClientEndpointConfig, URI)","url":"connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"connectToServer(Endpoint, ClientEndpointConfig, URI)","url":"connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"},{"p":"javax.websocket","c":"WebSocketContainer","l":"connectToServer(Object, URI)","url":"connectToServer(java.lang.Object,java.net.URI)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"connectToServer(Object, URI)","url":"connectToServer(java.lang.Object,java.net.URI)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"connectToServer(Object, URI)","url":"connectToServer(java.lang.Object,java.net.URI)"},{"p":"javax.websocket","c":"ContainerProvider","l":"ContainerProvider()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"StrictUtf8","l":"contains(Charset)","url":"contains(java.nio.charset.Charset)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"containsKey(Object)","url":"containsKey(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"containsValue(Object)","url":"containsValue(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"contextualEncode(String, UriComponent.Type, boolean)","url":"contextualEncode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"contextualEncode(String, UriComponent.Type)","url":"contextualEncode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"CONTROL_FRAME_FRAGMENTED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"CONTROL_FRAME_LENGTH()"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"copy()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"copy()"},{"p":"javax.websocket","c":"ClientEndpointConfig.Builder","l":"create()"},{"p":"org.glassfish.tyrus.client.auth","c":"AuthConfig.Builder","l":"create()"},{"p":"org.glassfish.tyrus.core","c":"ComponentProviderService","l":"create()"},{"p":"org.glassfish.tyrus.core","c":"RequestContext.Builder","l":"create()"},{"p":"javax.websocket.server","c":"ServerEndpointConfig.Builder","l":"create(Class<?>, String)","url":"create(java.lang.Class,java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfig.Builder","l":"create(Class<?>, String)","url":"create(java.lang.Class,java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"ComponentProvider","l":"create(Class<T>)","url":"create(java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"DefaultComponentProvider","l":"create(Class<T>)","url":"create(java.lang.Class)"},{"p":"org.glassfish.tyrus.gf.cdi","c":"CdiComponentProvider","l":"create(Class<T>)","url":"create(java.lang.Class)"},{"p":"org.glassfish.tyrus.gf.ejb","c":"EjbComponentProvider","l":"create(Class<T>)","url":"create(java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"create(CloseReason.CloseCode, String)","url":"create(javax.websocket.CloseReason.CloseCode,java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"RequestContext.Builder","l":"create(RequestContext)","url":"create(org.glassfish.tyrus.core.RequestContext)"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"ObjectFactory","l":"createApplication()"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder.DefaultServiceIteratorProvider","l":"createClassIterator(Class<T>, String, ClassLoader, boolean)","url":"createClassIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder.ServiceIteratorProvider","l":"createClassIterator(Class<T>, String, ClassLoader, boolean)","url":"createClassIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"createClient()"},{"p":"org.glassfish.tyrus.core","c":"ComponentProviderService","l":"createClient()"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"createClient(String, WebSocketContainer)","url":"createClient(java.lang.String,javax.websocket.WebSocketContainer)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"createClient(String)","url":"createClient(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"createClient(WebSocketContainer)","url":"createClient(javax.websocket.WebSocketContainer)"},{"p":"org.glassfish.tyrus.core","c":"Handshake","l":"createClientHandshake(RequestContext)","url":"createClientHandshake(org.glassfish.tyrus.core.RequestContext)"},{"p":"org.glassfish.tyrus.spi","c":"ClientEngine.ClientUpgradeInfo","l":"createConnection()"},{"p":"org.glassfish.tyrus.spi","c":"WebSocketEngine.UpgradeInfo","l":"createConnection(Writer, Connection.CloseListener)","url":"createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"createConnectionId()"},{"p":"org.glassfish.tyrus.container.grizzly.server","c":"GrizzlyServerContainer","l":"createContainer(Map<String, Object>)","url":"createContainer(java.util.Map)"},{"p":"org.glassfish.tyrus.spi","c":"ServerContainerFactory","l":"createContainer(Map<String, Object>)","url":"createContainer(java.util.Map)"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"ObjectFactory","l":"createEndpoint()"},{"p":"org.glassfish.tyrus.core","c":"Version","l":"createHandler(boolean, MaskingKeyGenerator)","url":"createHandler(boolean,org.glassfish.tyrus.core.MaskingKeyGenerator)"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder.DefaultServiceIteratorProvider","l":"createIterator(Class<T>, String, ClassLoader, boolean)","url":"createIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder.ServiceIteratorProvider","l":"createIterator(Class<T>, String, ClassLoader, boolean)","url":"createIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)"},{"p":"org.glassfish.tyrus.spi","c":"ServerContainerFactory","l":"createServerContainer()"},{"p":"org.glassfish.tyrus.spi","c":"ServerContainerFactory","l":"createServerContainer(Map<String, Object>)","url":"createServerContainer(java.util.Map)"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper","l":"createSessionForRemoteEndpoint(TyrusWebSocket, String, List<Extension>, DebugContext)","url":"createSessionForRemoteEndpoint(org.glassfish.tyrus.core.TyrusWebSocket,java.lang.String,java.util.List,org.glassfish.tyrus.core.DebugContext)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"createSessionId()"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"createSSLContext()"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"createSSLEngine(String)","url":"createSSLEngine(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"TyrusClientEngine","l":"createUpgradeRequest(ClientEngine.TimeoutHandler)","url":"createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)"},{"p":"org.glassfish.tyrus.spi","c":"ClientEngine","l":"createUpgradeRequest(ClientEngine.TimeoutHandler)","url":"createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"createURI(Map<String, String>)","url":"createURI(java.util.Map)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"createURI(String, String, String, String, String, String, String, String, Map<String, ?>, boolean, boolean)","url":"createURI(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.Map,boolean,boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"createURI(String, String, String, String, String, String, String, String, Object[], boolean, boolean)","url":"createURI(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Object[],boolean,boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"createURI(String...)","url":"createURI(java.lang.String...)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"createURI(String[], int, int)","url":"createURI(java.lang.String[],int,int)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"createURIWithStringValues(String, String, String, String, String, String, String, String, Map<String, ?>, boolean, boolean)","url":"createURIWithStringValues(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.Map,boolean,boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"createURIWithStringValues(String, String, String, String, String, String, String, String, String[], boolean, boolean)","url":"createURIWithStringValues(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],boolean,boolean)"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"CREDENTIALS"},{"p":"org.glassfish.tyrus.client.auth","c":"Credentials","l":"Credentials(String, byte[])","url":"%3Cinit%3E(java.lang.String,byte[])"},{"p":"org.glassfish.tyrus.client.auth","c":"Credentials","l":"Credentials(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"DATA_UNEXPECTED_LENGTH(Object, Object)","url":"DATA_UNEXPECTED_LENGTH(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core","c":"DebugContext","l":"DebugContext()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"DebugContext","l":"DebugContext(DebugContext.TracingThreshold)","url":"%3Cinit%3E(org.glassfish.tyrus.core.DebugContext.TracingThreshold)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper.DeclaringClassInterfacePair","l":"declaringClass"},{"p":"javax.websocket","c":"Decoder.Binary","l":"decode(ByteBuffer)","url":"decode(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core.coder","c":"InputStreamDecoder","l":"decode(ByteBuffer)","url":"decode(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core.coder","c":"NoOpByteArrayCoder","l":"decode(ByteBuffer)","url":"decode(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core.coder","c":"NoOpByteBufferCoder","l":"decode(ByteBuffer)","url":"decode(java.nio.ByteBuffer)"},{"p":"javax.websocket","c":"Decoder.BinaryStream","l":"decode(InputStream)","url":"decode(java.io.InputStream)"},{"p":"javax.websocket","c":"Decoder.TextStream","l":"decode(Reader)","url":"decode(java.io.Reader)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"decode(String, UriComponent.Type)","url":"decode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)"},{"p":"javax.websocket","c":"Decoder.Text","l":"decode(String)","url":"decode(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"NoOpTextCoder","l":"decode(String)","url":"decode(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.BooleanDecoder","l":"decode(String)","url":"decode(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.ByteDecoder","l":"decode(String)","url":"decode(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.CharacterDecoder","l":"decode(String)","url":"decode(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.DoubleDecoder","l":"decode(String)","url":"decode(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.FloatDecoder","l":"decode(String)","url":"decode(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.IntegerDecoder","l":"decode(String)","url":"decode(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.LongDecoder","l":"decode(String)","url":"decode(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.ShortDecoder","l":"decode(String)","url":"decode(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"ReaderDecoder","l":"decode(String)","url":"decode(java.lang.String)"},{"p":"javax.websocket","c":"DecodeException","l":"DecodeException(ByteBuffer, String, Throwable)","url":"%3Cinit%3E(java.nio.ByteBuffer,java.lang.String,java.lang.Throwable)"},{"p":"javax.websocket","c":"DecodeException","l":"DecodeException(ByteBuffer, String)","url":"%3Cinit%3E(java.nio.ByteBuffer,java.lang.String)"},{"p":"javax.websocket","c":"DecodeException","l":"DecodeException(String, String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.Throwable)"},{"p":"javax.websocket","c":"DecodeException","l":"DecodeException(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"decodeMatrix(String, boolean)","url":"decodeMatrix(java.lang.String,boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"decodePath(String, boolean)","url":"decodePath(java.lang.String,boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"decodePath(URI, boolean)","url":"decodePath(java.net.URI,boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"decodePathSegment(List<PathSegment>, String, boolean)","url":"decodePathSegment(java.util.List,java.lang.String,boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"decodeQuery(String, boolean, boolean)","url":"decodeQuery(java.lang.String,boolean,boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"decodeQuery(String, boolean)","url":"decodeQuery(java.lang.String,boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"decodeQuery(URI, boolean)","url":"decodeQuery(java.net.URI,boolean)"},{"p":"javax.websocket","c":"ClientEndpoint","l":"decoders()"},{"p":"javax.websocket.server","c":"ServerEndpoint","l":"decoders()"},{"p":"javax.websocket","c":"ClientEndpointConfig.Builder","l":"decoders(List<Class<? extends Decoder>>)","url":"decoders(java.util.List)"},{"p":"javax.websocket.server","c":"ServerEndpointConfig.Builder","l":"decoders(List<Class<? extends Decoder>>)","url":"decoders(java.util.List)"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfig.Builder","l":"decoders(List<Class<? extends Decoder>>)","url":"decoders(java.util.List)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"DEFAULT_CONFIG"},{"p":"org.glassfish.tyrus.client","c":"TyrusClientEngine","l":"DEFAULT_INCOMING_BUFFER_SIZE"},{"p":"org.glassfish.tyrus.core","c":"DefaultComponentProvider","l":"DefaultComponentProvider()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"defaultConfig()"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder.DefaultServiceIteratorProvider","l":"DefaultServiceIteratorProvider()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"DEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR(Object, Object, Object)","url":"DEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(Object, Object, Object)","url":"DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"javax.websocket","c":"DeploymentException","l":"DeploymentException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.websocket","c":"DeploymentException","l":"DeploymentException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.websocket","c":"Decoder","l":"destroy()"},{"p":"javax.websocket","c":"Encoder","l":"destroy()"},{"p":"org.glassfish.tyrus.core.coder","c":"CoderAdapter","l":"destroy()"},{"p":"org.glassfish.tyrus.servlet","c":"TyrusHttpUpgradeHandler","l":"destroy()"},{"p":"org.glassfish.tyrus.core.extension","c":"ExtendedExtension","l":"destroy(ExtendedExtension.ExtensionContext)","url":"destroy(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)"},{"p":"org.glassfish.tyrus.core","c":"ComponentProvider","l":"destroy(Object)","url":"destroy(java.lang.Object)"},{"p":"org.glassfish.tyrus.core","c":"DefaultComponentProvider","l":"destroy(Object)","url":"destroy(java.lang.Object)"},{"p":"org.glassfish.tyrus.gf.cdi","c":"CdiComponentProvider","l":"destroy(Object)","url":"destroy(java.lang.Object)"},{"p":"org.glassfish.tyrus.gf.ejb","c":"EjbComponentProvider","l":"destroy(Object)","url":"destroy(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"destroyDistributedUserProperties(String)","url":"destroyDistributedUserProperties(java.lang.String)"},{"p":"org.glassfish.tyrus.client.auth","c":"AuthConfig.Builder","l":"disableProvidedBasicAuth()"},{"p":"org.glassfish.tyrus.client.auth","c":"AuthConfig.Builder","l":"disableProvidedDigestAuth()"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper","l":"doEncode(Session, Object)","url":"doEncode(javax.websocket.Session,java.lang.Object)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"doneDeployment()"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.DoubleDecoder","l":"DoubleDecoder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"Version","l":"DRAFT17"},{"p":"org.glassfish.tyrus.core.collection","c":"Values","l":"eager(Value<T>)","url":"eager(org.glassfish.tyrus.core.collection.Value)"},{"p":"org.glassfish.tyrus.gf.ejb","c":"EjbComponentProvider","l":"EjbComponentProvider()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"EMPTY"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"EMPTY"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern","l":"EMPTY_PATTERN"},{"p":"org.glassfish.tyrus.core.collection","c":"Values","l":"empty()"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"ENABLE_TRACING_HEADER"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"enabledCipherSuites"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"enabledProtocols"},{"p":"org.glassfish.tyrus.core.coder","c":"NoOpByteArrayCoder","l":"encode(byte[])"},{"p":"org.glassfish.tyrus.core.coder","c":"NoOpByteBufferCoder","l":"encode(ByteBuffer)","url":"encode(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core.coder","c":"ToStringEncoder","l":"encode(Object)","url":"encode(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"encode(String, UriComponent.Type, boolean)","url":"encode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"encode(String, UriComponent.Type)","url":"encode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)"},{"p":"org.glassfish.tyrus.core.coder","c":"NoOpTextCoder","l":"encode(String)","url":"encode(java.lang.String)"},{"p":"javax.websocket","c":"Encoder.BinaryStream","l":"encode(T, OutputStream)","url":"encode(T,java.io.OutputStream)"},{"p":"javax.websocket","c":"Encoder.TextStream","l":"encode(T, Writer)","url":"encode(T,java.io.Writer)"},{"p":"javax.websocket","c":"Encoder.Binary","l":"encode(T)"},{"p":"javax.websocket","c":"Encoder.Text","l":"encode(T)"},{"p":"javax.websocket","c":"EncodeException","l":"EncodeException(Object, String, Throwable)","url":"%3Cinit%3E(java.lang.Object,java.lang.String,java.lang.Throwable)"},{"p":"javax.websocket","c":"EncodeException","l":"EncodeException(Object, String)","url":"%3Cinit%3E(java.lang.Object,java.lang.String)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplateParser","l":"encodeLiteralCharacters(String)","url":"encodeLiteralCharacters(java.lang.String)"},{"p":"javax.websocket","c":"ClientEndpoint","l":"encoders()"},{"p":"javax.websocket.server","c":"ServerEndpoint","l":"encoders()"},{"p":"javax.websocket","c":"ClientEndpointConfig.Builder","l":"encoders(List<Class<? extends Encoder>>)","url":"encoders(java.util.List)"},{"p":"javax.websocket.server","c":"ServerEndpointConfig.Builder","l":"encoders(List<Class<? extends Encoder>>)","url":"encoders(java.util.List)"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfig.Builder","l":"encoders(List<Class<? extends Encoder>>)","url":"encoders(java.util.List)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"encodeTemplateNames(String)","url":"encodeTemplateNames(java.lang.String)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ENCODING_FAILED()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern","l":"END_OF_PATH_PATTERN"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"Application","l":"endpoint"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ENDPOINT_ANNOTATION_NOT_FOUND(Object, Object)","url":"ENDPOINT_ANNOTATION_NOT_FOUND(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ENDPOINT_EXCEPTION_FROM_ON_ERROR(Object)","url":"ENDPOINT_EXCEPTION_FROM_ON_ERROR(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG(Object, Object, Object, Object)","url":"ENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ENDPOINT_MULTIPLE_METHODS(Object, Object, Object, Object)","url":"ENDPOINT_MULTIPLE_METHODS(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ENDPOINT_MULTIPLE_SESSION_PARAM(Object)","url":"ENDPOINT_MULTIPLE_SESSION_PARAM(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ENDPOINT_UNHANDLED_EXCEPTION(Object)","url":"ENDPOINT_UNHANDLED_EXCEPTION(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ENDPOINT_UNKNOWN_PARAMS(Object, Object, Object)","url":"ENDPOINT_UNKNOWN_PARAMS(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ENDPOINT_WRONG_PARAMS(Object, Object)","url":"ENDPOINT_WRONG_PARAMS(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ENDPOINT_WRONG_PATH_PARAM(Object, Object)","url":"ENDPOINT_WRONG_PATH_PARAM(java.lang.Object,java.lang.Object)"},{"p":"javax.websocket","c":"Endpoint","l":"Endpoint()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"Endpoint","l":"Endpoint()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"endsWithSlash()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"entrySet()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyWriter","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.glassfish.tyrus.core","c":"TyrusExtension","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"equalsIgnoreValueOrder(MultivaluedMap<K, V>)","url":"equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedMap","l":"equalsIgnoreValueOrder(MultivaluedMap<K, V>)","url":"equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"EQUIVALENT_PATHS(Object, Object)","url":"EQUIVALENT_PATHS(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()"},{"p":"org.glassfish.tyrus.core","c":"StrictUtf8.Parser","l":"error()"},{"p":"org.glassfish.tyrus.core","c":"ErrorCollector","l":"ErrorCollector()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"BaseContainer.ShutDownCondition","l":"evaluate()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"EXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"TaskProcessor.Task","l":"execute()"},{"p":"org.glassfish.tyrus.core","c":"ExecutorServiceProvider","l":"ExecutorServiceProvider()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"EXTENSION_EXCEPTION(Object, Object)","url":"EXTENSION_EXCEPTION(java.lang.Object,java.lang.Object)"},{"p":"javax.websocket","c":"ClientEndpointConfig.Builder","l":"extensions(List<Extension>)","url":"extensions(java.util.List)"},{"p":"javax.websocket.server","c":"ServerEndpointConfig.Builder","l":"extensions(List<Extension>)","url":"extensions(java.util.List)"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfig.Builder","l":"extensions(List<Extension>)","url":"extensions(java.util.List)"},{"p":"org.glassfish.tyrus.spi","c":"CompletionHandler","l":"failed(Throwable)","url":"failed(java.lang.Throwable)"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame.Builder","l":"fin(boolean)"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder","l":"find(Class<T>, boolean)","url":"find(java.lang.Class,boolean)"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder","l":"find(Class<T>, ClassLoader, boolean)","url":"find(java.lang.Class,java.lang.ClassLoader,boolean)"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder","l":"find(Class<T>, ClassLoader)","url":"find(java.lang.Class,java.lang.ClassLoader)"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder","l":"find(Class<T>)","url":"find(java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder","l":"find(String)","url":"find(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"findMethodOnClass(Class, Method)","url":"findMethodOnClass(java.lang.Class,java.lang.reflect.Method)"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.FloatDecoder","l":"FloatDecoder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"DebugContext","l":"flush()"},{"p":"javax.websocket","c":"RemoteEndpoint","l":"flushBatch()"},{"p":"org.glassfish.tyrus.core","c":"TyrusRemoteEndpoint","l":"flushBatch()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"FRAGMENT"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"FRAGMENT_INVALID_OPCODE()"},{"p":"org.glassfish.tyrus.servlet","c":"TyrusHttpUpgradeHandler","l":"FRAME_BUFFER_SIZE"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"FRAME_WRITE_CANCELLED()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"Frame(Frame)","url":"%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)"},{"p":"org.glassfish.tyrus.core","c":"AnnotatedEndpoint","l":"fromClass(Class<?>, ComponentProviderService, boolean, int, ErrorCollector, EndpointEventListener, Set<Extension>)","url":"fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.util.Set)"},{"p":"org.glassfish.tyrus.core","c":"AnnotatedEndpoint","l":"fromClass(Class<?>, ComponentProviderService, boolean, int, ErrorCollector, EndpointEventListener)","url":"fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener)"},{"p":"org.glassfish.tyrus.core","c":"MessageHandlerManager","l":"fromDecoderClasses(List<Class<? extends Decoder>>)","url":"fromDecoderClasses(java.util.List)"},{"p":"org.glassfish.tyrus.core","c":"TyrusExtension","l":"fromHeaders(List<String>)","url":"fromHeaders(java.util.List)"},{"p":"org.glassfish.tyrus.core","c":"AnnotatedEndpoint","l":"fromInstance(Object, ComponentProviderService, boolean, int, ErrorCollector, Set<Extension>)","url":"fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,java.util.Set)"},{"p":"org.glassfish.tyrus.core","c":"AnnotatedEndpoint","l":"fromInstance(Object, ComponentProviderService, boolean, int, ErrorCollector)","url":"fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector)"},{"p":"org.glassfish.tyrus.core","c":"TyrusExtension","l":"fromString(List<String>)","url":"fromString(java.util.List)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"fullRelativeUri(URI)","url":"fullRelativeUri(java.net.URI)"},{"p":"org.glassfish.tyrus.client.auth","c":"Authenticator","l":"generateAuthorizationHeader(URI, String, Credentials)","url":"generateAuthorizationHeader(java.net.URI,java.lang.String,org.glassfish.tyrus.client.auth.Credentials)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper.DeclaringClassInterfacePair","l":"genericInterface"},{"p":"org.glassfish.tyrus.core","c":"TyrusFuture","l":"get()"},{"p":"org.glassfish.tyrus.core.collection","c":"Value","l":"get()"},{"p":"org.glassfish.tyrus.core","c":"TyrusFuture","l":"get(long, TimeUnit)","url":"get(long,java.util.concurrent.TimeUnit)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"get(Object)","url":"get(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.uri","c":"Match","l":"getAllMatches(String, Set<TyrusEndpointWrapper>, DebugContext)","url":"getAllMatches(java.lang.String,java.util.Set,org.glassfish.tyrus.core.DebugContext)"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getAllSessions()"},{"p":"javax.websocket.server","c":"ServerApplicationConfig","l":"getAnnotatedEndpointClasses(Set<Class<?>>)","url":"getAnnotatedEndpointClasses(java.util.Set)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerConfiguration","l":"getAnnotatedEndpointClasses(Set<Class<?>>)","url":"getAnnotatedEndpointClasses(java.util.Set)"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"Application","l":"getAny()"},{"p":"javax.websocket","c":"PongMessage","l":"getApplicationData()"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"getApplicationEventListener()"},{"p":"org.glassfish.tyrus.core.l10n","c":"Localizable","l":"getArguments()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizableMessage","l":"getArguments()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getArrayClass(Class)","url":"getArrayClass(java.lang.Class)"},{"p":"javax.websocket","c":"Session","l":"getAsyncRemote()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getAsyncRemote()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getAsyncRemote()"},{"p":"org.glassfish.tyrus.client.auth","c":"AuthConfig","l":"getAuthenticators()"},{"p":"javax.websocket","c":"Session","l":"getBasicRemote()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getBasicRemote()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getBasicRemote()"},{"p":"javax.websocket","c":"RemoteEndpoint","l":"getBatchingAllowed()"},{"p":"org.glassfish.tyrus.core","c":"TyrusRemoteEndpoint","l":"getBatchingAllowed()"},{"p":"javax.websocket","c":"DecodeException","l":"getBytes()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getClass(Class, Class)","url":"getClass(java.lang.Class,java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getClassType(Class<?>, Class<?>)","url":"getClassType(java.lang.Class,java.lang.Class)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"getClientManager()"},{"p":"javax.websocket","c":"CloseReason","l":"getCloseCode()"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"getCloseCode(int)"},{"p":"org.glassfish.tyrus.spi","c":"Connection","l":"getCloseListener()"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"getCloseReason()"},{"p":"org.glassfish.tyrus.core","c":"ProtocolException","l":"getCloseReason()"},{"p":"org.glassfish.tyrus.core","c":"Utf8DecodingException","l":"getCloseReason()"},{"p":"org.glassfish.tyrus.core","c":"WebSocketException","l":"getCloseReason()"},{"p":"org.glassfish.tyrus.core.frame","c":"CloseFrame","l":"getCloseReason()"},{"p":"javax.websocket","c":"CloseReason.CloseCode","l":"getCode()"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"getCode()"},{"p":"org.glassfish.tyrus.core.coder","c":"CoderWrapper","l":"getCoder()"},{"p":"org.glassfish.tyrus.core.coder","c":"CoderWrapper","l":"getCoderClass()"},{"p":"org.glassfish.tyrus.core","c":"ComponentProviderService","l":"getCoderInstance(Class<T>, Session, EndpointConfig, ErrorCollector)","url":"getCoderInstance(java.lang.Class,javax.websocket.Session,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ErrorCollector)"},{"p":"javax.websocket","c":"ClientEndpointConfig","l":"getConfigurator()"},{"p":"javax.websocket.server","c":"ServerEndpointConfig","l":"getConfigurator()"},{"p":"javax.websocket","c":"ContainerProvider","l":"getContainer()"},{"p":"javax.websocket","c":"Session","l":"getContainer()"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyContainerProvider","l":"getContainer()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getContainer()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getContainer()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getContextClassLoaderPA()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"getCorePoolSize()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getDeclaringClass(AccessibleObject)","url":"getDeclaringClass(java.lang.reflect.AccessibleObject)"},{"p":"javax.websocket","c":"EndpointConfig","l":"getDecoders()"},{"p":"javax.websocket","c":"WebSocketContainer","l":"getDefaultAsyncSendTimeout()"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"getDefaultAsyncSendTimeout()"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"getDefaultAsyncSendTimeout()"},{"p":"javax.websocket","c":"WebSocketContainer","l":"getDefaultMaxBinaryMessageBufferSize()"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"getDefaultMaxBinaryMessageBufferSize()"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"getDefaultMaxBinaryMessageBufferSize()"},{"p":"javax.websocket","c":"WebSocketContainer","l":"getDefaultMaxSessionIdleTimeout()"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"getDefaultMaxSessionIdleTimeout()"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"getDefaultMaxSessionIdleTimeout()"},{"p":"javax.websocket","c":"WebSocketContainer","l":"getDefaultMaxTextMessageBufferSize()"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"getDefaultMaxTextMessageBufferSize()"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"getDefaultMaxTextMessageBufferSize()"},{"p":"org.glassfish.tyrus.client","c":"ClientManager.ReconnectHandler","l":"getDelay()"},{"p":"org.glassfish.tyrus.client","c":"RetryAfterException","l":"getDelay()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getDistributedProperties()"},{"p":"org.glassfish.tyrus.core.cluster","c":"DistributedSession","l":"getDistributedProperties()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getDistributedProperties()"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"getDistributedSessionProperties(String)","url":"getDistributedSessionProperties(java.lang.String)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"getDistributedUserProperties(String)","url":"getDistributedUserProperties(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"getEnabledCipherSuites()"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"getEnabledProtocols()"},{"p":"javax.websocket","c":"EndpointConfig","l":"getEncoders()"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"Application","l":"getEndpoint()"},{"p":"javax.websocket.server","c":"ServerEndpointConfig","l":"getEndpointClass()"},{"p":"org.glassfish.tyrus.core","c":"AnnotatedEndpoint","l":"getEndpointConfig()"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper","l":"getEndpointConfig()"},{"p":"javax.websocket.server","c":"ServerApplicationConfig","l":"getEndpointConfigs(Set<Class<? extends Endpoint>>)","url":"getEndpointConfigs(java.util.Set)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerConfiguration","l":"getEndpointConfigs(Set<Class<? extends Endpoint>>)","url":"getEndpointConfigs(java.util.Set)"},{"p":"javax.websocket.server","c":"ServerEndpointConfig.Configurator","l":"getEndpointInstance(Class<T>)","url":"getEndpointInstance(java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"ComponentProviderService","l":"getEndpointInstance(Class<T>)","url":"getEndpointInstance(java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfigurator","l":"getEndpointInstance(Class<T>)","url":"getEndpointInstance(java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper","l":"getEndpointPath()"},{"p":"org.glassfish.tyrus.core.uri","c":"Match","l":"getEndpointWrapper()"},{"p":"javax.websocket","c":"SendResult","l":"getException()"},{"p":"org.glassfish.tyrus.core","c":"BaseContainer","l":"getExecutorService()"},{"p":"org.glassfish.tyrus.core","c":"ExecutorServiceProvider","l":"getExecutorService()"},{"p":"javax.websocket","c":"ClientEndpointConfig","l":"getExtensions()"},{"p":"javax.websocket.server","c":"ServerEndpointConfig","l":"getExtensions()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"getFirst(K)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedMap","l":"getFirst(K)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedStringMap","l":"getFirst(String, A)","url":"getFirst(java.lang.String,A)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedStringMap","l":"getFirst(String, Class<A>)","url":"getFirst(java.lang.String,java.lang.Class)"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeResponse","l":"getFirstHeaderValue(String)","url":"getFirstHeaderValue(java.lang.String)"},{"p":"org.glassfish.tyrus.core.frame","c":"TyrusFrame","l":"getFrameType()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getFromStringStringMethod(Class)","url":"getFromStringStringMethod(java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getGenericClass(Type)","url":"getGenericClass(java.lang.reflect.Type)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplateParser","l":"getGroupCounts()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"getGroupIndexes()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplateParser","l":"getGroupIndexes()"},{"p":"org.glassfish.tyrus.core","c":"RequestContext","l":"getHeader(String)","url":"getHeader(java.lang.String)"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"getHeader(String)","url":"getHeader(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"getHeaderFromList(List<T>, Utils.Stringifier<T>)","url":"getHeaderFromList(java.util.List,org.glassfish.tyrus.core.Utils.Stringifier)"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"getHeaderFromList(List<T>)","url":"getHeaderFromList(java.util.List)"},{"p":"javax.websocket","c":"HandshakeResponse","l":"getHeaders()"},{"p":"javax.websocket.server","c":"HandshakeRequest","l":"getHeaders()"},{"p":"org.glassfish.tyrus.core","c":"RequestContext","l":"getHeaders()"},{"p":"org.glassfish.tyrus.core","c":"TyrusUpgradeResponse","l":"getHeaders()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getHeartbeatInterval()"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"getHostnameVerifier()"},{"p":"javax.websocket.server","c":"HandshakeRequest","l":"getHttpSession()"},{"p":"org.glassfish.tyrus.core","c":"RequestContext","l":"getHttpSession()"},{"p":"org.glassfish.tyrus.core","c":"HandshakeException","l":"getHttpStatusCode()"},{"p":"javax.websocket","c":"Session","l":"getId()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getId()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getId()"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"Endpoint","l":"getId()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"getInitialClassLoader()"},{"p":"javax.websocket","c":"WebSocketContainer","l":"getInstalledExtensions()"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"getInstalledExtensions()"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"getInstalledExtensions()"},{"p":"org.glassfish.tyrus.core","c":"OsgiRegistry","l":"getInstance()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getInstance(Class<T>, ErrorCollector)","url":"getInstance(java.lang.Class,org.glassfish.tyrus.core.ErrorCollector)"},{"p":"org.glassfish.tyrus.core","c":"ComponentProviderService","l":"getInstance(Class<T>, Session, ErrorCollector)","url":"getInstance(java.lang.Class,javax.websocket.Session,org.glassfish.tyrus.core.ErrorCollector)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getInstance(Class<T>)","url":"getInstance(java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"ComponentProvider","l":"getInvocableMethod(Method)","url":"getInvocableMethod(java.lang.reflect.Method)"},{"p":"org.glassfish.tyrus.core","c":"ComponentProviderService","l":"getInvocableMethod(Method)","url":"getInvocableMethod(java.lang.reflect.Method)"},{"p":"org.glassfish.tyrus.core","c":"DefaultComponentProvider","l":"getInvocableMethod(Method)","url":"getInvocableMethod(java.lang.reflect.Method)"},{"p":"org.glassfish.tyrus.gf.ejb","c":"EjbComponentProvider","l":"getInvocableMethod(Method)","url":"getInvocableMethod(java.lang.reflect.Method)"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"getKeepAliveTime(TimeUnit)","url":"getKeepAliveTime(java.util.concurrent.TimeUnit)"},{"p":"org.glassfish.tyrus.core.l10n","c":"Localizable","l":"getKey()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizableMessage","l":"getKey()"},{"p":"org.glassfish.tyrus.core.l10n","c":"Localizer","l":"getLocale()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"getMaskingKey()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathSegment","l":"getMatrixParameters()"},{"p":"javax.websocket","c":"Session","l":"getMaxBinaryMessageBufferSize()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getMaxBinaryMessageBufferSize()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getMaxBinaryMessageBufferSize()"},{"p":"javax.websocket","c":"Session","l":"getMaxIdleTimeout()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getMaxIdleTimeout()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getMaxIdleTimeout()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"getMaxPoolSize()"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfig","l":"getMaxSessions()"},{"p":"javax.websocket","c":"Session","l":"getMaxTextMessageBufferSize()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getMaxTextMessageBufferSize()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getMaxTextMessageBufferSize()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizableMessageFactory","l":"getMessage(String, Object...)","url":"getMessage(java.lang.String,java.lang.Object...)"},{"p":"javax.websocket","c":"Session","l":"getMessageHandlers()"},{"p":"org.glassfish.tyrus.core","c":"MessageHandlerManager","l":"getMessageHandlers()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getMessageHandlers()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getMessageHandlers()"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo","l":"getMessageType()"},{"p":"javax.websocket","c":"Extension","l":"getName()"},{"p":"javax.websocket","c":"Extension.Parameter","l":"getName()"},{"p":"org.glassfish.tyrus.core","c":"TyrusExtension","l":"getName()"},{"p":"org.glassfish.tyrus.core","c":"TyrusExtension.TyrusParameter","l":"getName()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplateParser","l":"getNames()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplateParser","l":"getNameToPattern()"},{"p":"javax.websocket","c":"Session","l":"getNegotiatedExtensions()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getNegotiatedExtensions()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getNegotiatedExtensions()"},{"p":"javax.websocket.server","c":"ServerEndpointConfig.Configurator","l":"getNegotiatedExtensions(List<Extension>, List<Extension>)","url":"getNegotiatedExtensions(java.util.List,java.util.List)"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfigurator","l":"getNegotiatedExtensions(List<Extension>, List<Extension>)","url":"getNegotiatedExtensions(java.util.List,java.util.List)"},{"p":"javax.websocket","c":"Session","l":"getNegotiatedSubprotocol()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getNegotiatedSubprotocol()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getNegotiatedSubprotocol()"},{"p":"javax.websocket.server","c":"ServerEndpointConfig.Configurator","l":"getNegotiatedSubprotocol(List<String>, List<String>)","url":"getNegotiatedSubprotocol(java.util.List,java.util.List)"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfigurator","l":"getNegotiatedSubprotocol(List<String>, List<String>)","url":"getNegotiatedSubprotocol(java.util.List,java.util.List)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplateParser","l":"getNormalizedTemplate()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"getNumberOfExplicitCharacters()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"getNumberOfExplicitRegexes()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplateParser","l":"getNumberOfExplicitRegexes()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplateParser","l":"getNumberOfLiteralCharacters()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"getNumberOfRegexGroups()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplateParser","l":"getNumberOfRegexGroups()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"getNumberOfTemplateVariables()"},{"p":"javax.websocket","c":"EncodeException","l":"getObject()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"getOpcode()"},{"p":"javax.websocket","c":"Session","l":"getOpenSessions()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getOpenSessions()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getOpenSessions()"},{"p":"org.glassfish.tyrus.core","c":"MessageHandlerManager","l":"getOrderedWholeMessageHandlers()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getOsgiRegistryInstance()"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"Endpoint","l":"getOtherAttributes()"},{"p":"org.glassfish.tyrus.core","c":"OsgiRegistry","l":"getPackageResources(String, ClassLoader)","url":"getPackageResources(java.lang.String,java.lang.ClassLoader)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getParameterizedClassArguments(ReflectionHelper.DeclaringClassInterfacePair)","url":"getParameterizedClassArguments(org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getParameterizedTypeArguments(ReflectionHelper.DeclaringClassInterfacePair)","url":"getParameterizedTypeArguments(org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair)"},{"p":"javax.websocket.server","c":"HandshakeRequest","l":"getParameterMap()"},{"p":"org.glassfish.tyrus.core","c":"RequestContext","l":"getParameterMap()"},{"p":"javax.websocket","c":"Extension","l":"getParameters()"},{"p":"org.glassfish.tyrus.core","c":"TyrusExtension","l":"getParameters()"},{"p":"org.glassfish.tyrus.core.uri","c":"Match","l":"getParameters()"},{"p":"org.glassfish.tyrus.client.auth","c":"Credentials","l":"getPassword()"},{"p":"javax.websocket.server","c":"ServerEndpointConfig","l":"getPath()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathSegment","l":"getPath()"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"Endpoint","l":"getPath()"},{"p":"javax.websocket","c":"Session","l":"getPathParameters()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getPathParameters()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getPathParameters()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"getPattern()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplateParser","l":"getPattern()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"getPayloadData()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"getPayloadLength()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"getPoolName()"},{"p":"org.glassfish.tyrus.server","c":"Server","l":"getPort()"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"getPort()"},{"p":"javax.websocket","c":"ClientEndpointConfig","l":"getPreferredSubprotocols()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"getPriority()"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"getProperties()"},{"p":"org.glassfish.tyrus.core.extension","c":"ExtendedExtension.ExtensionContext","l":"getProperties()"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"getProperty(Map<String, Object>, String, Class<T>, T)","url":"getProperty(java.util.Map,java.lang.String,java.lang.Class,T)"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"getProperty(Map<String, Object>, String, Class<T>)","url":"getProperty(java.util.Map,java.lang.String,java.lang.Class)"},{"p":"javax.websocket","c":"Session","l":"getProtocolVersion()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getProtocolVersion()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getProtocolVersion()"},{"p":"javax.websocket","c":"Session","l":"getQueryString()"},{"p":"javax.websocket.server","c":"HandshakeRequest","l":"getQueryString()"},{"p":"org.glassfish.tyrus.core","c":"RequestContext","l":"getQueryString()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getQueryString()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getQueryString()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"getQueue()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"getQueueLimit()"},{"p":"org.glassfish.tyrus.spi","c":"Connection","l":"getReadHandler()"},{"p":"javax.websocket","c":"CloseReason","l":"getReasonPhrase()"},{"p":"org.glassfish.tyrus.core","c":"TyrusUpgradeResponse","l":"getReasonPhrase()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"getRegex()"},{"p":"org.glassfish.tyrus.core.frame","c":"TextFrame","l":"getRemainder()"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"getRemainingArray(ByteBuffer)","url":"getRemainingArray(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core","c":"RequestContext","l":"getRemoteAddr()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getRemoteAddr()"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo","l":"getRemoteEndpointType()"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"getRemoteSessionIds(String)","url":"getRemoteSessionIds(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getRemoteSessions()"},{"p":"org.glassfish.tyrus.core","c":"Handshake","l":"getRequest()"},{"p":"javax.websocket","c":"Session","l":"getRequestParameterMap()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getRequestParameterMap()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getRequestParameterMap()"},{"p":"org.glassfish.tyrus.core","c":"RequestContext","l":"getRequestUri()"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"getRequestUri()"},{"p":"javax.websocket","c":"Session","l":"getRequestURI()"},{"p":"javax.websocket.server","c":"HandshakeRequest","l":"getRequestURI()"},{"p":"org.glassfish.tyrus.core","c":"RequestContext","l":"getRequestURI()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getRequestURI()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getRequestURI()"},{"p":"org.glassfish.tyrus.core","c":"OsgiRegistry","l":"getResourceBundle(String)","url":"getResourceBundle(java.lang.String)"},{"p":"org.glassfish.tyrus.core.l10n","c":"Localizable","l":"getResourceBundleName()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizableMessage","l":"getResourceBundleName()"},{"p":"org.glassfish.tyrus.core","c":"BaseContainer","l":"getScheduledExecutorService()"},{"p":"org.glassfish.tyrus.core","c":"ExecutorServiceProvider","l":"getScheduledExecutorService()"},{"p":"javax.websocket","c":"RemoteEndpoint.Basic","l":"getSendStream()"},{"p":"javax.websocket","c":"RemoteEndpoint.Async","l":"getSendTimeout()"},{"p":"javax.websocket","c":"RemoteEndpoint.Basic","l":"getSendWriter()"},{"p":"javax.websocket","c":"SessionException","l":"getSession()"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"getSslContext()"},{"p":"org.glassfish.tyrus.core","c":"TyrusUpgradeResponse","l":"getStatus()"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeResponse","l":"getStatus()"},{"p":"org.glassfish.tyrus.spi","c":"WebSocketEngine.UpgradeInfo","l":"getStatus()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getStringConstructor(Class)","url":"getStringConstructor(java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"getStringList(List<T>, Utils.Stringifier<T>)","url":"getStringList(java.util.List,org.glassfish.tyrus.core.Utils.Stringifier)"},{"p":"javax.websocket.server","c":"ServerEndpointConfig","l":"getSubprotocols()"},{"p":"org.glassfish.tyrus.core","c":"Version","l":"getSupportedWireProtocolVersions()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern","l":"getTemplate()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"getTemplate()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplateParser","l":"getTemplate()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"getTemplateVariables()"},{"p":"javax.websocket","c":"DecodeException","l":"getText()"},{"p":"org.glassfish.tyrus.core.frame","c":"TextFrame","l":"getTextPayload()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"getThreadFactory()"},{"p":"org.glassfish.tyrus.client","c":"TyrusClientEngine","l":"getTimeoutHandler()"},{"p":"org.glassfish.tyrus.core","c":"DebugContext","l":"getTracingHeaders()"},{"p":"org.glassfish.tyrus.core.coder","c":"CoderWrapper","l":"getType()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getTypeArgumentAndClass(Type)","url":"getTypeArgumentAndClass(java.lang.reflect.Type)"},{"p":"org.glassfish.tyrus.spi","c":"ClientEngine.ClientUpgradeInfo","l":"getUpgradeStatus()"},{"p":"org.glassfish.tyrus.client.auth","c":"Credentials","l":"getUsername()"},{"p":"javax.websocket","c":"Session","l":"getUserPrincipal()"},{"p":"javax.websocket.server","c":"HandshakeRequest","l":"getUserPrincipal()"},{"p":"org.glassfish.tyrus.core","c":"RequestContext","l":"getUserPrincipal()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getUserPrincipal()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getUserPrincipal()"},{"p":"javax.websocket","c":"EndpointConfig","l":"getUserProperties()"},{"p":"javax.websocket","c":"Session","l":"getUserProperties()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"getUserProperties()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"getUserProperties()"},{"p":"javax.websocket","c":"Extension.Parameter","l":"getValue()"},{"p":"org.glassfish.tyrus.core","c":"TyrusExtension.TyrusParameter","l":"getValue()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"getValueOfStringMethod(Class)","url":"getValueOfStringMethod(java.lang.Class)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"getValues(K)"},{"p":"javax.websocket","c":"ContainerProvider","l":"getWebSocketContainer()"},{"p":"org.glassfish.tyrus.spi","c":"ServerContainer","l":"getWebSocketEngine()"},{"p":"org.glassfish.tyrus.spi","c":"Connection","l":"getWriter()"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"getWsadlApplication()"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"getWsPort(URI, String)","url":"getWsPort(java.net.URI,java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"getWsPort(URI)","url":"getWsPort(java.net.URI)"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"GOING_AWAY"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"GOING_AWAY"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyClientContainer","l":"GrizzlyClientContainer()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyClientProperties","l":"GrizzlyClientProperties()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyContainerProvider","l":"GrizzlyContainerProvider()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.container.grizzly.server","c":"GrizzlyServerContainer","l":"GrizzlyServerContainer()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyWriter","l":"GrizzlyWriter(Connection)","url":"%3Cinit%3E(org.glassfish.grizzly.Connection)"},{"p":"org.glassfish.tyrus.spi","c":"ReadHandler","l":"handle(ByteBuffer)","url":"handle(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.spi","c":"ClientEngine.TimeoutHandler","l":"handleTimeout()"},{"p":"org.glassfish.tyrus.spi","c":"WebSocketEngine.UpgradeStatus","l":"HANDSHAKE_FAILED"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"HANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"HANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION(Object)","url":"HANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR(Object)","url":"HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"HANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(Object)","url":"HANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"HANDSHAKE_HTTP_RETRY_AFTER_MESSAGE()"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"HANDSHAKE_TIMEOUT"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"HANDSHAKE_TIMEOUT"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"handshake(TyrusEndpointWrapper, UpgradeRequest, UpgradeResponse, ExtendedExtension.ExtensionContext)","url":"handshake(org.glassfish.tyrus.core.TyrusEndpointWrapper,org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)"},{"p":"org.glassfish.tyrus.core","c":"HandshakeException","l":"HandshakeException(int, String)","url":"%3Cinit%3E(int,java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"HandshakeException","l":"HandshakeException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"hasExtensions()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"hashCode()"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyWriter","l":"hashCode()"},{"p":"org.glassfish.tyrus.core","c":"TyrusExtension","l":"hashCode()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"hashCode()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"hashCode()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"hashCode()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"HEADERS_MISSING()"},{"p":"org.glassfish.tyrus.core","c":"OsgiRegistry","l":"hookUp()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"HOST"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"HOST"},{"p":"org.glassfish.tyrus.core","c":"RequestContext.Builder","l":"httpSession(Object)","url":"httpSession(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"Endpoint","l":"id"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ILLEGAL_CONFIG_SYNTAX()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ILLEGAL_PROVIDER_CLASS_NAME(Object)","url":"ILLEGAL_PROVIDER_CLASS_NAME(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ILLEGAL_UTF_8_SEQUENCE()"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"INCOMING_BUFFER_SIZE"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"INCOMING_BUFFER_SIZE"},{"p":"org.glassfish.tyrus.spi","c":"ClientContainer","l":"INCOMING_BUFFER_SIZE"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine.TyrusWebSocketEngineBuilder","l":"incomingBufferSize(Integer)","url":"incomingBufferSize(java.lang.Integer)"},{"p":"javax.websocket","c":"Decoder","l":"init(EndpointConfig)","url":"init(javax.websocket.EndpointConfig)"},{"p":"javax.websocket","c":"Encoder","l":"init(EndpointConfig)","url":"init(javax.websocket.EndpointConfig)"},{"p":"org.glassfish.tyrus.core.coder","c":"CoderAdapter","l":"init(EndpointConfig)","url":"init(javax.websocket.EndpointConfig)"},{"p":"org.glassfish.tyrus.servlet","c":"TyrusHttpUpgradeHandler","l":"init(WebConnection)","url":"init(javax.servlet.http.WebConnection)"},{"p":"org.glassfish.tyrus.core.coder","c":"InputStreamDecoder","l":"InputStreamDecoder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.IntegerDecoder","l":"IntegerDecoder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"INVALID_HEADER(Object, Object)","url":"INVALID_HEADER(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"INVALID_RESPONSE_CODE(Object, Object)","url":"INVALID_RESPONSE_CODE(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"IOEXCEPTION_CLOSE()"},{"p":"org.glassfish.tyrus.core","c":"ComponentProvider","l":"isApplicable(Class<?>)","url":"isApplicable(java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"DefaultComponentProvider","l":"isApplicable(Class<?>)","url":"isApplicable(java.lang.Class)"},{"p":"org.glassfish.tyrus.gf.cdi","c":"CdiComponentProvider","l":"isApplicable(Class<?>)","url":"isApplicable(java.lang.Class)"},{"p":"org.glassfish.tyrus.gf.ejb","c":"EjbComponentProvider","l":"isApplicable(Class<?>)","url":"isApplicable(java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"TyrusFuture","l":"isCancelled()"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"isCipherConfigured()"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"isClientMode()"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"isConnected()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"isControlFrame()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"isDaemon()"},{"p":"org.glassfish.tyrus.core","c":"TyrusFuture","l":"isDone()"},{"p":"org.glassfish.tyrus.core","c":"ErrorCollector","l":"isEmpty()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"isEmpty()"},{"p":"org.glassfish.tyrus.core.uri","c":"Match","l":"isEquivalent(String, String)","url":"isEquivalent(java.lang.String,java.lang.String)"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"isFin()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"isHexCharacter(char)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"isHostVerificationEnabled()"},{"p":"org.glassfish.tyrus.core.collection","c":"LazyValue","l":"isInitialized()"},{"p":"org.glassfish.tyrus.core","c":"MessageHandlerManager","l":"isInputStreamHandlerPresent()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"isMask()"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"isNeedClientAuth()"},{"p":"javax.websocket","c":"SendResult","l":"isOK()"},{"p":"javax.websocket","c":"Session","l":"isOpen()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"isOpen()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"isOpen()"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"isProtocolConfigured()"},{"p":"org.glassfish.tyrus.core","c":"MessageHandlerManager","l":"isReaderHandlerPresent()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"isRsv1()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"isRsv2()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"isRsv3()"},{"p":"javax.websocket","c":"Session","l":"isSecure()"},{"p":"org.glassfish.tyrus.core","c":"RequestContext","l":"isSecure()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"isSecure()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"isSecure()"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"isSecure()"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"isSessionOpen(String, String)","url":"isSessionOpen(java.lang.String,java.lang.String)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"isTemplateVariablePresent(String)","url":"isTemplateVariablePresent(java.lang.String)"},{"p":"javax.websocket.server","c":"HandshakeRequest","l":"isUserInRole(String)","url":"isUserInRole(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"RequestContext","l":"isUserInRole(String)","url":"isUserInRole(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"RequestContext.Builder.IsUserInRoleDelegate","l":"isUserInRole(String)","url":"isUserInRole(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"RequestContext.Builder","l":"isUserInRoleDelegate(RequestContext.Builder.IsUserInRoleDelegate)","url":"isUserInRoleDelegate(org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate)"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"TaskProcessor.Condition","l":"isValid()"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"isWantClientAuth()"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder","l":"iterator()"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"KEY_FACTORY_MANAGER_ALGORITHM"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"KEY_STORE_FILE"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"KEY_STORE_PASSWORD"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"KEY_STORE_PROVIDER"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"KEY_STORE_TYPE"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"keySet()"},{"p":"org.glassfish.tyrus.core.collection","c":"Values","l":"lazy(Value<T>)","url":"lazy(org.glassfish.tyrus.core.collection.Value)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableAPPLICATION_DATA_TOO_LONG(Object)","url":"localizableAPPLICATION_DATA_TOO_LONG(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableARGUMENT_NOT_NULL(Object)","url":"localizableARGUMENT_NOT_NULL(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableAUTHENTICATION_CREATE_AUTH_HEADER_FAILED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableAUTHENTICATION_CREDENTIALS_MISSING()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableAUTHENTICATION_DIGEST_NO_SUCH_ALG()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableAUTHENTICATION_DIGEST_QOP_UNSUPPORTED(Object)","url":"localizableAUTHENTICATION_DIGEST_QOP_UNSUPPORTED(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableAUTHENTICATION_FAILED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableBINARY_MESSAGE_HANDLER_NOT_FOUND(Object)","url":"localizableBINARY_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableBINARY_MESSAGE_OUT_OF_ORDER(Object)","url":"localizableBINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableBUFFER_OVERFLOW()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(Object, Object)","url":"localizableCLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCLASS_CHECKER_FORBIDDEN_RETURN_TYPE(Object, Object)","url":"localizableCLASS_CHECKER_FORBIDDEN_RETURN_TYPE(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(Object, Object)","url":"localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM(Object, Object, Object)","url":"localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(Object, Object, Object)","url":"localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCLASS_CHECKER_MANDATORY_PARAM_MISSING(Object, Object)","url":"localizableCLASS_CHECKER_MANDATORY_PARAM_MISSING(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(Object, Object)","url":"localizableCLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCLASS_NOT_INSTANTIATED(Object)","url":"localizableCLASS_NOT_INSTANTIATED(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCLIENT_CANNOT_CONNECT(Object)","url":"localizableCLIENT_CANNOT_CONNECT(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCOMPONENT_PROVIDER_NOT_FOUND(Object)","url":"localizableCOMPONENT_PROVIDER_NOT_FOUND(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCOMPONENT_PROVIDER_THREW_EXCEPTION(Object)","url":"localizableCOMPONENT_PROVIDER_THREW_EXCEPTION(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCONNECTION_HAS_BEEN_CLOSED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCONNECTION_NULL()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCONTROL_FRAME_FRAGMENTED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableCONTROL_FRAME_LENGTH()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableDATA_UNEXPECTED_LENGTH(Object, Object)","url":"localizableDATA_UNEXPECTED_LENGTH(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableDEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR(Object, Object, Object)","url":"localizableDEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableDEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(Object, Object, Object)","url":"localizableDEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableENCODING_FAILED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableENDPOINT_ANNOTATION_NOT_FOUND(Object, Object)","url":"localizableENDPOINT_ANNOTATION_NOT_FOUND(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableENDPOINT_EXCEPTION_FROM_ON_ERROR(Object)","url":"localizableENDPOINT_EXCEPTION_FROM_ON_ERROR(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG(Object, Object, Object, Object)","url":"localizableENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableENDPOINT_MULTIPLE_METHODS(Object, Object, Object, Object)","url":"localizableENDPOINT_MULTIPLE_METHODS(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableENDPOINT_MULTIPLE_SESSION_PARAM(Object)","url":"localizableENDPOINT_MULTIPLE_SESSION_PARAM(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableENDPOINT_UNHANDLED_EXCEPTION(Object)","url":"localizableENDPOINT_UNHANDLED_EXCEPTION(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableENDPOINT_UNKNOWN_PARAMS(Object, Object, Object)","url":"localizableENDPOINT_UNKNOWN_PARAMS(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableENDPOINT_WRONG_PARAMS(Object, Object)","url":"localizableENDPOINT_WRONG_PARAMS(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableENDPOINT_WRONG_PATH_PARAM(Object, Object)","url":"localizableENDPOINT_WRONG_PATH_PARAM(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableEQUIVALENT_PATHS(Object, Object)","url":"localizableEQUIVALENT_PATHS(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableEXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableEXTENSION_EXCEPTION(Object, Object)","url":"localizableEXTENSION_EXCEPTION(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableFRAGMENT_INVALID_OPCODE()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableFRAME_WRITE_CANCELLED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableHANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableHANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION(Object)","url":"localizableHANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR(Object)","url":"localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableHANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(Object)","url":"localizableHANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableHANDSHAKE_HTTP_RETRY_AFTER_MESSAGE()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableHEADERS_MISSING()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableILLEGAL_CONFIG_SYNTAX()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableILLEGAL_PROVIDER_CLASS_NAME(Object)","url":"localizableILLEGAL_PROVIDER_CLASS_NAME(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableILLEGAL_UTF_8_SEQUENCE()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableINVALID_HEADER(Object, Object)","url":"localizableINVALID_HEADER(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableINVALID_RESPONSE_CODE(Object, Object)","url":"localizableINVALID_RESPONSE_CODE(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableIOEXCEPTION_CLOSE()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableMAX_SESSIONS_PER_APP_EXCEEDED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableMAX_SESSIONS_PER_ENDPOINT_EXCEEDED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableMAX_SESSIONS_PER_REMOTEADDR_EXCEEDED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableMESSAGE_HANDLER_ALREADY_REGISTERED_BINARY()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableMESSAGE_HANDLER_ALREADY_REGISTERED_PONG()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TEXT()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(Object)","url":"localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableMESSAGE_HANDLER_DECODER_NOT_REGISTERED(Object)","url":"localizableMESSAGE_HANDLER_DECODER_NOT_REGISTERED(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableMESSAGE_HANDLER_ILLEGAL_ARGUMENT(Object)","url":"localizableMESSAGE_HANDLER_ILLEGAL_ARGUMENT(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableMESSAGE_HANDLER_PARTIAL_INVALID_TYPE(Object)","url":"localizableMESSAGE_HANDLER_PARTIAL_INVALID_TYPE(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableMESSAGE_HANDLER_WHOLE_OR_PARTIAL()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableMESSAGE_TOO_LONG(Object, Object)","url":"localizableMESSAGE_TOO_LONG(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizableMessage","l":"LocalizableMessage(String, String, Object...)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.Object...)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizableMessageFactory","l":"LocalizableMessageFactory(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableNO_DECODER_FOUND()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableORIGIN_NOT_VERIFIED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizablePARTIAL_BINARY_MESSAGE_OUT_OF_ORDER(Object)","url":"localizablePARTIAL_BINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizablePARTIAL_MESSAGE_BUFFER_OVERFLOW()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizablePARTIAL_TEXT_MESSAGE_OUT_OF_ORDER(Object)","url":"localizablePARTIAL_TEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizablePROVIDER_CLASS_COULD_NOT_BE_LOADED(Object, Object, Object)","url":"localizablePROVIDER_CLASS_COULD_NOT_BE_LOADED(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizablePROVIDER_COULD_NOT_BE_CREATED(Object, Object, Object)","url":"localizablePROVIDER_COULD_NOT_BE_CREATED(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizablePROVIDER_NOT_FOUND(Object, Object)","url":"localizablePROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableRSV_INCORRECTLY_SET()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableSEC_KEY_INVALID_LENGTH(Object)","url":"localizableSEC_KEY_INVALID_LENGTH(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableSEC_KEY_INVALID_SERVER()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableSEC_KEY_NULL_NOT_ALLOWED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableSEND_MESSAGE_INFRAGMENT()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableSESSION_CLOSED_IDLE_TIMEOUT()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableSOCKET_NOT_CONNECTED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableTEXT_MESSAGE_HANDLER_NOT_FOUND(Object)","url":"localizableTEXT_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableTEXT_MESSAGE_OUT_OF_ORDER(Object)","url":"localizableTEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableUNEXPECTED_END_FRAGMENT()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableUNEXPECTED_ERROR_CONNECTION_CLOSE()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableUNEXPECTED_STATE(Object)","url":"localizableUNEXPECTED_STATE(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableUNHANDLED_TEXT_MESSAGE(Object)","url":"localizableUNHANDLED_TEXT_MESSAGE(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableURI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(Object, Object)","url":"localizableURI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableURI_COMPONENT_ENCODED_OCTET_MALFORMED(Object)","url":"localizableURI_COMPONENT_ENCODED_OCTET_MALFORMED(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"localizableURI_COMPONENT_INVALID_CHARACTER(Object, Object, Object, Object)","url":"localizableURI_COMPONENT_INVALID_CHARACTER(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"LocalizationMessages()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.l10n","c":"Localizer","l":"localize(Localizable)","url":"localize(org.glassfish.tyrus.core.l10n.Localizable)"},{"p":"org.glassfish.tyrus.core.l10n","c":"Localizer","l":"Localizer()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.l10n","c":"Localizer","l":"Localizer(Locale)","url":"%3Cinit%3E(java.util.Locale)"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeResponse","l":"LOCATION"},{"p":"org.glassfish.tyrus.core","c":"RequestContext","l":"lock()"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"LOG_HTTP_UPGRADE"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.LongDecoder","l":"LongDecoder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.server","c":"Server","l":"main(String[])","url":"main(java.lang.String[])"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"MASK_SIZE"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame.Builder","l":"mask(boolean)"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"MASKING_KEY_GENERATOR"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame.Builder","l":"maskingKey(Integer)","url":"maskingKey(java.lang.Integer)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"match(CharSequence, List<String>, Map<String, String>)","url":"match(java.lang.CharSequence,java.util.List,java.util.Map)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"match(CharSequence, List<String>)","url":"match(java.lang.CharSequence,java.util.List)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"match(CharSequence, List<String>)","url":"match(java.lang.CharSequence,java.util.List)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"match(CharSequence, Map<String, String>)","url":"match(java.lang.CharSequence,java.util.Map)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"match(CharSequence)","url":"match(java.lang.CharSequence)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"MATRIX_PARAM"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"MAX_BINARY_MESSAGE_BUFFER_SIZE"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"MAX_IDLE_TIMEOUT"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"MAX_SESSIONS_PER_APP"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper.SessionListener.OnOpenResult","l":"MAX_SESSIONS_PER_APP_EXCEEDED"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"MAX_SESSIONS_PER_APP_EXCEEDED()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"MAX_SESSIONS_PER_ENDPOINT_EXCEEDED()"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"MAX_SESSIONS_PER_REMOTE_ADDR"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper.SessionListener.OnOpenResult","l":"MAX_SESSIONS_PER_REMOTE_ADDR_EXCEEDED"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"MAX_SESSIONS_PER_REMOTEADDR_EXCEEDED()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"MAX_TEXT_MESSAGE_BUFFER_SIZE"},{"p":"javax.websocket","c":"OnMessage","l":"maxMessageSize()"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfig.Builder","l":"maxSessions(int)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine.TyrusWebSocketEngineBuilder","l":"maxSessionsPerApp(Integer)","url":"maxSessionsPerApp(java.lang.Integer)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine.TyrusWebSocketEngineBuilder","l":"maxSessionsPerRemoteAddr(Integer)","url":"maxSessionsPerRemoteAddr(java.lang.Integer)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"MESSAGE_HANDLER_ALREADY_REGISTERED_BINARY()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"MESSAGE_HANDLER_ALREADY_REGISTERED_PONG()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"MESSAGE_HANDLER_ALREADY_REGISTERED_TEXT()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"MESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(Object)","url":"MESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"MESSAGE_HANDLER_DECODER_NOT_REGISTERED(Object)","url":"MESSAGE_HANDLER_DECODER_NOT_REGISTERED(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"MESSAGE_HANDLER_ILLEGAL_ARGUMENT(Object)","url":"MESSAGE_HANDLER_ILLEGAL_ARGUMENT(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"MESSAGE_HANDLER_PARTIAL_INVALID_TYPE(Object)","url":"MESSAGE_HANDLER_PARTIAL_INVALID_TYPE(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"MESSAGE_HANDLER_WHOLE_OR_PARTIAL()"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.Type","l":"MESSAGE_IN"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.Type","l":"MESSAGE_OUT"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"MESSAGE_TOO_LONG(Object, Object)","url":"MESSAGE_TOO_LONG(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core","c":"MessageHandlerManager","l":"MessageHandlerManager()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"methodInstanceToString(Object, Method)","url":"methodInstanceToString(java.lang.Object,java.lang.reflect.Method)"},{"p":"javax.websocket.server","c":"ServerEndpointConfig.Configurator","l":"modifyHandshake(ServerEndpointConfig, HandshakeRequest, HandshakeResponse)","url":"modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfigurator","l":"modifyHandshake(ServerEndpointConfig, HandshakeRequest, HandshakeResponse)","url":"modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedHashMap","l":"MultivaluedHashMap()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedHashMap","l":"MultivaluedHashMap(int, float)","url":"%3Cinit%3E(int,float)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedHashMap","l":"MultivaluedHashMap(int)","url":"%3Cinit%3E(int)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedHashMap","l":"MultivaluedHashMap(Map<? extends K, ? extends V>)","url":"%3Cinit%3E(java.util.Map)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedHashMap","l":"MultivaluedHashMap(MultivaluedMap<? extends K, ? extends V>)","url":"%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedStringMap","l":"MultivaluedStringMap()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedStringMap","l":"MultivaluedStringMap(int, float)","url":"%3Cinit%3E(int,float)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedStringMap","l":"MultivaluedStringMap(int)","url":"%3Cinit%3E(int)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedStringMap","l":"MultivaluedStringMap(MultivaluedMap<? extends String, ? extends String>)","url":"%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"needClientAuth"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"NEGOTIATED_EXTENSIONS"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"NEGOTIATED_SUBPROTOCOL"},{"p":"org.glassfish.tyrus.core","c":"StrictUtf8","l":"newDecoder()"},{"p":"org.glassfish.tyrus.core","c":"StrictUtf8","l":"newEncoder()"},{"p":"org.glassfish.tyrus.core","c":"MaskingKeyGenerator","l":"nextInt()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"NO_DECODER_FOUND()"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"NO_EXTENSION"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"NO_EXTENSION"},{"p":"org.glassfish.tyrus.core.monitoring","c":"ApplicationEventListener","l":"NO_OP"},{"p":"org.glassfish.tyrus.core.monitoring","c":"EndpointEventListener","l":"NO_OP"},{"p":"org.glassfish.tyrus.core.monitoring","c":"MessageEventListener","l":"NO_OP"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"NO_STATUS_CODE"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"NO_STATUS_CODE"},{"p":"org.glassfish.tyrus.core.coder","c":"NoOpByteArrayCoder","l":"NoOpByteArrayCoder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.coder","c":"NoOpByteBufferCoder","l":"NoOpByteBufferCoder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.coder","c":"NoOpTextCoder","l":"NoOpTextCoder()","url":"%3Cinit%3E()"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"NORMAL_CLOSURE"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"NORMAL_CLOSURE"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"normalize(String)","url":"normalize(java.lang.String)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"normalize(URI)","url":"normalize(java.net.URI)"},{"p":"org.glassfish.tyrus.spi","c":"WebSocketEngine.UpgradeStatus","l":"NOT_APPLICABLE"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"NOT_CONSISTENT"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"NOT_CONSISTENT"},{"p":"org.glassfish.tyrus.core.l10n","c":"Localizable","l":"NOT_LOCALIZABLE"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.MessageType","l":"OBJECT"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"ObjectFactory","l":"ObjectFactory()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"objectToString(Object)","url":"objectToString(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.collection","c":"Values","l":"of(T)"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.TracingType","l":"OFF"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.TracingType","l":"ON_DEMAND"},{"p":"org.glassfish.tyrus.servlet","c":"TyrusHttpUpgradeHandler","l":"onAllDataRead()"},{"p":"org.glassfish.tyrus.core.monitoring","c":"ApplicationEventListener","l":"onApplicationDestroyed()"},{"p":"org.glassfish.tyrus.core.monitoring","c":"ApplicationEventListener","l":"onApplicationInitialized(String)","url":"onApplicationInitialized(java.lang.String)"},{"p":"org.glassfish.tyrus.core.cluster","c":"BroadcastListener","l":"onBroadcast(byte[])"},{"p":"org.glassfish.tyrus.core.cluster","c":"BroadcastListener","l":"onBroadcast(String)","url":"onBroadcast(java.lang.String)"},{"p":"org.glassfish.tyrus.core.cluster","c":"SessionEventListener","l":"onClose()"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"onClose(CloseFrame)","url":"onClose(org.glassfish.tyrus.core.frame.CloseFrame)"},{"p":"org.glassfish.tyrus.core.cluster","c":"SessionEventListener","l":"onClose(CloseReason)","url":"onClose(javax.websocket.CloseReason)"},{"p":"javax.websocket","c":"Endpoint","l":"onClose(Session, CloseReason)","url":"onClose(javax.websocket.Session,javax.websocket.CloseReason)"},{"p":"org.glassfish.tyrus.core","c":"AnnotatedEndpoint","l":"onClose(Session, CloseReason)","url":"onClose(javax.websocket.Session,javax.websocket.CloseReason)"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper.SessionListener","l":"onClose(TyrusSession, CloseReason)","url":"onClose(org.glassfish.tyrus.core.TyrusSession,javax.websocket.CloseReason)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"onConnect(UpgradeRequest, String, List<Extension>, String, DebugContext)","url":"onConnect(org.glassfish.tyrus.spi.UpgradeRequest,java.lang.String,java.util.List,java.lang.String,org.glassfish.tyrus.core.DebugContext)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager.ReconnectHandler","l":"onConnectFailure(Exception)","url":"onConnectFailure(java.lang.Exception)"},{"p":"org.glassfish.tyrus.servlet","c":"TyrusHttpUpgradeHandler","l":"onDataAvailable()"},{"p":"org.glassfish.tyrus.client","c":"ClientManager.ReconnectHandler","l":"onDisconnect(CloseReason)","url":"onDisconnect(javax.websocket.CloseReason)"},{"p":"org.glassfish.tyrus.core.monitoring","c":"ApplicationEventListener","l":"onEndpointRegistered(String, Class<?>)","url":"onEndpointRegistered(java.lang.String,java.lang.Class)"},{"p":"org.glassfish.tyrus.core.monitoring","c":"ApplicationEventListener","l":"onEndpointUnregistered(String)","url":"onEndpointUnregistered(java.lang.String)"},{"p":"javax.websocket","c":"Endpoint","l":"onError(Session, Throwable)","url":"onError(javax.websocket.Session,java.lang.Throwable)"},{"p":"org.glassfish.tyrus.core","c":"AnnotatedEndpoint","l":"onError(Session, Throwable)","url":"onError(javax.websocket.Session,java.lang.Throwable)"},{"p":"org.glassfish.tyrus.core.monitoring","c":"EndpointEventListener","l":"onError(String, Throwable)","url":"onError(java.lang.String,java.lang.Throwable)"},{"p":"org.glassfish.tyrus.client","c":"TyrusClientEngine.ClientHandshakeListener","l":"onError(Throwable)","url":"onError(java.lang.Throwable)"},{"p":"org.glassfish.tyrus.servlet","c":"TyrusHttpUpgradeHandler","l":"onError(Throwable)","url":"onError(java.lang.Throwable)"},{"p":"org.glassfish.tyrus.core.extension","c":"ExtendedExtension","l":"onExtensionNegotiation(ExtendedExtension.ExtensionContext, List<Extension.Parameter>)","url":"onExtensionNegotiation(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"onFragment(BinaryFrame, boolean)","url":"onFragment(org.glassfish.tyrus.core.frame.BinaryFrame,boolean)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"onFragment(TextFrame, boolean)","url":"onFragment(org.glassfish.tyrus.core.frame.TextFrame,boolean)"},{"p":"org.glassfish.tyrus.core.monitoring","c":"MessageEventListener","l":"onFrameReceived(TyrusFrame.FrameType, long)","url":"onFrameReceived(org.glassfish.tyrus.core.frame.TyrusFrame.FrameType,long)"},{"p":"org.glassfish.tyrus.core.monitoring","c":"MessageEventListener","l":"onFrameSent(TyrusFrame.FrameType, long)","url":"onFrameSent(org.glassfish.tyrus.core.frame.TyrusFrame.FrameType,long)"},{"p":"org.glassfish.tyrus.core.extension","c":"ExtendedExtension","l":"onHandshakeResponse(ExtendedExtension.ExtensionContext, List<Extension.Parameter>)","url":"onHandshakeResponse(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"onMessage(BinaryFrame)","url":"onMessage(org.glassfish.tyrus.core.frame.BinaryFrame)"},{"p":"javax.websocket","c":"MessageHandler.Partial","l":"onMessage(T, boolean)","url":"onMessage(T,boolean)"},{"p":"javax.websocket","c":"MessageHandler.Whole","l":"onMessage(T)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"onMessage(TextFrame)","url":"onMessage(org.glassfish.tyrus.core.frame.TextFrame)"},{"p":"javax.websocket","c":"Endpoint","l":"onOpen(Session, EndpointConfig)","url":"onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)"},{"p":"org.glassfish.tyrus.core","c":"AnnotatedEndpoint","l":"onOpen(Session, EndpointConfig)","url":"onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper.SessionListener","l":"onOpen(TyrusSession)","url":"onOpen(org.glassfish.tyrus.core.TyrusSession)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"onPing(PingFrame)","url":"onPing(org.glassfish.tyrus.core.frame.PingFrame)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"onPong(PongFrame)","url":"onPong(org.glassfish.tyrus.core.frame.PongFrame)"},{"p":"javax.websocket","c":"SendHandler","l":"onResult(SendResult)","url":"onResult(javax.websocket.SendResult)"},{"p":"org.glassfish.tyrus.core.cluster","c":"SessionEventListener","l":"onSendBinary(byte[], boolean)","url":"onSendBinary(byte[],boolean)"},{"p":"org.glassfish.tyrus.core.cluster","c":"SessionEventListener","l":"onSendBinary(byte[])"},{"p":"org.glassfish.tyrus.core.cluster","c":"SessionEventListener","l":"onSendPing(byte[])"},{"p":"org.glassfish.tyrus.core.cluster","c":"SessionEventListener","l":"onSendPong(byte[])"},{"p":"org.glassfish.tyrus.core.cluster","c":"SessionEventListener","l":"onSendText(String, boolean)","url":"onSendText(java.lang.String,boolean)"},{"p":"org.glassfish.tyrus.core.cluster","c":"SessionEventListener","l":"onSendText(String)","url":"onSendText(java.lang.String)"},{"p":"org.glassfish.tyrus.core.cluster","c":"SessionListener","l":"onSessionClosed(String)","url":"onSessionClosed(java.lang.String)"},{"p":"org.glassfish.tyrus.core.monitoring","c":"EndpointEventListener","l":"onSessionClosed(String)","url":"onSessionClosed(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"TyrusClientEngine.ClientHandshakeListener","l":"onSessionCreated(Session)","url":"onSessionCreated(javax.websocket.Session)"},{"p":"org.glassfish.tyrus.core.cluster","c":"SessionListener","l":"onSessionOpened(String)","url":"onSessionOpened(java.lang.String)"},{"p":"org.glassfish.tyrus.core.monitoring","c":"EndpointEventListener","l":"onSessionOpened(String)","url":"onSessionOpened(java.lang.String)"},{"p":"org.glassfish.tyrus.servlet","c":"TyrusServletContainerInitializer","l":"onStartup(Set<Class<?>>, ServletContext)","url":"onStartup(java.util.Set,javax.servlet.ServletContext)"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame.Builder","l":"opcode(byte)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern","l":"OPEN_ROOT_PATH_PATTERN"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyClientContainer","l":"openClientSocket(ClientEndpointConfig, Map<String, Object>, ClientEngine)","url":"openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)"},{"p":"org.glassfish.tyrus.spi","c":"ClientContainer","l":"openClientSocket(ClientEndpointConfig, Map<String, Object>, ClientEngine)","url":"openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"ORIGIN_HEADER"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"ORIGIN_NOT_VERIFIED()"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.Type","l":"OTHER"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"PARALLEL_BROADCAST_ENABLED"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine.TyrusWebSocketEngineBuilder","l":"parallelBroadcastEnabled(Boolean)","url":"parallelBroadcastEnabled(java.lang.Boolean)"},{"p":"org.glassfish.tyrus.core","c":"RequestContext.Builder","l":"parameterMap(Map<String, String[]>)","url":"parameterMap(java.util.Map)"},{"p":"org.glassfish.tyrus.core","c":"StrictUtf8.Parser","l":"parse(char, char[], int, int)","url":"parse(char,char[],int,int)"},{"p":"org.glassfish.tyrus.core","c":"StrictUtf8.Parser","l":"parse(char, CharBuffer)","url":"parse(char,java.nio.CharBuffer)"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"parseHeaderValue(String)","url":"parseHeaderValue(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"parseHttpDate(String)","url":"parseHttpDate(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"StrictUtf8.Parser","l":"Parser()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"PARTIAL_BINARY_MESSAGE_OUT_OF_ORDER(Object)","url":"PARTIAL_BINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"PARTIAL_MESSAGE_BUFFER_OVERFLOW()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"PARTIAL_TEXT_MESSAGE_OUT_OF_ORDER(Object)","url":"PARTIAL_TEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"Endpoint","l":"path"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"PATH"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"PATH_PARAMETERS"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"PATH_SEGMENT"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern","l":"PathPattern(PathTemplate, PathPattern.RightHandPath)","url":"%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.PathTemplate,org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern","l":"PathPattern(PathTemplate)","url":"%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.PathTemplate)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern","l":"PathPattern(String, PathPattern.RightHandPath)","url":"%3Cinit%3E(java.lang.String,org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern","l":"PathPattern(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathTemplate","l":"PathTemplate(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"PatternWithGroups()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"PatternWithGroups(Pattern, int[])","url":"%3Cinit%3E(java.util.regex.Pattern,int[])"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"PatternWithGroups(Pattern)","url":"%3Cinit%3E(java.util.regex.Pattern)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"PatternWithGroups(String, int[])","url":"%3Cinit%3E(java.lang.String,int[])"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"PatternWithGroups(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame.Builder","l":"payloadData(byte[])"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame.Builder","l":"payloadLength(long)"},{"p":"org.glassfish.tyrus.core.frame","c":"TyrusFrame.FrameType","l":"PING"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.MessageType","l":"PING"},{"p":"org.glassfish.tyrus.core.frame","c":"PingFrame","l":"PingFrame(byte[])","url":"%3Cinit%3E(byte[])"},{"p":"org.glassfish.tyrus.core.frame","c":"PingFrame","l":"PingFrame(Frame)","url":"%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)"},{"p":"org.glassfish.tyrus.core.frame","c":"TyrusFrame.FrameType","l":"PONG"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.MessageType","l":"PONG"},{"p":"org.glassfish.tyrus.core.frame","c":"PongFrame","l":"PongFrame(byte[])","url":"%3Cinit%3E(byte[])"},{"p":"org.glassfish.tyrus.core.frame","c":"PongFrame","l":"PongFrame(Frame)","url":"%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"PORT"},{"p":"javax.websocket","c":"ClientEndpointConfig.Builder","l":"preferredSubprotocols(List<String>)","url":"preferredSubprotocols(java.util.List)"},{"p":"org.glassfish.tyrus.servlet","c":"TyrusHttpUpgradeHandler","l":"preInit(WebSocketEngine.UpgradeInfo, Writer, boolean)","url":"preInit(org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo,org.glassfish.tyrus.spi.Writer,boolean)"},{"p":"org.glassfish.tyrus.core","c":"Handshake","l":"prepareRequest()"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders","l":"PrimitiveDecoders()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"process(Frame, TyrusWebSocket)","url":"process(org.glassfish.tyrus.core.frame.Frame,org.glassfish.tyrus.core.TyrusWebSocket)"},{"p":"org.glassfish.tyrus.client","c":"TyrusClientEngine","l":"processError(Throwable)","url":"processError(java.lang.Throwable)"},{"p":"org.glassfish.tyrus.spi","c":"ClientEngine","l":"processError(Throwable)","url":"processError(java.lang.Throwable)"},{"p":"org.glassfish.tyrus.core.extension","c":"ExtendedExtension","l":"processIncoming(ExtendedExtension.ExtensionContext, Frame)","url":"processIncoming(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)"},{"p":"org.glassfish.tyrus.core.extension","c":"ExtendedExtension","l":"processOutgoing(ExtendedExtension.ExtensionContext, Frame)","url":"processOutgoing(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)"},{"p":"org.glassfish.tyrus.client","c":"TyrusClientEngine","l":"processResponse(UpgradeResponse, Writer, Connection.CloseListener)","url":"processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"},{"p":"org.glassfish.tyrus.spi","c":"ClientEngine","l":"processResponse(UpgradeResponse, Writer, Connection.CloseListener)","url":"processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"TaskProcessor","l":"processTask()"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"TaskProcessor","l":"processTask(TaskProcessor.Task)","url":"processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"PROTOCOL_ERROR"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"PROTOCOL_ERROR"},{"p":"org.glassfish.tyrus.core","c":"ProtocolException","l":"ProtocolException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"PROVIDER_CLASS_COULD_NOT_BE_LOADED(Object, Object, Object)","url":"PROVIDER_CLASS_COULD_NOT_BE_LOADED(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"PROVIDER_COULD_NOT_BE_CREATED(Object, Object, Object)","url":"PROVIDER_COULD_NOT_BE_CREATED(java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"PROVIDER_NOT_FOUND(Object, Object)","url":"PROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"PROXY_HEADERS"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"PROXY_HEADERS"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyClientSocket","l":"PROXY_HEADERS"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"PROXY_URI"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"PROXY_URI"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyClientSocket","l":"PROXY_URI"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"put(K, List<V>)","url":"put(K,java.util.List)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"putAll(Map<? extends K, ? extends List<V>>)","url":"putAll(java.util.Map)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"putSingle(K, V)","url":"putSingle(K,V)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"MultivaluedMap","l":"putSingle(K, V)","url":"putSingle(K,V)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"QUERY"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"QUERY_PARAM"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"QUERY_PARAM_SPACE_ENCODED"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"QUERY_STRING"},{"p":"org.glassfish.tyrus.core","c":"RequestContext.Builder","l":"queryString(String)","url":"queryString(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"ReaderDecoder","l":"ReaderDecoder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"RECONNECT_HANDLER"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"RECONNECT_HANDLER"},{"p":"org.glassfish.tyrus.client","c":"ClientManager.ReconnectHandler","l":"ReconnectHandler()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"REDIRECT_ENABLED"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"REDIRECT_THRESHOLD"},{"p":"org.glassfish.tyrus.client","c":"RedirectException","l":"RedirectException(int, String)","url":"%3Cinit%3E(int,java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"ReflectionHelper()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"register(Class<?>, String)","url":"register(java.lang.Class,java.lang.String)"},{"p":"org.glassfish.tyrus.spi","c":"WebSocketEngine","l":"register(Class<?>, String)","url":"register(java.lang.Class,java.lang.String)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"register(Class<?>)","url":"register(java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"register(ServerEndpointConfig, String)","url":"register(javax.websocket.server.ServerEndpointConfig,java.lang.String)"},{"p":"org.glassfish.tyrus.spi","c":"WebSocketEngine","l":"register(ServerEndpointConfig, String)","url":"register(javax.websocket.server.ServerEndpointConfig,java.lang.String)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"register(ServerEndpointConfig)","url":"register(javax.websocket.server.ServerEndpointConfig)"},{"p":"org.glassfish.tyrus.client.auth","c":"AuthConfig.Builder","l":"registerAuthProvider(String, Authenticator)","url":"registerAuthProvider(java.lang.String,org.glassfish.tyrus.client.auth.Authenticator)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"registerBroadcastListener(String, BroadcastListener)","url":"registerBroadcastListener(java.lang.String,org.glassfish.tyrus.core.cluster.BroadcastListener)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"registerSession(String, String, SessionEventListener)","url":"registerSession(java.lang.String,java.lang.String,org.glassfish.tyrus.core.cluster.SessionEventListener)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"registerSessionListener(String, SessionListener)","url":"registerSessionListener(java.lang.String,org.glassfish.tyrus.core.cluster.SessionListener)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"relativize(URI, URI)","url":"relativize(java.net.URI,java.net.URI)"},{"p":"org.glassfish.tyrus.core","c":"RequestContext.Builder","l":"remoteAddr(String)","url":"remoteAddr(java.lang.String)"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"RemoteSession(String, ClusterContext, Map<RemoteSession.DistributedMapKey, Object>, TyrusEndpointWrapper, Session)","url":"%3Cinit%3E(java.lang.String,org.glassfish.tyrus.core.cluster.ClusterContext,java.util.Map,org.glassfish.tyrus.core.TyrusEndpointWrapper,javax.websocket.Session)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"remove(Object)","url":"remove(java.lang.Object)"},{"p":"javax.websocket","c":"Session","l":"removeMessageHandler(MessageHandler)","url":"removeMessageHandler(javax.websocket.MessageHandler)"},{"p":"org.glassfish.tyrus.core","c":"MessageHandlerManager","l":"removeMessageHandler(MessageHandler)","url":"removeMessageHandler(javax.websocket.MessageHandler)"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"removeMessageHandler(MessageHandler)","url":"removeMessageHandler(javax.websocket.MessageHandler)"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"removeMessageHandler(MessageHandler)","url":"removeMessageHandler(javax.websocket.MessageHandler)"},{"p":"org.glassfish.tyrus.core","c":"ComponentProviderService","l":"removeSession(Session)","url":"removeSession(javax.websocket.Session)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"removeSession(String, String)","url":"removeSession(java.lang.String,java.lang.String)"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"REQUEST_PARAMETER_MAP"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"REQUEST_URI"},{"p":"org.glassfish.tyrus.core","c":"RequestContext.Builder","l":"requestURI(URI)","url":"requestURI(java.net.URI)"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"RESERVED"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"RESERVED"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"resolve(URI, String)","url":"resolve(java.net.URI,java.lang.String)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"resolve(URI, URI)","url":"resolve(java.net.URI,java.net.URI)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"resolveTemplateValues(UriComponent.Type, String, boolean, Map<String, ?>)","url":"resolveTemplateValues(org.glassfish.tyrus.core.uri.internal.UriComponent.Type,java.lang.String,boolean,java.util.Map)"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"resolveTypeVariable(Class, Class, TypeVariable)","url":"resolveTypeVariable(java.lang.Class,java.lang.Class,java.lang.reflect.TypeVariable)"},{"p":"org.glassfish.tyrus.core.frame","c":"BinaryFrame","l":"respond(TyrusWebSocket)","url":"respond(org.glassfish.tyrus.core.TyrusWebSocket)"},{"p":"org.glassfish.tyrus.core.frame","c":"CloseFrame","l":"respond(TyrusWebSocket)","url":"respond(org.glassfish.tyrus.core.TyrusWebSocket)"},{"p":"org.glassfish.tyrus.core.frame","c":"PingFrame","l":"respond(TyrusWebSocket)","url":"respond(org.glassfish.tyrus.core.TyrusWebSocket)"},{"p":"org.glassfish.tyrus.core.frame","c":"PongFrame","l":"respond(TyrusWebSocket)","url":"respond(org.glassfish.tyrus.core.TyrusWebSocket)"},{"p":"org.glassfish.tyrus.core.frame","c":"TextFrame","l":"respond(TyrusWebSocket)","url":"respond(org.glassfish.tyrus.core.TyrusWebSocket)"},{"p":"org.glassfish.tyrus.core.frame","c":"TyrusFrame","l":"respond(TyrusWebSocket)","url":"respond(org.glassfish.tyrus.core.TyrusWebSocket)"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"RESPONSE_CODE_MESSAGE"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"retrieve(Properties)","url":"retrieve(java.util.Properties)"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeResponse","l":"RETRY_AFTER"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"RETRY_AFTER_SERVICE_UNAVAILABLE"},{"p":"org.glassfish.tyrus.client","c":"RetryAfterException","l":"RetryAfterException(String, Long)","url":"%3Cinit%3E(java.lang.String,java.lang.Long)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"RSV_INCORRECTLY_SET()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame.Builder","l":"rsv1(boolean)"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame.Builder","l":"rsv2(boolean)"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame.Builder","l":"rsv3(boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"SCHEME"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"SEC_KEY_INVALID_LENGTH(Object)","url":"SEC_KEY_INVALID_LENGTH(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"SEC_KEY_INVALID_SERVER()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"SEC_KEY_NULL_NOT_ALLOWED()"},{"p":"javax.websocket","c":"HandshakeResponse","l":"SEC_WEBSOCKET_ACCEPT"},{"p":"javax.websocket.server","c":"HandshakeRequest","l":"SEC_WEBSOCKET_EXTENSIONS"},{"p":"javax.websocket.server","c":"HandshakeRequest","l":"SEC_WEBSOCKET_KEY"},{"p":"javax.websocket.server","c":"HandshakeRequest","l":"SEC_WEBSOCKET_PROTOCOL"},{"p":"javax.websocket.server","c":"HandshakeRequest","l":"SEC_WEBSOCKET_VERSION"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"SEC_WS_ORIGIN_HEADER"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"SECURE"},{"p":"org.glassfish.tyrus.core","c":"RequestContext.Builder","l":"secure(boolean)"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyClientProperties","l":"SELECTOR_THREAD_POOL_CONFIG"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyClientSocket","l":"SELECTOR_THREAD_POOL_CONFIG"},{"p":"org.glassfish.tyrus.container.grizzly.server","c":"GrizzlyServerContainer","l":"SELECTOR_THREAD_POOL_CONFIG"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"SEND_MESSAGE_INFRAGMENT()"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"send(byte[], SendHandler, WriterInfo)","url":"send(byte[],javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"send(byte[], SendHandler)","url":"send(byte[],javax.websocket.SendHandler)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"send(byte[], WriterInfo)","url":"send(byte[],org.glassfish.tyrus.spi.WriterInfo)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"send(byte[])"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"send(String, SendHandler, WriterInfo)","url":"send(java.lang.String,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"send(String, SendHandler)","url":"send(java.lang.String,javax.websocket.SendHandler)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"send(String, WriterInfo)","url":"send(java.lang.String,org.glassfish.tyrus.spi.WriterInfo)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"send(String)","url":"send(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendBinary(byte[], boolean, WriterInfo)","url":"sendBinary(byte[],boolean,org.glassfish.tyrus.spi.WriterInfo)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendBinary(byte[], boolean)","url":"sendBinary(byte[],boolean)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendBinary(byte[], int, int, boolean, WriterInfo)","url":"sendBinary(byte[],int,int,boolean,org.glassfish.tyrus.spi.WriterInfo)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendBinary(byte[], int, int, boolean)","url":"sendBinary(byte[],int,int,boolean)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendBinary(byte[], SendHandler, WriterInfo)","url":"sendBinary(byte[],javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendBinary(byte[], SendHandler)","url":"sendBinary(byte[],javax.websocket.SendHandler)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendBinary(byte[], WriterInfo)","url":"sendBinary(byte[],org.glassfish.tyrus.spi.WriterInfo)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendBinary(byte[])"},{"p":"javax.websocket","c":"RemoteEndpoint.Basic","l":"sendBinary(ByteBuffer, boolean)","url":"sendBinary(java.nio.ByteBuffer,boolean)"},{"p":"javax.websocket","c":"RemoteEndpoint.Async","l":"sendBinary(ByteBuffer, SendHandler)","url":"sendBinary(java.nio.ByteBuffer,javax.websocket.SendHandler)"},{"p":"javax.websocket","c":"RemoteEndpoint.Async","l":"sendBinary(ByteBuffer)","url":"sendBinary(java.nio.ByteBuffer)"},{"p":"javax.websocket","c":"RemoteEndpoint.Basic","l":"sendBinary(ByteBuffer)","url":"sendBinary(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"sendBinary(String, byte[], boolean)","url":"sendBinary(java.lang.String,byte[],boolean)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"sendBinary(String, byte[], SendHandler)","url":"sendBinary(java.lang.String,byte[],javax.websocket.SendHandler)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"sendBinary(String, byte[])","url":"sendBinary(java.lang.String,byte[])"},{"p":"javax.websocket","c":"RemoteEndpoint.Async","l":"sendObject(Object, SendHandler)","url":"sendObject(java.lang.Object,javax.websocket.SendHandler)"},{"p":"javax.websocket","c":"RemoteEndpoint.Async","l":"sendObject(Object)","url":"sendObject(java.lang.Object)"},{"p":"javax.websocket","c":"RemoteEndpoint.Basic","l":"sendObject(Object)","url":"sendObject(java.lang.Object)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendPing(byte[])"},{"p":"javax.websocket","c":"RemoteEndpoint","l":"sendPing(ByteBuffer)","url":"sendPing(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core","c":"TyrusRemoteEndpoint","l":"sendPing(ByteBuffer)","url":"sendPing(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"sendPing(String, byte[])","url":"sendPing(java.lang.String,byte[])"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendPong(byte[])"},{"p":"javax.websocket","c":"RemoteEndpoint","l":"sendPong(ByteBuffer)","url":"sendPong(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core","c":"TyrusRemoteEndpoint","l":"sendPong(ByteBuffer)","url":"sendPong(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"sendPong(String, byte[])","url":"sendPong(java.lang.String,byte[])"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"sendRawFrame(ByteBuffer)","url":"sendRawFrame(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendRawFrame(ByteBuffer)","url":"sendRawFrame(java.nio.ByteBuffer)"},{"p":"javax.websocket","c":"SendResult","l":"SendResult()","url":"%3Cinit%3E()"},{"p":"javax.websocket","c":"SendResult","l":"SendResult(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendText(String, boolean, WriterInfo)","url":"sendText(java.lang.String,boolean,org.glassfish.tyrus.spi.WriterInfo)"},{"p":"javax.websocket","c":"RemoteEndpoint.Basic","l":"sendText(String, boolean)","url":"sendText(java.lang.String,boolean)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendText(String, boolean)","url":"sendText(java.lang.String,boolean)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendText(String, SendHandler, WriterInfo)","url":"sendText(java.lang.String,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)"},{"p":"javax.websocket","c":"RemoteEndpoint.Async","l":"sendText(String, SendHandler)","url":"sendText(java.lang.String,javax.websocket.SendHandler)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendText(String, SendHandler)","url":"sendText(java.lang.String,javax.websocket.SendHandler)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"sendText(String, String, boolean)","url":"sendText(java.lang.String,java.lang.String,boolean)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"sendText(String, String, SendHandler)","url":"sendText(java.lang.String,java.lang.String,javax.websocket.SendHandler)"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"sendText(String, String)","url":"sendText(java.lang.String,java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendText(String, WriterInfo)","url":"sendText(java.lang.String,org.glassfish.tyrus.spi.WriterInfo)"},{"p":"javax.websocket","c":"RemoteEndpoint.Async","l":"sendText(String)","url":"sendText(java.lang.String)"},{"p":"javax.websocket","c":"RemoteEndpoint.Basic","l":"sendText(String)","url":"sendText(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"sendText(String)","url":"sendText(java.lang.String)"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"SERVER_KEY_HASH"},{"p":"org.glassfish.tyrus.server","c":"Server","l":"Server(Class<?>...)","url":"%3Cinit%3E(java.lang.Class...)"},{"p":"org.glassfish.tyrus.server","c":"Server","l":"Server(Map<String, Object>, Class<?>...)","url":"%3Cinit%3E(java.util.Map,java.lang.Class...)"},{"p":"org.glassfish.tyrus.server","c":"Server","l":"Server(String, int, String, Map<String, Object>, Class<?>...)","url":"%3Cinit%3E(java.lang.String,int,java.lang.String,java.util.Map,java.lang.Class...)"},{"p":"org.glassfish.tyrus.server","c":"Server","l":"Server(String, int, String, Map<String, Object>, Set<Class<?>>)","url":"%3Cinit%3E(java.lang.String,int,java.lang.String,java.util.Map,java.util.Set)"},{"p":"org.glassfish.tyrus.spi","c":"ServerContainerFactory","l":"ServerContainerFactory()","url":"%3Cinit%3E()"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"SERVICE_RESTART"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"SERVICE_RESTART"},{"p":"org.glassfish.tyrus.core","c":"ServiceConfigurationError","l":"ServiceConfigurationError(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"ServiceConfigurationError","l":"ServiceConfigurationError(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder.ServiceIteratorProvider","l":"ServiceIteratorProvider()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper.SessionListener.OnOpenResult","l":"SESSION_ALLOWED"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"SESSION_CLOSED_IDLE_TIMEOUT()"},{"p":"org.glassfish.tyrus.servlet","c":"TyrusHttpUpgradeHandler","l":"sessionDestroyed()"},{"p":"org.glassfish.tyrus.core.cluster","c":"SessionEventListener","l":"SessionEventListener(Session)","url":"%3Cinit%3E(javax.websocket.Session)"},{"p":"javax.websocket","c":"SessionException","l":"SessionException(String, Throwable, Session)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable,javax.websocket.Session)"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper.SessionListener","l":"SessionListener()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper","l":"setAccessibleMethod(Method)","url":"setAccessibleMethod(java.lang.reflect.Method)"},{"p":"javax.websocket","c":"WebSocketContainer","l":"setAsyncSendTimeout(long)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"setAsyncSendTimeout(long)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"setAsyncSendTimeout(long)"},{"p":"javax.websocket","c":"RemoteEndpoint","l":"setBatchingAllowed(boolean)"},{"p":"org.glassfish.tyrus.core","c":"TyrusRemoteEndpoint","l":"setBatchingAllowed(boolean)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"setCipherConfigured(boolean)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"setClientMode(boolean)"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"setCorePoolSize(int)"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"setDaemon(boolean)"},{"p":"javax.websocket","c":"WebSocketContainer","l":"setDefaultMaxBinaryMessageBufferSize(int)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"setDefaultMaxBinaryMessageBufferSize(int)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"setDefaultMaxBinaryMessageBufferSize(int)"},{"p":"javax.websocket","c":"WebSocketContainer","l":"setDefaultMaxSessionIdleTimeout(long)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"setDefaultMaxSessionIdleTimeout(long)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"setDefaultMaxSessionIdleTimeout(long)"},{"p":"javax.websocket","c":"WebSocketContainer","l":"setDefaultMaxTextMessageBufferSize(int)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"setDefaultMaxTextMessageBufferSize(int)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"setDefaultMaxTextMessageBufferSize(int)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"setEnabledCipherSuites(String[])","url":"setEnabledCipherSuites(java.lang.String[])"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"setEnabledProtocols(String[])","url":"setEnabledProtocols(java.lang.String[])"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"setExtensionContext(ExtendedExtension.ExtensionContext)","url":"setExtensionContext(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)"},{"p":"org.glassfish.tyrus.core","c":"Handshake","l":"setExtensions(List<Extension>)","url":"setExtensions(java.util.List)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"setExtensions(List<Extension>)","url":"setExtensions(java.util.List)"},{"p":"org.glassfish.tyrus.core","c":"TyrusFuture","l":"setFailure(Throwable)","url":"setFailure(java.lang.Throwable)"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"setHeartbeatInterval(long)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"setHostnameVerifier(HostnameVerifier)","url":"setHostnameVerifier(javax.net.ssl.HostnameVerifier)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"setHostVerificationEnabled(boolean)"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"Endpoint","l":"setId(String)","url":"setId(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"setIncomingBufferSize(int)"},{"p":"org.glassfish.tyrus.servlet","c":"TyrusHttpUpgradeHandler","l":"setIncomingBufferSize(int)"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"setInitialClassLoader(ClassLoader)","url":"setInitialClassLoader(java.lang.ClassLoader)"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder","l":"setIteratorProvider(ServiceFinder.ServiceIteratorProvider)","url":"setIteratorProvider(org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider)"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"setKeepAliveTime(long, TimeUnit)","url":"setKeepAliveTime(long,java.util.concurrent.TimeUnit)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setKeyManagerFactoryAlgorithm(String)","url":"setKeyManagerFactoryAlgorithm(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setKeyPassword(char[])"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setKeyPassword(String)","url":"setKeyPassword(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setKeyStoreBytes(byte[])"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setKeyStoreFile(String)","url":"setKeyStoreFile(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setKeyStorePassword(char[])"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setKeyStorePassword(String)","url":"setKeyStorePassword(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setKeyStoreProvider(String)","url":"setKeyStoreProvider(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setKeyStoreType(String)","url":"setKeyStoreType(java.lang.String)"},{"p":"javax.websocket","c":"Session","l":"setMaxBinaryMessageBufferSize(int)"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"setMaxBinaryMessageBufferSize(int)"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"setMaxBinaryMessageBufferSize(int)"},{"p":"javax.websocket","c":"Session","l":"setMaxIdleTimeout(long)"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"setMaxIdleTimeout(long)"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"setMaxIdleTimeout(long)"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"setMaxPoolSize(int)"},{"p":"javax.websocket","c":"Session","l":"setMaxTextMessageBufferSize(int)"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"setMaxTextMessageBufferSize(int)"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"setMaxTextMessageBufferSize(int)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"setMessageEventListener(MessageEventListener)","url":"setMessageEventListener(org.glassfish.tyrus.core.monitoring.MessageEventListener)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"setNeedClientAuth(boolean)"},{"p":"org.glassfish.tyrus.core.wsadl.model","c":"Endpoint","l":"setPath(String)","url":"setPath(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"setPoolName(String)","url":"setPoolName(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"setPriority(int)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"setProtocolConfigured(boolean)"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"setQueue(Queue<Runnable>)","url":"setQueue(java.util.Queue)"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"setQueueLimit(int)"},{"p":"org.glassfish.tyrus.core","c":"TyrusUpgradeResponse","l":"setReasonPhrase(String)","url":"setReasonPhrase(java.lang.String)"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeResponse","l":"setReasonPhrase(String)","url":"setReasonPhrase(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"TyrusFuture","l":"setResult(T)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setSecurityProtocol(String)","url":"setSecurityProtocol(java.lang.String)"},{"p":"javax.websocket","c":"RemoteEndpoint.Async","l":"setSendTimeout(long)"},{"p":"org.glassfish.tyrus.core","c":"DebugContext","l":"setSessionId(String)","url":"setSessionId(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"TyrusUpgradeResponse","l":"setStatus(int)"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeResponse","l":"setStatus(int)"},{"p":"org.glassfish.tyrus.core","c":"Handshake","l":"setSubProtocols(List<String>)","url":"setSubProtocols(java.util.List)"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"setThreadFactory(ThreadFactory)","url":"setThreadFactory(java.util.concurrent.ThreadFactory)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setTrustManagerFactoryAlgorithm(String)","url":"setTrustManagerFactoryAlgorithm(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setTrustStoreBytes(byte[])"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setTrustStoreFile(String)","url":"setTrustStoreFile(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setTrustStorePassword(String)","url":"setTrustStorePassword(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setTrustStoreProvider(String)","url":"setTrustStoreProvider(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"setTrustStoreType(String)","url":"setTrustStoreType(java.lang.String)"},{"p":"org.glassfish.tyrus.container.grizzly.server","c":"WebSocketAddOn","l":"setup(NetworkListener, FilterChainBuilder)","url":"setup(org.glassfish.grizzly.http.server.NetworkListener,org.glassfish.grizzly.filterchain.FilterChainBuilder)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"setWantClientAuth(boolean)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"setWebSocket(TyrusWebSocket)","url":"setWebSocket(org.glassfish.tyrus.core.TyrusWebSocket)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"setWriter(Writer)","url":"setWriter(org.glassfish.tyrus.spi.Writer)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"setWriteTimeout(long)"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"SHARED_CONTAINER"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyClientContainer","l":"SHARED_CONTAINER"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"SHARED_CONTAINER_IDLE_TIMEOUT"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyClientContainer","l":"SHARED_CONTAINER_IDLE_TIMEOUT"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders.ShortDecoder","l":"ShortDecoder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"BaseContainer","l":"shutdown()"},{"p":"org.glassfish.tyrus.core.cluster","c":"ClusterContext","l":"shutdown()"},{"p":"org.glassfish.tyrus.core","c":"BaseContainer","l":"shutdown(BaseContainer.ShutDownCondition)","url":"shutdown(org.glassfish.tyrus.core.BaseContainer.ShutDownCondition)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"size()"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"SOCKET_BINDING"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"SOCKET_NOT_CONNECTED()"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"SSL_ENGINE_CONFIGURATOR"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"SSL_ENGINE_CONFIGURATOR"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyClientContainer","l":"SSL_ENGINE_CONFIGURATOR"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"sslContext"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"sslContextConfiguration"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"SslContextConfigurator()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"SslContextConfigurator(boolean)","url":"%3Cinit%3E(boolean)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"SslEngineConfigurator()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"SslEngineConfigurator(SSLContext, boolean, boolean, boolean)","url":"%3Cinit%3E(javax.net.ssl.SSLContext,boolean,boolean,boolean)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"SslEngineConfigurator(SSLContext)","url":"%3Cinit%3E(javax.net.ssl.SSLContext)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"SslEngineConfigurator(SslContextConfigurator, boolean, boolean, boolean)","url":"%3Cinit%3E(org.glassfish.tyrus.client.SslContextConfigurator,boolean,boolean,boolean)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"SslEngineConfigurator(SslContextConfigurator)","url":"%3Cinit%3E(org.glassfish.tyrus.client.SslContextConfigurator)"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"SslEngineConfigurator(SslEngineConfigurator)","url":"%3Cinit%3E(org.glassfish.tyrus.client.SslEngineConfigurator)"},{"p":"org.glassfish.tyrus.server","c":"Server","l":"start()"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"start(String, int)","url":"start(java.lang.String,int)"},{"p":"org.glassfish.tyrus.spi","c":"ServerContainer","l":"start(String, int)","url":"start(java.lang.String,int)"},{"p":"org.glassfish.tyrus.server","c":"Server","l":"STATIC_CONTENT_ROOT"},{"p":"org.glassfish.tyrus.server","c":"Server","l":"stop()"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"stop()"},{"p":"org.glassfish.tyrus.spi","c":"ServerContainer","l":"stop()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"store"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"stream(boolean, byte[], int, int, WriterInfo)","url":"stream(boolean,byte[],int,int,org.glassfish.tyrus.spi.WriterInfo)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"stream(boolean, byte[], int, int)","url":"stream(boolean,byte[],int,int)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"stream(boolean, String, WriterInfo)","url":"stream(boolean,java.lang.String,org.glassfish.tyrus.spi.WriterInfo)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"stream(boolean, String)","url":"stream(boolean,java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"StrictUtf8","l":"StrictUtf8()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"Utils.Stringifier","l":"Stringifier()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"stringifyUpgradeRequest(UpgradeRequest)","url":"stringifyUpgradeRequest(org.glassfish.tyrus.spi.UpgradeRequest)"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"stringifyUpgradeResponse(UpgradeResponse)","url":"stringifyUpgradeResponse(org.glassfish.tyrus.spi.UpgradeResponse)"},{"p":"javax.websocket","c":"ClientEndpoint","l":"subprotocols()"},{"p":"javax.websocket.server","c":"ServerEndpoint","l":"subprotocols()"},{"p":"javax.websocket.server","c":"ServerEndpointConfig.Builder","l":"subprotocols(List<String>)","url":"subprotocols(java.util.List)"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfig.Builder","l":"subprotocols(List<String>)","url":"subprotocols(java.util.List)"},{"p":"org.glassfish.tyrus.spi","c":"ClientEngine.ClientUpgradeStatus","l":"SUCCESS"},{"p":"org.glassfish.tyrus.spi","c":"WebSocketEngine.UpgradeStatus","l":"SUCCESS"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.TracingThreshold","l":"SUMMARY"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.RemoteEndpointType","l":"SUPER"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper.ClassTypePair","l":"t"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper.TypeClassPair","l":"t"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"TaskProcessor.Task","l":"Task()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"TaskProcessor","l":"TaskProcessor()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"TaskProcessor","l":"TaskProcessor(TaskProcessor.Condition)","url":"%3Cinit%3E(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Condition)"},{"p":"org.glassfish.tyrus.core.frame","c":"TyrusFrame.FrameType","l":"TEXT"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.MessageType","l":"TEXT"},{"p":"org.glassfish.tyrus.core.frame","c":"TyrusFrame.FrameType","l":"TEXT_CONTINUATION"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.MessageType","l":"TEXT_CONTINUATION"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"TEXT_MESSAGE_HANDLER_NOT_FOUND(Object)","url":"TEXT_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"TEXT_MESSAGE_OUT_OF_ORDER(Object)","url":"TEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.frame","c":"TextFrame","l":"TextFrame(Frame, ByteBuffer, boolean)","url":"%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,java.nio.ByteBuffer,boolean)"},{"p":"org.glassfish.tyrus.core.frame","c":"TextFrame","l":"TextFrame(Frame, ByteBuffer)","url":"%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core.frame","c":"TextFrame","l":"TextFrame(String, boolean, boolean)","url":"%3Cinit%3E(java.lang.String,boolean,boolean)"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"TLS_HANDSHAKE_FAILURE"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"TLS_HANDSHAKE_FAILURE"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder","l":"toArray()"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"toArray(long)"},{"p":"org.glassfish.tyrus.core","c":"ServiceFinder","l":"toClassArray()"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"toLong(byte[], int, int)","url":"toLong(byte[],int,int)"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"TOO_BIG"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"TOO_BIG"},{"p":"javax.websocket","c":"CloseReason","l":"toString()"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"toString()"},{"p":"org.glassfish.tyrus.client","c":"ThreadPoolConfig","l":"toString()"},{"p":"org.glassfish.tyrus.client.auth","c":"AuthConfig","l":"toString()"},{"p":"org.glassfish.tyrus.client.auth","c":"Credentials","l":"toString()"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyWriter","l":"toString()"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper","l":"toString()"},{"p":"org.glassfish.tyrus.core","c":"TyrusExtension","l":"toString()"},{"p":"org.glassfish.tyrus.core","c":"TyrusExtension.TyrusParameter","l":"toString()"},{"p":"org.glassfish.tyrus.core","c":"TyrusRemoteEndpoint","l":"toString()"},{"p":"org.glassfish.tyrus.core","c":"TyrusSession","l":"toString()"},{"p":"org.glassfish.tyrus.core","c":"Version","l":"toString()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession","l":"toString()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"toString()"},{"p":"org.glassfish.tyrus.core.coder","c":"CoderWrapper","l":"toString()"},{"p":"org.glassfish.tyrus.core.frame","c":"Frame","l":"toString()"},{"p":"org.glassfish.tyrus.core.frame","c":"TextFrame","l":"toString()"},{"p":"org.glassfish.tyrus.core.uri","c":"Match","l":"toString()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"toString()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PatternWithGroups","l":"toString()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"toString()"},{"p":"org.glassfish.tyrus.servlet","c":"TyrusHttpUpgradeHandler","l":"toString()"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"toString(byte[], int, int)","url":"toString(byte[],int,int)"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"toString(byte[])"},{"p":"org.glassfish.tyrus.core.coder","c":"ToStringEncoder","l":"ToStringEncoder()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.TracingThreshold","l":"TRACE"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeResponse","l":"TRACING_HEADER_PREFIX"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"TRACING_THRESHOLD"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"TRACING_THRESHOLD"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"TRACING_TYPE"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine.TyrusWebSocketEngineBuilder","l":"tracingThreshold(DebugContext.TracingThreshold)","url":"tracingThreshold(org.glassfish.tyrus.core.DebugContext.TracingThreshold)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine.TyrusWebSocketEngineBuilder","l":"tracingType(DebugContext.TracingType)","url":"tracingType(org.glassfish.tyrus.core.DebugContext.TracingType)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"TRUST_FACTORY_MANAGER_ALGORITHM"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"TRUST_STORE_FILE"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"TRUST_STORE_PASSWORD"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"TRUST_STORE_PROVIDER"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"TRUST_STORE_TYPE"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"TRY_AGAIN_LATER"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"TRY_AGAIN_LATER"},{"p":"org.glassfish.tyrus.core","c":"ReflectionHelper.TypeClassPair","l":"TypeClassPair(Type, Class)","url":"%3Cinit%3E(java.lang.reflect.Type,java.lang.Class)"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper","l":"TyrusEndpointWrapper(Class<? extends Endpoint>, EndpointConfig, ComponentProviderService, WebSocketContainer, String, ServerEndpointConfig.Configurator, TyrusEndpointWrapper.SessionListener, ClusterContext, EndpointEventListener, Boolean)","url":"%3Cinit%3E(java.lang.Class,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper","l":"TyrusEndpointWrapper(Endpoint, EndpointConfig, ComponentProviderService, WebSocketContainer, String, ServerEndpointConfig.Configurator, TyrusEndpointWrapper.SessionListener, ClusterContext, EndpointEventListener, Boolean)","url":"%3Cinit%3E(javax.websocket.Endpoint,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)"},{"p":"org.glassfish.tyrus.core","c":"TyrusExtension","l":"TyrusExtension(String, List<Extension.Parameter>)","url":"%3Cinit%3E(java.lang.String,java.util.List)"},{"p":"org.glassfish.tyrus.core","c":"TyrusExtension","l":"TyrusExtension(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.glassfish.tyrus.core.frame","c":"TyrusFrame","l":"TyrusFrame(Frame, TyrusFrame.FrameType)","url":"%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,org.glassfish.tyrus.core.frame.TyrusFrame.FrameType)"},{"p":"org.glassfish.tyrus.core","c":"TyrusFuture","l":"TyrusFuture()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.servlet","c":"TyrusHttpUpgradeHandler","l":"TyrusHttpUpgradeHandler()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"TyrusExtension.TyrusParameter","l":"TyrusParameter(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerConfiguration","l":"TyrusServerConfiguration(Set<Class<?>>, Set<Class<?>>, Set<ServerEndpointConfig>, ErrorCollector)","url":"%3Cinit%3E(java.util.Set,java.util.Set,java.util.Set,org.glassfish.tyrus.core.ErrorCollector)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerConfiguration","l":"TyrusServerConfiguration(Set<Class<?>>, Set<ServerEndpointConfig>)","url":"%3Cinit%3E(java.util.Set,java.util.Set)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"TyrusServerContainer(ServerApplicationConfig)","url":"%3Cinit%3E(javax.websocket.server.ServerApplicationConfig)"},{"p":"org.glassfish.tyrus.server","c":"TyrusServerContainer","l":"TyrusServerContainer(Set<Class<?>>)","url":"%3Cinit%3E(java.util.Set)"},{"p":"org.glassfish.tyrus.core","c":"TyrusServerEndpointConfigurator","l":"TyrusServerEndpointConfigurator()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.servlet","c":"TyrusServletContainerInitializer","l":"TyrusServletContainerInitializer()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"TyrusUpgradeResponse","l":"TyrusUpgradeResponse()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocket","l":"TyrusWebSocket(ProtocolHandler, TyrusEndpointWrapper)","url":"%3Cinit%3E(org.glassfish.tyrus.core.ProtocolHandler,org.glassfish.tyrus.core.TyrusEndpointWrapper)"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"UNEXPECTED_CONDITION"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"UNEXPECTED_CONDITION"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"UNEXPECTED_END_FRAGMENT()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"UNEXPECTED_ERROR_CONNECTION_CLOSE()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"UNEXPECTED_STATE(Object)","url":"UNEXPECTED_STATE(java.lang.Object)"},{"p":"org.glassfish.tyrus.core","c":"ProtocolHandler","l":"unframe(ByteBuffer)","url":"unframe(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"UNHANDLED_TEXT_MESSAGE(Object)","url":"UNHANDLED_TEXT_MESSAGE(java.lang.Object)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"unregister(TyrusEndpointWrapper)","url":"unregister(org.glassfish.tyrus.core.TyrusEndpointWrapper)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"UNRESERVED"},{"p":"org.glassfish.tyrus.spi","c":"CompletionHandler","l":"updated(E)"},{"p":"org.glassfish.tyrus.core","c":"Handshake","l":"updateHostAndOrigin(UpgradeRequest)","url":"updateHostAndOrigin(org.glassfish.tyrus.spi.UpgradeRequest)"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"UPGRADE"},{"p":"org.glassfish.tyrus.spi","c":"ClientEngine.ClientUpgradeStatus","l":"UPGRADE_REQUEST_FAILED"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"upgrade(UpgradeRequest, UpgradeResponse)","url":"upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)"},{"p":"org.glassfish.tyrus.spi","c":"WebSocketEngine","l":"upgrade(UpgradeRequest, UpgradeResponse)","url":"upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"UpgradeRequest()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeResponse","l":"UpgradeResponse()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(Object, Object)","url":"URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"URI_COMPONENT_ENCODED_OCTET_MALFORMED(Object)","url":"URI_COMPONENT_ENCODED_OCTET_MALFORMED(java.lang.Object)"},{"p":"org.glassfish.tyrus.core.l10n","c":"LocalizationMessages","l":"URI_COMPONENT_INVALID_CHARACTER(Object, Object, Object, Object)","url":"URI_COMPONENT_INVALID_CHARACTER(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"UriTemplate(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplate","l":"UriTemplate(UriTemplateParser)","url":"%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.UriTemplateParser)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriTemplateParser","l":"UriTemplateParser(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"USER_INFO"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"USER_PRINCIPAL"},{"p":"org.glassfish.tyrus.core","c":"RequestContext.Builder","l":"userPrincipal(Principal)","url":"userPrincipal(java.security.Principal)"},{"p":"org.glassfish.tyrus.core","c":"Utf8DecodingException","l":"Utf8DecodingException()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core","c":"Utils","l":"Utils()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"valid(String, UriComponent.Type, boolean)","url":"valid(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"valid(String, UriComponent.Type)","url":"valid(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"validate(String, UriComponent.Type, boolean)","url":"validate(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent","l":"validate(String, UriComponent.Type)","url":"validate(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)"},{"p":"org.glassfish.tyrus.core","c":"Version","l":"validate(UpgradeRequest)","url":"validate(org.glassfish.tyrus.spi.UpgradeRequest)"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"validateConfiguration()"},{"p":"org.glassfish.tyrus.client","c":"SslContextConfigurator","l":"validateConfiguration(boolean)"},{"p":"org.glassfish.tyrus.core","c":"Handshake","l":"validateServerResponse(UpgradeResponse)","url":"validateServerResponse(org.glassfish.tyrus.spi.UpgradeResponse)"},{"p":"javax.websocket.server","c":"PathParam","l":"value()"},{"p":"javax.websocket.server","c":"ServerEndpoint","l":"value()"},{"p":"org.glassfish.tyrus.core","c":"MaxSessions","l":"value()"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.TracingThreshold","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.TracingType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.Type","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper.SessionListener.OnOpenResult","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.core","c":"Version","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.core.frame","c":"TyrusFrame.FrameType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern.RightHandPath","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.spi","c":"ClientEngine.ClientUpgradeStatus","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.spi","c":"WebSocketEngine.UpgradeStatus","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.MessageType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.RemoteEndpointType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"values()"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"values()"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.TracingThreshold","l":"values()"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.TracingType","l":"values()"},{"p":"org.glassfish.tyrus.core","c":"DebugContext.Type","l":"values()"},{"p":"org.glassfish.tyrus.core","c":"TyrusEndpointWrapper.SessionListener.OnOpenResult","l":"values()"},{"p":"org.glassfish.tyrus.core","c":"Version","l":"values()"},{"p":"org.glassfish.tyrus.core.cluster","c":"RemoteSession.DistributedMapKey","l":"values()"},{"p":"org.glassfish.tyrus.core.frame","c":"TyrusFrame.FrameType","l":"values()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"AbstractMultivaluedMap","l":"values()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"PathPattern.RightHandPath","l":"values()"},{"p":"org.glassfish.tyrus.core.uri.internal","c":"UriComponent.Type","l":"values()"},{"p":"org.glassfish.tyrus.spi","c":"ClientEngine.ClientUpgradeStatus","l":"values()"},{"p":"org.glassfish.tyrus.spi","c":"WebSocketEngine.UpgradeStatus","l":"values()"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.MessageType","l":"values()"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo.RemoteEndpointType","l":"values()"},{"p":"javax.websocket","c":"CloseReason.CloseCodes","l":"VIOLATED_POLICY"},{"p":"org.glassfish.tyrus.core","c":"CloseReasons","l":"VIOLATED_POLICY"},{"p":"org.glassfish.tyrus.client","c":"SslEngineConfigurator","l":"wantClientAuth"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeRequest","l":"WEBSOCKET"},{"p":"org.glassfish.tyrus.core","c":"WebSocketException","l":"WebSocketException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.websocket","c":"Decoder.Binary","l":"willDecode(ByteBuffer)","url":"willDecode(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core.coder","c":"InputStreamDecoder","l":"willDecode(ByteBuffer)","url":"willDecode(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core.coder","c":"NoOpByteArrayCoder","l":"willDecode(ByteBuffer)","url":"willDecode(java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.core.coder","c":"NoOpByteBufferCoder","l":"willDecode(ByteBuffer)","url":"willDecode(java.nio.ByteBuffer)"},{"p":"javax.websocket","c":"Decoder.Text","l":"willDecode(String)","url":"willDecode(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"NoOpTextCoder","l":"willDecode(String)","url":"willDecode(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"PrimitiveDecoders","l":"willDecode(String)","url":"willDecode(java.lang.String)"},{"p":"org.glassfish.tyrus.core.coder","c":"ReaderDecoder","l":"willDecode(String)","url":"willDecode(java.lang.String)"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"WLS_HOSTNAME_VERIFIER_CLASS"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"WLS_IGNORE_HOSTNAME_VERIFICATION"},{"p":"org.glassfish.tyrus.spi","c":"ClientContainer","l":"WLS_INCOMING_BUFFER_SIZE"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"WLS_MAX_THREADS"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"WLS_PROXY_HOST"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"WLS_PROXY_PASSWORD"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"WLS_PROXY_PORT"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"WLS_PROXY_USERNAME"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"WLS_SSL_PROTOCOLS_PROPERTY"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"WLS_SSL_TRUSTSTORE_PROPERTY"},{"p":"org.glassfish.tyrus.client","c":"ClientManager","l":"WLS_SSL_TRUSTSTORE_PWD_PROPERTY"},{"p":"org.glassfish.tyrus.client","c":"ClientProperties","l":"WORKER_THREAD_POOL_CONFIG"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyClientProperties","l":"WORKER_THREAD_POOL_CONFIG"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyClientSocket","l":"WORKER_THREAD_POOL_CONFIG"},{"p":"org.glassfish.tyrus.container.grizzly.server","c":"GrizzlyServerContainer","l":"WORKER_THREAD_POOL_CONFIG"},{"p":"org.glassfish.tyrus.core.frame","c":"TyrusFrame","l":"wrap(Frame, byte, ByteBuffer)","url":"wrap(org.glassfish.tyrus.core.frame.Frame,byte,java.nio.ByteBuffer)"},{"p":"org.glassfish.tyrus.spi","c":"Writer","l":"write(ByteBuffer, CompletionHandler<ByteBuffer>, WriterInfo)","url":"write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler,org.glassfish.tyrus.spi.WriterInfo)"},{"p":"org.glassfish.tyrus.container.grizzly.client","c":"GrizzlyWriter","l":"write(ByteBuffer, CompletionHandler<ByteBuffer>)","url":"write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler)"},{"p":"org.glassfish.tyrus.spi","c":"Writer","l":"write(ByteBuffer, CompletionHandler<ByteBuffer>)","url":"write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler)"},{"p":"org.glassfish.tyrus.spi","c":"Writer","l":"Writer()","url":"%3Cinit%3E()"},{"p":"org.glassfish.tyrus.spi","c":"WriterInfo","l":"WriterInfo(WriterInfo.MessageType, WriterInfo.RemoteEndpointType)","url":"%3Cinit%3E(org.glassfish.tyrus.spi.WriterInfo.MessageType,org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType)"},{"p":"org.glassfish.tyrus.core","c":"TyrusWebSocketEngine","l":"WSADL_SUPPORT"},{"p":"org.glassfish.tyrus.spi","c":"UpgradeResponse","l":"WWW_AUTHENTICATE"}]
\ No newline at end of file
diff --git a/apidocs/1.20/member-search-index.zip b/apidocs/1.20/member-search-index.zip
new file mode 100644
index 00000000..be34252e
Binary files /dev/null and b/apidocs/1.20/member-search-index.zip differ
diff --git a/apidocs/1.20/options b/apidocs/1.20/options
new file mode 100644
index 00000000..22697340
--- /dev/null
+++ b/apidocs/1.20/options
@@ -0,0 +1,22 @@
+-classpath
+'/home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/ejb/target/tyrus-container-glassfish-ejb-1.20.jar:/home/jenkins/.m2/repository/javax/websocket/javax.websocket-api/1.1/javax.websocket-api-1.1.jar:/home/jenkins/.m2/repository/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar:/home/jenkins/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar:/home/jenkins/agent/workspace/documentation-update-after-release/spi/target/tyrus-spi-1.20.jar:/home/jenkins/.m2/repository/org/glassfish/grizzly/grizzly-http/2.4.4/grizzly-http-2.4.4.jar:/home/jenkins/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/home/jenkins/.m2/repository/javax/ejb/javax.ejb-api/3.2/javax.ejb-api-3.2.jar:/home/jenkins/agent/workspace/documentation-update-after-release/core/target/tyrus-core-1.20.jar:/home/jenkins/.m2/repository/javax/el/javax.el-api/3.0.0/javax.el-api-3.0.0.jar:/home/jenkins/.m2/repository/javax/transaction/javax.transaction-api/1.2/javax.transaction-api-1.2.jar:/home/jenkins/.m2/repository/javax/enterprise/cdi-api/1.2/cdi-api-1.2.jar:/home/jenkins/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.4.4/grizzly-http-server-2.4.4.jar:/home/jenkins/.m2/repository/javax/interceptor/javax.interceptor-api/1.2/javax.interceptor-api-1.2.jar:/home/jenkins/.m2/repository/org/osgi/org.osgi.core/4.2.0/org.osgi.core-4.2.0.jar:/home/jenkins/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.4.4/grizzly-framework-2.4.4.jar:/home/jenkins/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar'
+-encoding
+'UTF-8'
+-protected
+-sourcepath
+'/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/src/main/java'
+-author
+-bottom
+'Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.'
+-charset
+'UTF-8'
+-d
+'/home/jenkins/agent/workspace/documentation-update-after-release/bundles/websocket-ri-bundle/target/apidocs'
+-docencoding
+'UTF-8'
+-doctitle
+'Tyrus 1.20 API Documentation'
+-use
+-version
+-windowtitle
+'Tyrus 1.20 API'
\ No newline at end of file
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html b/apidocs/1.20/org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html
new file mode 100644
index 00000000..ef006df0
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html
@@ -0,0 +1,377 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientManager.ReconnectHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientManager.ReconnectHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientManager.ReconnectHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client</a></div>
+<h2 title="Class ClientManager.ReconnectHandler" class="title">Class ClientManager.ReconnectHandler</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.ClientManager.ReconnectHandler</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">ClientManager.ReconnectHandler</span>
+extends java.lang.Object</pre>
+<div class="block">Reconnect handler.
+ <p>
+ When implementing, be sure that you do have enough logic behind cancelling reconnect feature - even <a href="../../../../javax/websocket/Session.html#close()"><code>Session.close()</code></a> call will be treated just like any other disconnect resulting in reconnect.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ReconnectHandler</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDelay()">getDelay</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get reconnect delay.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onConnectFailure(java.lang.Exception)">onConnectFailure</a></span>&#8203;(java.lang.Exception&nbsp;exception)</code></th>
+<td class="colLast">
+<div class="block">Called when there is a connection failure.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onDisconnect(javax.websocket.CloseReason)">onDisconnect</a></span>&#8203;(<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Called after <a href="../../../../javax/websocket/OnClose.html" title="annotation in javax.websocket"><code>OnClose</code></a> annotated method (or <a href="../../../../javax/websocket/Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)"><code>Endpoint.onClose(javax.websocket.Session, javax.websocket.CloseReason)</code></a> is invoked.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReconnectHandler</h4>
+<pre>public&nbsp;ReconnectHandler()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onDisconnect(javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onDisconnect</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;onDisconnect&#8203;(<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</pre>
+<div class="block">Called after <a href="../../../../javax/websocket/OnClose.html" title="annotation in javax.websocket"><code>OnClose</code></a> annotated method (or <a href="../../../../javax/websocket/Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)"><code>Endpoint.onClose(javax.websocket.Session, javax.websocket.CloseReason)</code></a> is invoked.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>closeReason</code> - close reason passed to onClose method.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>When <code>true</code> is returned, client container will reconnect.</dd>
+</dl>
+</li>
+</ul>
+<a id="onConnectFailure(java.lang.Exception)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onConnectFailure</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;onConnectFailure&#8203;(java.lang.Exception&nbsp;exception)</pre>
+<div class="block">Called when there is a connection failure.
+ <p>
+ Type of the failure is indicated by <code>Exception</code> parameter. Be cautious when implementing this method,
+ you might easily cause DDoS like behaviour.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>exception</code> - Exception thrown during connection phase.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>When <code>true</code> is returned, client container will reconnect.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDelay()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDelay</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;getDelay()</pre>
+<div class="block">Get reconnect delay.
+ <p>
+ Called after <a href="#onDisconnect(javax.websocket.CloseReason)"><code>onDisconnect(CloseReason)</code></a> or <a href="#onConnectFailure(java.lang.Exception)"><code>onConnectFailure(Exception)</code></a> when <code>true</code> is
+ returned. When positive value is returned, next connection attempt will be made after that number of
+ seconds.
+ <p>
+ Default implementation returns <a href="#RECONNECT_DELAY">5L</a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>reconnect delay in seconds.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientManager.ReconnectHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/ClientManager.html b/apidocs/1.20/org/glassfish/tyrus/client/ClientManager.html
new file mode 100644
index 00000000..1a99babb
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/ClientManager.html
@@ -0,0 +1,1444 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientManager (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientManager (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":9,"i10":9,"i11":9,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientManager.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client</a></div>
+<h2 title="Class ClientManager" class="title">Class ClientManager</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../core/ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.ExecutorServiceProvider</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../core/BaseContainer.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.BaseContainer</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.ClientManager</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ClientManager</span>
+extends <a href="../core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a>
+implements <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></pre>
+<div class="block">ClientManager implementation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client">ClientManager.ReconnectHandler</a></span></code></th>
+<td class="colLast">
+<div class="block">Reconnect handler.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.BaseContainer">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.<a href="../core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></h3>
+<code><a href="../core/BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">BaseContainer.ShutDownCondition</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HANDSHAKE_TIMEOUT">HANDSHAKE_TIMEOUT</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="ClientProperties.html#HANDSHAKE_TIMEOUT"><code>ClientProperties.HANDSHAKE_TIMEOUT</code></a>.</div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PROXY_HEADERS">PROXY_HEADERS</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="ClientProperties.html#PROXY_HEADERS"><code>ClientProperties.PROXY_HEADERS</code></a>.</div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PROXY_URI">PROXY_URI</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="ClientProperties.html#PROXY_URI"><code>ClientProperties.PROXY_URI</code></a>.</div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#RECONNECT_HANDLER">RECONNECT_HANDLER</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="ClientProperties.html#RECONNECT_HANDLER"><code>ClientProperties.RECONNECT_HANDLER</code></a>.</div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SSL_ENGINE_CONFIGURATOR">SSL_ENGINE_CONFIGURATOR</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="ClientProperties.html#SSL_ENGINE_CONFIGURATOR"><code>ClientProperties.SSL_ENGINE_CONFIGURATOR</code></a>.</div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WLS_HOSTNAME_VERIFIER_CLASS">WLS_HOSTNAME_VERIFIER_CLASS</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WLS_IGNORE_HOSTNAME_VERIFICATION">WLS_IGNORE_HOSTNAME_VERIFICATION</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WLS_MAX_THREADS">WLS_MAX_THREADS</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WLS_PROXY_HOST">WLS_PROXY_HOST</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WLS_PROXY_PASSWORD">WLS_PROXY_PASSWORD</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WLS_PROXY_PORT">WLS_PROXY_PORT</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WLS_PROXY_USERNAME">WLS_PROXY_USERNAME</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WLS_SSL_PROTOCOLS_PROPERTY">WLS_SSL_PROTOCOLS_PROPERTY</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WLS_SSL_TRUSTSTORE_PROPERTY">WLS_SSL_TRUSTSTORE_PROPERTY</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WLS_SSL_TRUSTSTORE_PWD_PROPERTY">WLS_SSL_TRUSTSTORE_PWD_PROPERTY</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ClientManager</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="ClientManager.html" title="class in org.glassfish.tyrus.client"><code>ClientManager</code></a> instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asyncConnectToServer(java.lang.Class,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedEndpointClass,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, javax.websocket.ClientEndpointConfig,
+ java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asyncConnectToServer(java.lang.Object,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Object&nbsp;obj,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)"><code>WebSocketContainer.connectToServer(Object, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(<a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                    <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic endpoint to its server with the given 
+ configuration.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&nbsp;annotatedEndpointClass,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied annotated endpoint to its server.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Object&nbsp;obj,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied annotated endpoint instance to its server.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic client endpoint instance to its server 
+ with the given configuration.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createClient()">createClient</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="ClientManager.html" title="class in org.glassfish.tyrus.client"><code>ClientManager</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static <a href="ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createClient(java.lang.String)">createClient</a></span>&#8203;(java.lang.String&nbsp;containerProviderClassName)</code></th>
+<td class="colLast">
+<div class="block">Create new ClientManager instance.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static <a href="ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createClient(java.lang.String,javax.websocket.WebSocketContainer)">createClient</a></span>&#8203;(java.lang.String&nbsp;containerProviderClassName,
+            <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;webSocketContainer)</code></th>
+<td class="colLast">
+<div class="block">Create new ClientManager instance on top of provided <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static <a href="ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createClient(javax.websocket.WebSocketContainer)">createClient</a></span>&#8203;(<a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;webSocketContainer)</code></th>
+<td class="colLast">
+<div class="block">Create new ClientManager instance on top of provided <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultAsyncSendTimeout()">getDefaultAsyncSendTimeout</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the number of milliseconds the implementation will timeout
+ attempting to send a websocket message for all RemoteEndpoints associated
+ with this container.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultMaxBinaryMessageBufferSize()">getDefaultMaxBinaryMessageBufferSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the default maximum size of incoming binary message that this container
+ will buffer.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultMaxSessionIdleTimeout()">getDefaultMaxSessionIdleTimeout</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultMaxTextMessageBufferSize()">getDefaultMaxTextMessageBufferSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the default maximum size of incoming text message that this container
+ will buffer.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstalledExtensions()">getInstalledExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the set of Extensions installed in the container.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Container properties.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAsyncSendTimeout(long)">setAsyncSendTimeout</a></span>&#8203;(long&nbsp;timeoutmillis)</code></th>
+<td class="colLast">
+<div class="block">Sets the number of milliseconds the implementation will timeout
+ attempting to send a websocket message  for all RemoteEndpoints associated
+ with this container.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDefaultMaxBinaryMessageBufferSize(int)">setDefaultMaxBinaryMessageBufferSize</a></span>&#8203;(int&nbsp;i)</code></th>
+<td class="colLast">
+<div class="block">Sets the default maximum size of incoming binary message that this container
+ will buffer.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDefaultMaxSessionIdleTimeout(long)">setDefaultMaxSessionIdleTimeout</a></span>&#8203;(long&nbsp;defaultMaxSessionIdleTimeout)</code></th>
+<td class="colLast">
+<div class="block">Sets the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDefaultMaxTextMessageBufferSize(int)">setDefaultMaxTextMessageBufferSize</a></span>&#8203;(int&nbsp;i)</code></th>
+<td class="colLast">
+<div class="block">Sets the maximum size of incoming text message that this container
+ will buffer.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.BaseContainer">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.<a href="../core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></h3>
+<code><a href="../core/BaseContainer.html#getExecutorService()">getExecutorService</a>, <a href="../core/BaseContainer.html#getScheduledExecutorService()">getScheduledExecutorService</a>, <a href="../core/BaseContainer.html#shutdown()">shutdown</a>, <a href="../core/BaseContainer.html#shutdown(org.glassfish.tyrus.core.BaseContainer.ShutDownCondition)">shutdown</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="HANDSHAKE_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HANDSHAKE_TIMEOUT</h4>
+<pre>public static final&nbsp;java.lang.String HANDSHAKE_TIMEOUT</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="ClientProperties.html#HANDSHAKE_TIMEOUT"><code>ClientProperties.HANDSHAKE_TIMEOUT</code></a>.</div>
+</div>
+<div class="block">Property usable in <a href="#getProperties()"><code>getProperties()</code></a>.
+ <p>
+ Value must be <code>int</code> and represents handshake timeout in milliseconds. Default value is 30000 (30 seconds).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.HANDSHAKE_TIMEOUT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="RECONNECT_HANDLER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RECONNECT_HANDLER</h4>
+<pre>public static final&nbsp;java.lang.String RECONNECT_HANDLER</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="ClientProperties.html#RECONNECT_HANDLER"><code>ClientProperties.RECONNECT_HANDLER</code></a>.</div>
+</div>
+<div class="block">Property usable in <a href="#getProperties()"><code>getProperties()</code></a>.
+ <p>
+ Value must be <a href="ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client"><code>ClientManager.ReconnectHandler</code></a> instance.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.RECONNECT_HANDLER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="PROXY_URI">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROXY_URI</h4>
+<pre>public static final&nbsp;java.lang.String PROXY_URI</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="ClientProperties.html#PROXY_URI"><code>ClientProperties.PROXY_URI</code></a>.</div>
+</div>
+<div class="block">Client-side user property to set proxy URI.
+ <p>
+ Value is expected to be <code>String</code> and represent proxy URI. Protocol part is currently ignored
+ but must be present (<code>URI(String)</code> is used for parsing).
+ <pre>
+     client.getProperties().put(ClientManager.PROXY_URI, "http://my.proxy.com:80");
+     client.connectToServer(...);
+ </pre></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../javax/websocket/EndpointConfig.html#getUserProperties()"><code>EndpointConfig.getUserProperties()</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.PROXY_URI">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="PROXY_HEADERS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROXY_HEADERS</h4>
+<pre>public static final&nbsp;java.lang.String PROXY_HEADERS</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="ClientProperties.html#PROXY_HEADERS"><code>ClientProperties.PROXY_HEADERS</code></a>.</div>
+</div>
+<div class="block">Client-side user property to set additional proxy headers.
+ <p>
+ Value is expected to be <code>Map</code>&lt;<code>String</code>, <code>String</code>&gt; and represent raw http headers
+ to be added to initial request which is sent to proxy. Key corresponds to header name, value is header
+ value.
+ <p>
+ Sample below demonstrates use of this feature to set preemptive basic proxy authentication:
+ <pre>
+     final HashMap&lt;String, String&gt; proxyHeaders = new HashMap&lt;String, String&gt;();
+     proxyHeaders.put("Proxy-Authorization", "Basic " +
+         Base64.getEncoder().encodeToString("username:password".getBytes(Charset.forName("UTF-8"))));
+
+     client.getProperties().put(GrizzlyClientSocket.PROXY_HEADERS, proxyHeaders);
+     client.connectToServer(...);
+ </pre>
+ Please note that these headers will be used only when establishing proxy connection, for modifying
+ WebSocket handshake headers, see <a href="../../../../javax/websocket/ClientEndpointConfig.Configurator.html#beforeRequest(java.util.Map)"><code>ClientEndpointConfig.Configurator.beforeRequest(java.util.Map)</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../javax/websocket/EndpointConfig.html#getUserProperties()"><code>EndpointConfig.getUserProperties()</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.PROXY_HEADERS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SSL_ENGINE_CONFIGURATOR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SSL_ENGINE_CONFIGURATOR</h4>
+<pre>public static final&nbsp;java.lang.String SSL_ENGINE_CONFIGURATOR</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="ClientProperties.html#SSL_ENGINE_CONFIGURATOR"><code>ClientProperties.SSL_ENGINE_CONFIGURATOR</code></a>.</div>
+</div>
+<div class="block">Property usable in <a href="#getProperties()"><code>getProperties()</code></a> as a key for SSL configuration.
+ <p>
+ Value is expected to be either <code>org.glassfish.grizzly.ssl.SSLEngineConfigurator</code> when configuring Grizzly
+ client or <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a> when configuring JDK client.
+ <p>
+ Example configuration for JDK client:
+ <pre>
+      SslContextConfigurator sslContextConfigurator = new SslContextConfigurator();
+      sslContextConfigurator.setTrustStoreFile("...");
+      sslContextConfigurator.setTrustStorePassword("...");
+      sslContextConfigurator.setTrustStoreType("...");
+      sslContextConfigurator.setKeyStoreFile("...");
+      sslContextConfigurator.setKeyStorePassword("...");
+      sslContextConfigurator.setKeyStoreType("...");
+      SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(sslContextConfigurator, true,
+ false,
+ false);
+      client.getProperties().put(ClientManager.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
+ </pre></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.SSL_ENGINE_CONFIGURATOR">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WLS_PROXY_HOST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WLS_PROXY_HOST</h4>
+<pre>public static final&nbsp;java.lang.String WLS_PROXY_HOST</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.WLS_PROXY_HOST">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WLS_PROXY_PORT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WLS_PROXY_PORT</h4>
+<pre>public static final&nbsp;java.lang.String WLS_PROXY_PORT</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.WLS_PROXY_PORT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WLS_PROXY_USERNAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WLS_PROXY_USERNAME</h4>
+<pre>public static final&nbsp;java.lang.String WLS_PROXY_USERNAME</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.WLS_PROXY_USERNAME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WLS_PROXY_PASSWORD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WLS_PROXY_PASSWORD</h4>
+<pre>public static final&nbsp;java.lang.String WLS_PROXY_PASSWORD</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.WLS_PROXY_PASSWORD">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WLS_SSL_PROTOCOLS_PROPERTY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WLS_SSL_PROTOCOLS_PROPERTY</h4>
+<pre>public static final&nbsp;java.lang.String WLS_SSL_PROTOCOLS_PROPERTY</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.WLS_SSL_PROTOCOLS_PROPERTY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WLS_SSL_TRUSTSTORE_PROPERTY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WLS_SSL_TRUSTSTORE_PROPERTY</h4>
+<pre>public static final&nbsp;java.lang.String WLS_SSL_TRUSTSTORE_PROPERTY</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.WLS_SSL_TRUSTSTORE_PROPERTY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WLS_SSL_TRUSTSTORE_PWD_PROPERTY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WLS_SSL_TRUSTSTORE_PWD_PROPERTY</h4>
+<pre>public static final&nbsp;java.lang.String WLS_SSL_TRUSTSTORE_PWD_PROPERTY</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.WLS_SSL_TRUSTSTORE_PWD_PROPERTY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WLS_MAX_THREADS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WLS_MAX_THREADS</h4>
+<pre>public static final&nbsp;java.lang.String WLS_MAX_THREADS</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.WLS_MAX_THREADS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WLS_IGNORE_HOSTNAME_VERIFICATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WLS_IGNORE_HOSTNAME_VERIFICATION</h4>
+<pre>public static final&nbsp;java.lang.String WLS_IGNORE_HOSTNAME_VERIFICATION</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.WLS_IGNORE_HOSTNAME_VERIFICATION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WLS_HOSTNAME_VERIFIER_CLASS">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>WLS_HOSTNAME_VERIFIER_CLASS</h4>
+<pre>public static final&nbsp;java.lang.String WLS_HOSTNAME_VERIFIER_CLASS</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientManager.WLS_HOSTNAME_VERIFIER_CLASS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ClientManager</h4>
+<pre>public&nbsp;ClientManager()</pre>
+<div class="block">Create new <a href="ClientManager.html" title="class in org.glassfish.tyrus.client"><code>ClientManager</code></a> instance.
+ <p>
+ Uses <a href="#CONTAINER_PROVIDER_CLASSNAME"><code>CONTAINER_PROVIDER_CLASSNAME</code></a> as container implementation, thus relevant module needs
+ to be on classpath. Setting different container is possible via <a href="#createClient(java.lang.String)"><code>createClient(String)</code></a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#createClient(java.lang.String)"><code>createClient(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="createClient()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createClient</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a>&nbsp;createClient()</pre>
+<div class="block">Create new <a href="ClientManager.html" title="class in org.glassfish.tyrus.client"><code>ClientManager</code></a> instance.
+ <p>
+ Uses <a href="#CONTAINER_PROVIDER_CLASSNAME"><code>CONTAINER_PROVIDER_CLASSNAME</code></a> as container implementation, thus relevant module needs
+ to be on classpath. Setting different container is possible via <a href="#createClient(java.lang.String)"><code>createClient(String)</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>created client manager.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#createClient(java.lang.String)"><code>createClient(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="createClient(javax.websocket.WebSocketContainer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createClient</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a>&nbsp;createClient&#8203;(<a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;webSocketContainer)</pre>
+<div class="block">Create new ClientManager instance on top of provided <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a> instance.
+ <p>
+ Uses <a href="#CONTAINER_PROVIDER_CLASSNAME"><code>CONTAINER_PROVIDER_CLASSNAME</code></a> as container implementation, thus relevant module needs
+ to be on classpath. Setting different container is possible via <a href="#createClient(java.lang.String)"><code>createClient(String)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>webSocketContainer</code> - websocket container.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>created client manager.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#createClient(java.lang.String)"><code>createClient(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="createClient(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createClient</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a>&nbsp;createClient&#8203;(java.lang.String&nbsp;containerProviderClassName)</pre>
+<div class="block">Create new ClientManager instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>containerProviderClassName</code> - classname of container provider. It will be loaded using context class loader.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new ClientManager instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="createClient(java.lang.String,javax.websocket.WebSocketContainer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createClient</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a>&nbsp;createClient&#8203;(java.lang.String&nbsp;containerProviderClassName,
+                                         <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;webSocketContainer)</pre>
+<div class="block">Create new ClientManager instance on top of provided <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a> instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>containerProviderClassName</code> - classname of container provider. It will be loaded using context class loader.</dd>
+<dd><code>webSocketContainer</code> - websocket container.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new ClientManager instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="connectToServer(java.lang.Class,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectToServer</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;connectToServer&#8203;(java.lang.Class&nbsp;annotatedEndpointClass,
+                               java.net.URI&nbsp;path)
+                        throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                               java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)">WebSocketContainer</a></code></span></div>
+<div class="block">Connect the supplied annotated endpoint to its server. The supplied object must be a
+ class decorated with the class level
+ <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a> annotation. This method blocks until the connection
+ is established, or throws an error if either the connection could not be made or there
+ was a problem with the supplied endpoint class.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>annotatedEndpointClass</code> - the annotated websocket client endpoint.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the class is not a valid annotated endpoint class.</dd>
+<dd><code>java.io.IOException</code> - if there was a network or protocol problem that 
+ prevented the client endpoint being connected to its server.</dd>
+</dl>
+</li>
+</ul>
+<a id="connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectToServer</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;connectToServer&#8203;(java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                               <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                               java.net.URI&nbsp;path)
+                        throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                               java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">WebSocketContainer</a></code></span></div>
+<div class="block">Connect the supplied programmatic endpoint to its server with the given 
+ configuration. This method blocks until the connection
+ is established, or throws an error if the connection could not be made.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - the programmatic client endpoint class <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</dd>
+<dd><code>cec</code> - the configuration used to configure the programmatic endpoint.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the configuration is not valid</dd>
+<dd><code>java.io.IOException</code> - if there was a network or protocol problem that prevented the client endpoint being connected to its server</dd>
+</dl>
+</li>
+</ul>
+<a id="connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectToServer</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;connectToServer&#8203;(<a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                               <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                               java.net.URI&nbsp;path)
+                        throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                               java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">WebSocketContainer</a></code></span></div>
+<div class="block">Connect the supplied programmatic client endpoint instance to its server 
+ with the given configuration. This method blocks until the connection
+ is established, or throws an error if the connection could not be made. 
+ If the developer uses this method to deploy the client
+ endpoint, services like dependency injection that are supported, for 
+ example, when the implementation is part of the Java EE platform
+ may not be available. If the client endpoint uses dependency injection,
+ use <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(java.lang.Class, javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>
+ instead.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointInstance</code> - the programmatic client endpoint instance <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</dd>
+<dd><code>cec</code> - the configuration used to configure the programmatic endpoint.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the configuration is not valid</dd>
+<dd><code>java.io.IOException</code> - if there was a network or protocol problem that 
+ prevented the client endpoint being connected to its server</dd>
+</dl>
+</li>
+</ul>
+<a id="connectToServer(java.lang.Object,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectToServer</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;connectToServer&#8203;(java.lang.Object&nbsp;obj,
+                               java.net.URI&nbsp;path)
+                        throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                               java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)">WebSocketContainer</a></code></span></div>
+<div class="block">Connect the supplied annotated endpoint instance to its server. The supplied 
+ object must be a class decorated with the class level
+ <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a> annotation. This method 
+ blocks until the connection is established, or throws an error if either 
+ the connection could not be made or there was a problem with the supplied 
+ endpoint class. If the developer uses this method to deploy the client
+ endpoint, services like dependency injection that are supported, for 
+ example, when the implementation is part of the Java EE platform
+ may not be available. If the client endpoint uses dependency injection,
+ use <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)"><code>WebSocketContainer.connectToServer(java.lang.Class, java.net.URI)</code></a>
+ instead.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the annotated websocket client endpoint 
+ instance.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the annotated endpoint instance is not valid.</dd>
+<dd><code>java.io.IOException</code> - if there was a network or protocol problem that 
+ prevented the client endpoint being connected to its server.</dd>
+</dl>
+</li>
+</ul>
+<a id="asyncConnectToServer(java.lang.Class,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asyncConnectToServer</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;&nbsp;asyncConnectToServer&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedEndpointClass,
+                                                                 java.net.URI&nbsp;path)
+                                                          throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, java.net.URI)</code></a>.
+ <p>
+ Only simple checks are performed in the main thread; client container is created in different thread, same
+ applies to connecting etc.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>annotatedEndpointClass</code> - the annotated websocket client endpoint.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Future for the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the class is not a valid annotated endpoint class.</dd>
+</dl>
+</li>
+</ul>
+<a id="asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asyncConnectToServer</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;&nbsp;asyncConnectToServer&#8203;(java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                                                                 <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                                                                 java.net.URI&nbsp;path)
+                                                          throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, javax.websocket.ClientEndpointConfig,
+ java.net.URI)</code></a>.
+ <p>
+ Only simple checks are performed in the main thread; client container is created in different thread, same
+ applies to connecting etc.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - the programmatic client endpoint class <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dd><code>cec</code> - the configuration used to configure the programmatic endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the configuration is not valid</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, javax.websocket.ClientEndpointConfig, java.net.URI)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asyncConnectToServer</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;&nbsp;asyncConnectToServer&#8203;(<a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                                                                 <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                                                                 java.net.URI&nbsp;path)
+                                                          throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.
+ <p>
+ Only simple checks are performed in the main thread; client container is created in different thread, same
+ applies to connecting etc.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointInstance</code> - the programmatic client endpoint instance <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dd><code>cec</code> - the configuration used to configure the programmatic endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the configuration is not valid</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint, javax.websocket.ClientEndpointConfig,
+ java.net.URI)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="asyncConnectToServer(java.lang.Object,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asyncConnectToServer</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;&nbsp;asyncConnectToServer&#8203;(java.lang.Object&nbsp;obj,
+                                                                 java.net.URI&nbsp;path)
+                                                          throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)"><code>WebSocketContainer.connectToServer(Object, java.net.URI)</code></a>.
+ <p>
+ Only simple checks are performed in the main thread; client container is created in different thread, same
+ applies to connecting etc.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the annotated websocket client endpoint instance.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the annotated endpoint instance is not valid.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)"><code>WebSocketContainer.connectToServer(Object, java.net.URI)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getDefaultMaxBinaryMessageBufferSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultMaxBinaryMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getDefaultMaxBinaryMessageBufferSize()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxBinaryMessageBufferSize()">WebSocketContainer</a></code></span></div>
+<div class="block">Returns the default maximum size of incoming binary message that this container
+ will buffer. This default may be overridden on a per session basis using
+ <a href="../../../../javax/websocket/Session.html#setMaxBinaryMessageBufferSize(int)"><code>Session.setMaxBinaryMessageBufferSize(int)</code></a></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxBinaryMessageBufferSize()">getDefaultMaxBinaryMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum size of incoming binary message in number of bytes.</dd>
+</dl>
+</li>
+</ul>
+<a id="setDefaultMaxBinaryMessageBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDefaultMaxBinaryMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setDefaultMaxBinaryMessageBufferSize&#8203;(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxBinaryMessageBufferSize(int)">WebSocketContainer</a></code></span></div>
+<div class="block">Sets the default maximum size of incoming binary message that this container
+ will buffer.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxBinaryMessageBufferSize(int)">setDefaultMaxBinaryMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - the maximum size of binary message in number of bytes.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDefaultMaxTextMessageBufferSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultMaxTextMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getDefaultMaxTextMessageBufferSize()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxTextMessageBufferSize()">WebSocketContainer</a></code></span></div>
+<div class="block">Returns the default maximum size of incoming text message that this container
+ will buffer. This default may be overridden on a per session basis using
+ <a href="../../../../javax/websocket/Session.html#setMaxTextMessageBufferSize(int)"><code>Session.setMaxTextMessageBufferSize(int)</code></a></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxTextMessageBufferSize()">getDefaultMaxTextMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum size of incoming text message in number of bytes.</dd>
+</dl>
+</li>
+</ul>
+<a id="setDefaultMaxTextMessageBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDefaultMaxTextMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setDefaultMaxTextMessageBufferSize&#8203;(int&nbsp;i)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxTextMessageBufferSize(int)">WebSocketContainer</a></code></span></div>
+<div class="block">Sets the maximum size of incoming text message that this container
+ will buffer.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxTextMessageBufferSize(int)">setDefaultMaxTextMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - the maximum size of text message in number of bytes.</dd>
+</dl>
+</li>
+</ul>
+<a id="getInstalledExtensions()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInstalledExtensions</h4>
+<pre class="methodSignature">public&nbsp;java.util.Set&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;getInstalledExtensions()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#getInstalledExtensions()">WebSocketContainer</a></code></span></div>
+<div class="block">Return the set of Extensions installed in the container.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#getInstalledExtensions()">getInstalledExtensions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the set of extensions.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDefaultAsyncSendTimeout()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultAsyncSendTimeout</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;getDefaultAsyncSendTimeout()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultAsyncSendTimeout()">WebSocketContainer</a></code></span></div>
+<div class="block">Return the number of milliseconds the implementation will timeout
+ attempting to send a websocket message for all RemoteEndpoints associated
+ with this container. A non-positive number indicates
+ the implementation will not timeout attempting to send a websocket message
+ asynchronously. Note this default may be overridden in each RemoteEndpoint.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultAsyncSendTimeout()">getDefaultAsyncSendTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the timeout time in millsenconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="setAsyncSendTimeout(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAsyncSendTimeout</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setAsyncSendTimeout&#8203;(long&nbsp;timeoutmillis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#setAsyncSendTimeout(long)">WebSocketContainer</a></code></span></div>
+<div class="block">Sets the number of milliseconds the implementation will timeout
+ attempting to send a websocket message  for all RemoteEndpoints associated
+ with this container. A non-positive number indicates
+ the implementation will not timeout attempting to send a websocket message
+ asynchronously. Note this default may be overridden in each RemoteEndpoint.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#setAsyncSendTimeout(long)">setAsyncSendTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="getDefaultMaxSessionIdleTimeout()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultMaxSessionIdleTimeout</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;getDefaultMaxSessionIdleTimeout()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxSessionIdleTimeout()">WebSocketContainer</a></code></span></div>
+<div class="block">Return the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive. A value that is
+ 0 or negative indicates the sessions will never timeout due to inactivity.
+ The value may be overridden on a per session basis using
+ <a href="../../../../javax/websocket/Session.html#setMaxIdleTimeout(long)"><code>Session.setMaxIdleTimeout(long)</code></a></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxSessionIdleTimeout()">getDefaultMaxSessionIdleTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the default number of milliseconds after which an idle session in this container
+ will be closed</dd>
+</dl>
+</li>
+</ul>
+<a id="setDefaultMaxSessionIdleTimeout(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDefaultMaxSessionIdleTimeout</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setDefaultMaxSessionIdleTimeout&#8203;(long&nbsp;defaultMaxSessionIdleTimeout)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxSessionIdleTimeout(long)">WebSocketContainer</a></code></span></div>
+<div class="block">Sets the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive. A value that is
+ 0 or negative indicates the sessions will never timeout due to inactivity.
+ The value may be overridden on a per session basis using
+ <a href="../../../../javax/websocket/Session.html#setMaxIdleTimeout(long)"><code>Session.setMaxIdleTimeout(long)</code></a></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxSessionIdleTimeout(long)">setDefaultMaxSessionIdleTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>defaultMaxSessionIdleTimeout</code> - the maximum time in milliseconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;getProperties()</pre>
+<div class="block">Container properties.
+ <p>
+ Used to set container specific configuration as SSL truststore and keystore, HTTP Proxy configuration and
+ maximum
+ incoming buffer size. These properties cannot be shared among various containers due to constraints in WebSocket
+ API, so if you need to have multiple configurations, you will need to create multiple ClientManager instances or
+ synchronize connectToServer method invocations.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map containing container properties.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ClientProperties.html" title="class in org.glassfish.tyrus.client"><code>ClientProperties</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientManager.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/ClientProperties.html b/apidocs/1.20/org/glassfish/tyrus/client/ClientProperties.html
new file mode 100644
index 00000000..02dfbd65
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/ClientProperties.html
@@ -0,0 +1,828 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientProperties (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientProperties (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientProperties.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client</a></div>
+<h2 title="Class ClientProperties" class="title">Class ClientProperties</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.ClientProperties</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">ClientProperties</span>
+extends java.lang.Object</pre>
+<div class="block">Tyrus client configuration properties.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Petr Janouch</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AUTH_CONFIG">AUTH_CONFIG</a></span></code></th>
+<td class="colLast">
+<div class="block">Authentication configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CREDENTIALS">CREDENTIALS</a></span></code></th>
+<td class="colLast">
+<div class="block">Authentication credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HANDSHAKE_TIMEOUT">HANDSHAKE_TIMEOUT</a></span></code></th>
+<td class="colLast">
+<div class="block">Property usable in <a href="ClientManager.html#getProperties()"><code>ClientManager.getProperties()</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#INCOMING_BUFFER_SIZE">INCOMING_BUFFER_SIZE</a></span></code></th>
+<td class="colLast">
+<div class="block">Property name for maximal incoming buffer size.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LOG_HTTP_UPGRADE">LOG_HTTP_UPGRADE</a></span></code></th>
+<td class="colLast">
+<div class="block">User property to configure logging of HTTP upgrade messages.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MASKING_KEY_GENERATOR">MASKING_KEY_GENERATOR</a></span></code></th>
+<td class="colLast">
+<div class="block">Property name for registering a custom masking key generator.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PROXY_HEADERS">PROXY_HEADERS</a></span></code></th>
+<td class="colLast">
+<div class="block">User property to set additional proxy headers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PROXY_URI">PROXY_URI</a></span></code></th>
+<td class="colLast">
+<div class="block">User property to set proxy URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#RECONNECT_HANDLER">RECONNECT_HANDLER</a></span></code></th>
+<td class="colLast">
+<div class="block">Property usable in <a href="ClientManager.html#getProperties()"><code>ClientManager.getProperties()</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#REDIRECT_ENABLED">REDIRECT_ENABLED</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP Redirect support.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#REDIRECT_THRESHOLD">REDIRECT_THRESHOLD</a></span></code></th>
+<td class="colLast">
+<div class="block">The maximal number of redirects during single handshake.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#RETRY_AFTER_SERVICE_UNAVAILABLE">RETRY_AFTER_SERVICE_UNAVAILABLE</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP Service Unavailable - <a href="../spi/UpgradeResponse.html#RETRY_AFTER">"Retry-After"</a> reconnect support.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SHARED_CONTAINER">SHARED_CONTAINER</a></span></code></th>
+<td class="colLast">
+<div class="block">When set to <code>true</code> (boolean value), client runtime preserves used container and reuses it for outgoing
+ connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SHARED_CONTAINER_IDLE_TIMEOUT">SHARED_CONTAINER_IDLE_TIMEOUT</a></span></code></th>
+<td class="colLast">
+<div class="block">Container idle timeout in seconds (<code>Integer</code> value).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SOCKET_BINDING">SOCKET_BINDING</a></span></code></th>
+<td class="colLast">
+<div class="block">Property name for defining local binding address for all socket created by the client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SSL_ENGINE_CONFIGURATOR">SSL_ENGINE_CONFIGURATOR</a></span></code></th>
+<td class="colLast">
+<div class="block">Property usable in <a href="ClientManager.html#getProperties()"><code>ClientManager.getProperties()</code></a> as a key for SSL configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WORKER_THREAD_POOL_CONFIG">WORKER_THREAD_POOL_CONFIG</a></span></code></th>
+<td class="colLast">
+<div class="block">User property to set worker thread pool configuration.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ClientProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="HANDSHAKE_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HANDSHAKE_TIMEOUT</h4>
+<pre>public static final&nbsp;java.lang.String HANDSHAKE_TIMEOUT</pre>
+<div class="block">Property usable in <a href="ClientManager.html#getProperties()"><code>ClientManager.getProperties()</code></a>.
+ <p>
+ Value must be <code>int</code> and represents handshake timeout in milliseconds. Default value is 30000 (30 seconds).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.HANDSHAKE_TIMEOUT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="RECONNECT_HANDLER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RECONNECT_HANDLER</h4>
+<pre>public static final&nbsp;java.lang.String RECONNECT_HANDLER</pre>
+<div class="block">Property usable in <a href="ClientManager.html#getProperties()"><code>ClientManager.getProperties()</code></a>.
+ <p>
+ Value must be <a href="ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client"><code>ClientManager.ReconnectHandler</code></a> instance.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#RETRY_AFTER_SERVICE_UNAVAILABLE"><code>RETRY_AFTER_SERVICE_UNAVAILABLE</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.RECONNECT_HANDLER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="PROXY_URI">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROXY_URI</h4>
+<pre>public static final&nbsp;java.lang.String PROXY_URI</pre>
+<div class="block">User property to set proxy URI.
+ <p>
+ Value is expected to be <code>String</code> and represent proxy URI. Protocol part is currently ignored
+ but must be present (<code>URI(String)</code> is used for parsing).
+ <pre>
+     client.getProperties().put(ClientProperties.PROXY_URI, "http://my.proxy.com:80");
+     client.connectToServer(...);
+ </pre></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../javax/websocket/EndpointConfig.html#getUserProperties()"><code>EndpointConfig.getUserProperties()</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.PROXY_URI">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="PROXY_HEADERS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROXY_HEADERS</h4>
+<pre>public static final&nbsp;java.lang.String PROXY_HEADERS</pre>
+<div class="block">User property to set additional proxy headers.
+ <p>
+ Value is expected to be <code>Map</code>&lt;<code>String</code>, <code>String</code>&gt; and represent raw http headers
+ to be added to initial request which is sent to proxy. Key corresponds to header name, value is header
+ value.
+ <p>
+ Sample below demonstrates use of this feature to set preemptive basic proxy authentication:
+ <pre>
+     final HashMap&lt;String, String&gt; proxyHeaders = new HashMap&lt;String, String&gt;();
+     proxyHeaders.put("Proxy-Authorization", "Basic " +
+         Base64.getEncoder().encodeToString("username:password".getBytes(Charset.forName("UTF-8"))));
+
+     client.getProperties().put(ClientProperties.PROXY_HEADERS, proxyHeaders);
+     client.connectToServer(...);
+ </pre>
+ Please note that these headers will be used only when establishing proxy connection, for modifying
+ WebSocket handshake headers, see
+ <a href="../../../../javax/websocket/ClientEndpointConfig.Configurator.html#beforeRequest(java.util.Map)"><code>ClientEndpointConfig.Configurator.beforeRequest(java.util.Map)</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../javax/websocket/EndpointConfig.html#getUserProperties()"><code>EndpointConfig.getUserProperties()</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.PROXY_HEADERS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SSL_ENGINE_CONFIGURATOR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SSL_ENGINE_CONFIGURATOR</h4>
+<pre>public static final&nbsp;java.lang.String SSL_ENGINE_CONFIGURATOR</pre>
+<div class="block">Property usable in <a href="ClientManager.html#getProperties()"><code>ClientManager.getProperties()</code></a> as a key for SSL configuration.
+ <p>
+ Value is expected to be either <code>org.glassfish.grizzly.ssl.SSLEngineConfigurator</code> or
+ <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a> when configuring Grizzly client or only
+ <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a> when configuring JDK client.
+ <p>
+ The advantage of using <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a> with Grizzly client is that
+ <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a> allows configuration of host name verification
+ (which is turned on by default)
+ <p>
+ Example configuration for JDK client:
+ <pre>
+      SslContextConfigurator sslContextConfigurator = new SslContextConfigurator();
+      sslContextConfigurator.setTrustStoreFile("...");
+      sslContextConfigurator.setTrustStorePassword("...");
+      sslContextConfigurator.setTrustStoreType("...");
+      sslContextConfigurator.setKeyStoreFile("...");
+      sslContextConfigurator.setKeyStorePassword("...");
+      sslContextConfigurator.setKeyStoreType("...");
+      SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(sslContextConfigurator, true,
+          false, false);
+      client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
+ </pre></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.SSL_ENGINE_CONFIGURATOR">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="INCOMING_BUFFER_SIZE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INCOMING_BUFFER_SIZE</h4>
+<pre>public static final&nbsp;java.lang.String INCOMING_BUFFER_SIZE</pre>
+<div class="block">Property name for maximal incoming buffer size.
+ <p>
+ Can be set in properties map (see <a href="../spi/ClientContainer.html#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)"><code>ClientContainer.openClientSocket(javax.websocket.ClientEndpointConfig, java.util.Map,
+ org.glassfish.tyrus.spi.ClientEngine)</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.INCOMING_BUFFER_SIZE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SHARED_CONTAINER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SHARED_CONTAINER</h4>
+<pre>public static final&nbsp;java.lang.String SHARED_CONTAINER</pre>
+<div class="block">When set to <code>true</code> (boolean value), client runtime preserves used container and reuses it for outgoing
+ connections.
+ <p>
+ A single thread pool is reused by all clients with this property set to <code>true</code>.
+ JDK client supports only shared container option, so setting this property has no effect.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#SHARED_CONTAINER_IDLE_TIMEOUT"><code>SHARED_CONTAINER_IDLE_TIMEOUT</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.SHARED_CONTAINER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SHARED_CONTAINER_IDLE_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SHARED_CONTAINER_IDLE_TIMEOUT</h4>
+<pre>public static final&nbsp;java.lang.String SHARED_CONTAINER_IDLE_TIMEOUT</pre>
+<div class="block">Container idle timeout in seconds (<code>Integer</code> value).
+ <p>
+ When the timeout elapses, the shared thread pool will be destroyed.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#SHARED_CONTAINER"><code>SHARED_CONTAINER</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.SHARED_CONTAINER_IDLE_TIMEOUT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WORKER_THREAD_POOL_CONFIG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WORKER_THREAD_POOL_CONFIG</h4>
+<pre>public static final&nbsp;java.lang.String WORKER_THREAD_POOL_CONFIG</pre>
+<div class="block">User property to set worker thread pool configuration.
+ <p>
+ An instance of <a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><code>ThreadPoolConfig</code></a> is expected for both JDK
+ and Grizzly client. Instance of <code>org.glassfish.grizzly.threadpool.ThreadPoolConfig</code>, can be used
+ for Grizzly client.
+ <p>
+ Sample below demonstrates how to use this property:
+ <pre>
+     client.getProperties().put(ClientProperties.WORKER_THREAD_POOL_CONFIG, ThreadPoolConfig.defaultConfig());
+ </pre></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.WORKER_THREAD_POOL_CONFIG">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="AUTH_CONFIG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTH_CONFIG</h4>
+<pre>public static final&nbsp;java.lang.String AUTH_CONFIG</pre>
+<div class="block">Authentication configuration. If no AuthConfig is specified then default configuration will be used,
+ containing both Basic and Digest provided authenticators.
+ <p>
+ Value must be <a href="auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a> instance.
+ <p>
+ Sample below demonstrates how to use this property:
+ <pre>
+     client.getProperties().put(ClientProperties.AUTH_CONFIG, AuthConfig.builder().enableProvidedBasicAuth()
+     .build());
+ </pre></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>, 
+<a href="auth/AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig.Builder</code></a>, 
+<a href="auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.AUTH_CONFIG">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CREDENTIALS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREDENTIALS</h4>
+<pre>public static final&nbsp;java.lang.String CREDENTIALS</pre>
+<div class="block">Authentication credentials.
+ <p>
+ Value must be <a href="auth/Credentials.html" title="class in org.glassfish.tyrus.client.auth"><code>Credentials</code></a> instance.
+ <p>
+ Provided authenticators (both Basic and Digest) require this property set,
+ otherwise <a href="auth/AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthenticationException</code></a> will be thrown during a handshake.
+ User defined authenticators may look up credentials in another sources.
+ <p>
+ Sample below demonstrates how to use this property:
+ <pre>
+     client.getProperties().put(ClientProperties.CREDENTIALS, new Credentials("websocket_user", "password");
+ </pre></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="auth/Credentials.html" title="class in org.glassfish.tyrus.client.auth"><code>Credentials</code></a>, 
+<a href="auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>, 
+<a href="auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.CREDENTIALS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="REDIRECT_ENABLED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REDIRECT_ENABLED</h4>
+<pre>public static final&nbsp;java.lang.String REDIRECT_ENABLED</pre>
+<div class="block">HTTP Redirect support.
+ <p>
+ Value is expected to be <code>boolean</code>. Default value is <code>false</code>.
+ <p>
+ When set to <code>true</code> and one of the following redirection HTTP response status code (3xx) is received during
+ a handshake, client will attempt to connect to the <code>URI</code> contained in <a href="../spi/UpgradeResponse.html#LOCATION">"Location"</a>
+ header from handshake response. Number of redirection is limited by property <a href="#REDIRECT_THRESHOLD"><code>REDIRECT_THRESHOLD</code></a>
+ (integer value), while default value is <a href="TyrusClientEngine.html#DEFAULT_REDIRECT_THRESHOLD">5</a>.
+ <p>
+ List of supported HTTP status codes:
+ <ul>
+ <li><code>300 - Multiple Choices</code></li>
+ <li><code>301 - Moved permanently</code></li>
+ <li><code>302 - Found</code></li>
+ <li><code>303 - See Other (since HTTP/1.1)</code></li>
+ <li><code>307 - Temporary Redirect (since HTTP/1.1)</code></li>
+ <li><code>308 - Permanent Redirect (Experimental RFC; RFC 7238)</code></li>
+ </ul></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#REDIRECT_THRESHOLD"><code>REDIRECT_THRESHOLD</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.REDIRECT_ENABLED">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="REDIRECT_THRESHOLD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REDIRECT_THRESHOLD</h4>
+<pre>public static final&nbsp;java.lang.String REDIRECT_THRESHOLD</pre>
+<div class="block">The maximal number of redirects during single handshake.
+ <p>
+ Value is expected to be positive <code>Integer</code>. Default value is <a href="TyrusClientEngine.html#DEFAULT_REDIRECT_THRESHOLD">5</a>.
+ <p>
+ HTTP redirection must be enabled by property <a href="#REDIRECT_ENABLED"><code>REDIRECT_ENABLED</code></a>, otherwise <code>REDIRECT_THRESHOLD</code> is
+ not applied.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#REDIRECT_ENABLED"><code>REDIRECT_ENABLED</code></a>, 
+<a href="RedirectException.html" title="class in org.glassfish.tyrus.client"><code>RedirectException</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.REDIRECT_THRESHOLD">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="RETRY_AFTER_SERVICE_UNAVAILABLE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RETRY_AFTER_SERVICE_UNAVAILABLE</h4>
+<pre>public static final&nbsp;java.lang.String RETRY_AFTER_SERVICE_UNAVAILABLE</pre>
+<div class="block">HTTP Service Unavailable - <a href="../spi/UpgradeResponse.html#RETRY_AFTER">"Retry-After"</a> reconnect support.
+ <p>
+ Value is expected to be <code>boolean</code>. Default value is <code>false</code>.
+ <p>
+ When set to <code>true</code> and HTTP response code <code>503 - Service Unavailable</code> is received, client will
+ attempt to reconnect after delay specified in <a href="../spi/UpgradeResponse.html#RETRY_AFTER">"Retry-After"</a> header from handshake
+ response. According to RFC 2616 the value must be decimal integer (representing delay in seconds) or <code>
+ http-date</code>.
+ <p>
+ Tyrus client will try to reconnect after this delay if:
+ <ul>
+ <li><a href="../spi/UpgradeResponse.html#RETRY_AFTER">"Retry-After"</a> header is present and is not empty</li>
+ <li><a href="../spi/UpgradeResponse.html#RETRY_AFTER">"Retry-After"</a> header can be parsed</li>
+ <li>number of reconnection attempts does not exceed 5</li>
+ <li>delay is not longer then 300 seconds</li>
+ </ul></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="RetryAfterException.html" title="class in org.glassfish.tyrus.client"><code>RetryAfterException</code></a>, 
+<a href="#RECONNECT_HANDLER"><code>RECONNECT_HANDLER</code></a>, 
+<a href="ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client"><code>ClientManager.ReconnectHandler</code></a>, 
+<a href="ClientManager.ReconnectHandler.html#onConnectFailure(java.lang.Exception)"><code>ClientManager.ReconnectHandler.onConnectFailure(Exception)</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.RETRY_AFTER_SERVICE_UNAVAILABLE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="LOG_HTTP_UPGRADE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LOG_HTTP_UPGRADE</h4>
+<pre>public static final&nbsp;java.lang.String LOG_HTTP_UPGRADE</pre>
+<div class="block">User property to configure logging of HTTP upgrade messages.
+ <p>
+ Value is expected to be <code>boolean</code>. Default value is <code>false</code>.
+ <p>
+ When set to <code>true</code> upgrade request and response messages will be logged regardless of the logging
+ level configuration. When the logging is configured to <code>Level.FINE</code> or lower,
+ this setting will have no effect as at this level HTTP upgrade messages will be logged anyway.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.LOG_HTTP_UPGRADE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="MASKING_KEY_GENERATOR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MASKING_KEY_GENERATOR</h4>
+<pre>public static final&nbsp;java.lang.String MASKING_KEY_GENERATOR</pre>
+<div class="block">Property name for registering a custom masking key generator. The expected value is an instance of
+ <a href="../core/MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core"><code>MaskingKeyGenerator</code></a>.
+ <p>
+ As a security measure, all frames originating on websocket client have to be masked with random 4B value, which
+ should be freshly generated for each frame. Moreover to fully comply with the security requirements of RFC 6455,
+ a masking key of a frame must not be predictable from masking keys of previous frames and therefore Tyrus uses
+ <code>SecureRandom</code> as a default masking key generator. While this is perfectly OK for most Tyrus
+ client use cases, usage of <code>SecureRandom</code> might prove to be a performance issue,
+ when the client is used for instance for highly parallel stress testing as <code>SecureRandom</code>
+ uses a synchronized singleton as a random entropy provider in its internals.
+ <p>
+ This property allows replacing the default <code>SecureRandom</code> with a more scalable provider
+ of masking keys.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.MASKING_KEY_GENERATOR">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SOCKET_BINDING">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SOCKET_BINDING</h4>
+<pre>public static final&nbsp;java.lang.String SOCKET_BINDING</pre>
+<div class="block">Property name for defining local binding address for all socket created by the client. The expected value is an instance
+ of <code>InetAddress</code>.
+ <p>
+ Sample below demonstrates how to use this property:
+ <pre>
+     client.getProperties().put(ClientProperties.SOCKET_BINDING, InetAddress.getByName("127.0.0.1"));
+ </pre></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.ClientProperties.SOCKET_BINDING">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ClientProperties</h4>
+<pre>public&nbsp;ClientProperties()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientProperties.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/RedirectException.html b/apidocs/1.20/org/glassfish/tyrus/client/RedirectException.html
new file mode 100644
index 00000000..3de9f10b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/RedirectException.html
@@ -0,0 +1,338 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RedirectException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RedirectException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RedirectException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client</a></div>
+<h2 title="Class RedirectException" class="title">Class RedirectException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Throwable</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Exception</li>
+<li>
+<ul class="inheritance">
+<li><a href="../core/HandshakeException.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.HandshakeException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.RedirectException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">RedirectException</span>
+extends <a href="../core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></pre>
+<div class="block">This exception is set as a cause of <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown from <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...)
+ when any of the Redirect HTTP response status codes (300, 301, 302, 303, 307, 308) is received as a handshake
+ response and:
+ <ul>
+ <li>
+ <a href="ClientProperties.html#REDIRECT_ENABLED"><code>ClientProperties.REDIRECT_ENABLED</code></a> is not enabled
+ </li>
+ <li>
+ or the chained redirection count exceeds the value of <a href="ClientProperties.html#REDIRECT_THRESHOLD"><code>ClientProperties.REDIRECT_THRESHOLD</code></a>
+ </li>
+ <li>
+ or Infinite redirection loop is detected
+ </li>
+ <li>
+ or <a href="../spi/UpgradeResponse.html#LOCATION">"Location"</a> response header is missing, empty or does not contain a valid <code>URI</code>.
+ </li>
+ </ul></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Ondrej Kosatka (ondrej.kosatka at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ClientProperties.html#REDIRECT_ENABLED"><code>ClientProperties.REDIRECT_ENABLED</code></a>, 
+<a href="ClientProperties.html#REDIRECT_THRESHOLD"><code>ClientProperties.REDIRECT_THRESHOLD</code></a>, 
+<a href="../../../../serialized-form.html#org.glassfish.tyrus.client.RedirectException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.lang.String)">RedirectException</a></span>&#8203;(int&nbsp;httpStatusCode,
+                 java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.HandshakeException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.<a href="../core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></h3>
+<code><a href="../core/HandshakeException.html#getHttpStatusCode()">getHttpStatusCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
+<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(int,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RedirectException</h4>
+<pre>public&nbsp;RedirectException&#8203;(int&nbsp;httpStatusCode,
+                         java.lang.String&nbsp;message)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>httpStatusCode</code> - http status code to be set to response.</dd>
+<dd><code>message</code> - the detail message. The detail message is saved for later retrieval by the <code>Throwable.getMessage()</code> method.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RedirectException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/RetryAfterException.html b/apidocs/1.20/org/glassfish/tyrus/client/RetryAfterException.html
new file mode 100644
index 00000000..a401d5ac
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/RetryAfterException.html
@@ -0,0 +1,370 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RetryAfterException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RetryAfterException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RetryAfterException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client</a></div>
+<h2 title="Class RetryAfterException" class="title">Class RetryAfterException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Throwable</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Exception</li>
+<li>
+<ul class="inheritance">
+<li><a href="../core/HandshakeException.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.HandshakeException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.RetryAfterException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">RetryAfterException</span>
+extends <a href="../core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></pre>
+<div class="block">This exception is set as a cause of <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown from <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...) when HTTP response status code <code>503 - Service Unavailable</code> is
+ received.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Ondrej Kosatka (ondrej.kosatka at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client"><code>ClientManager.ReconnectHandler</code></a>, 
+<a href="ClientProperties.html#RETRY_AFTER_SERVICE_UNAVAILABLE"><code>ClientProperties.RETRY_AFTER_SERVICE_UNAVAILABLE</code></a>, 
+<a href="../../../../serialized-form.html#org.glassfish.tyrus.client.RetryAfterException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Long)">RetryAfterException</a></span>&#8203;(java.lang.String&nbsp;message,
+                   java.lang.Long&nbsp;delay)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.Long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDelay()">getDelay</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a delay specified in <a href="../spi/UpgradeResponse.html#RETRY_AFTER">"Retry-After"</a> response header in seconds.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.HandshakeException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.<a href="../core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></h3>
+<code><a href="../core/HandshakeException.html#getHttpStatusCode()">getHttpStatusCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
+<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Long)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RetryAfterException</h4>
+<pre>public&nbsp;RetryAfterException&#8203;(java.lang.String&nbsp;message,
+                           java.lang.Long&nbsp;delay)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message. The detail message is saved for later retrieval by the <code>Throwable.getMessage()</code>
+                method.</dd>
+<dd><code>delay</code> - a delay to the time received handshake response in  header.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getDelay()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDelay</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Long&nbsp;getDelay()</pre>
+<div class="block">Get a delay specified in <a href="../spi/UpgradeResponse.html#RETRY_AFTER">"Retry-After"</a> response header in seconds.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a delay in seconds or <code>null</code> when response does not contain <a href="../spi/UpgradeResponse.html#RETRY_AFTER">"Retry-After"</a> or
+ the value cannot be parsed as long ot <code>http-date</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RetryAfterException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/SslContextConfigurator.html b/apidocs/1.20/org/glassfish/tyrus/client/SslContextConfigurator.html
new file mode 100644
index 00000000..13f38de5
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/SslContextConfigurator.html
@@ -0,0 +1,1129 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SslContextConfigurator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SslContextConfigurator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SslContextConfigurator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client</a></div>
+<h2 title="Class SslContextConfigurator" class="title">Class SslContextConfigurator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.SslContextConfigurator</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">SslContextConfigurator</span>
+extends java.lang.Object</pre>
+<div class="block">Utility class, which helps to configure ssl context.
+ <p>
+ Used to configure <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a>, which will be passed to client via configuration properties.
+ Example:
+ <pre>
+      SslContextConfigurator sslContextConfigurator = new SslContextConfigurator();
+      sslContextConfigurator.setTrustStoreFile("...");
+      sslContextConfigurator.setTrustStorePassword("...");
+      sslContextConfigurator.setTrustStoreType("...");
+      sslContextConfigurator.setKeyStoreFile("...");
+      sslContextConfigurator.setKeyStorePassword("...");
+      sslContextConfigurator.setKeyStoreType("...");
+      SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(sslContextConfigurator, true, false,
+ false);
+      client.getProperties().put(ClientManager.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Alexey Stashok, Hubert Iwaniuk, Bruno Harbulot, Marek Potociar (marek.potociar at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_CONFIG">DEFAULT_CONFIG</a></span></code></th>
+<td class="colLast">
+<div class="block">Default SSL configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#KEY_FACTORY_MANAGER_ALGORITHM">KEY_FACTORY_MANAGER_ALGORITHM</a></span></code></th>
+<td class="colLast">
+<div class="block"><em>Key</em> manager factory algorithm name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#KEY_STORE_FILE">KEY_STORE_FILE</a></span></code></th>
+<td class="colLast">
+<div class="block"><em>Key</em> store file name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#KEY_STORE_PASSWORD">KEY_STORE_PASSWORD</a></span></code></th>
+<td class="colLast">
+<div class="block"><em>Key</em> store file password - the password used to unlock the <em>trust</em> store file.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#KEY_STORE_PROVIDER">KEY_STORE_PROVIDER</a></span></code></th>
+<td class="colLast">
+<div class="block"><em>Key</em> store provider name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#KEY_STORE_TYPE">KEY_STORE_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block"><em>Key</em> store type (see <code>KeyStore.getType()</code> for more info).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TRUST_FACTORY_MANAGER_ALGORITHM">TRUST_FACTORY_MANAGER_ALGORITHM</a></span></code></th>
+<td class="colLast">
+<div class="block"><em>Trust</em> manager factory algorithm name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TRUST_STORE_FILE">TRUST_STORE_FILE</a></span></code></th>
+<td class="colLast">
+<div class="block"><em>Trust</em> store file name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TRUST_STORE_PASSWORD">TRUST_STORE_PASSWORD</a></span></code></th>
+<td class="colLast">
+<div class="block"><em>Trust</em> store file password - the password used to unlock the <em>trust</em> store file.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TRUST_STORE_PROVIDER">TRUST_STORE_PROVIDER</a></span></code></th>
+<td class="colLast">
+<div class="block"><em>Trust</em> store provider name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TRUST_STORE_TYPE">TRUST_STORE_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block"><em>Trust</em> store type (see <code>KeyStore.getType()</code> for more info).</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">SslContextConfigurator</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Default constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(boolean)">SslContextConfigurator</a></span>&#8203;(boolean&nbsp;readSystemProperties)</code></th>
+<td class="colLast">
+<div class="block">Constructor that allows you creating empty configuration.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>javax.net.ssl.SSLContext</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createSSLContext()">createSSLContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create <code>SSLContext</code> from current configuration.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#retrieve(java.util.Properties)">retrieve</a></span>&#8203;(java.util.Properties&nbsp;props)</code></th>
+<td class="colLast">
+<div class="block">Retrieve settings from (system) properties.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setKeyManagerFactoryAlgorithm(java.lang.String)">setKeyManagerFactoryAlgorithm</a></span>&#8203;(java.lang.String&nbsp;keyManagerFactoryAlgorithm)</code></th>
+<td class="colLast">
+<div class="block">Sets the key manager factory algorithm.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setKeyPassword(char%5B%5D)">setKeyPassword</a></span>&#8203;(char[]&nbsp;keyPassword)</code></th>
+<td class="colLast">
+<div class="block">Password of the key in the <em>key</em> store.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setKeyPassword(java.lang.String)">setKeyPassword</a></span>&#8203;(java.lang.String&nbsp;keyPassword)</code></th>
+<td class="colLast">
+<div class="block">Password of the key in the <em>key</em> store.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setKeyStoreBytes(byte%5B%5D)">setKeyStoreBytes</a></span>&#8203;(byte[]&nbsp;keyStoreBytes)</code></th>
+<td class="colLast">
+<div class="block">Sets key store payload as byte array.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setKeyStoreFile(java.lang.String)">setKeyStoreFile</a></span>&#8203;(java.lang.String&nbsp;keyStoreFile)</code></th>
+<td class="colLast">
+<div class="block">Sets key store file name, also makes sure that if other key store
+ configuration parameters are not set to set them to default values.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setKeyStorePassword(char%5B%5D)">setKeyStorePassword</a></span>&#8203;(char[]&nbsp;keyStorePassword)</code></th>
+<td class="colLast">
+<div class="block">Password of <em>key</em> store.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setKeyStorePassword(java.lang.String)">setKeyStorePassword</a></span>&#8203;(java.lang.String&nbsp;keyStorePassword)</code></th>
+<td class="colLast">
+<div class="block">Password of <em>key</em> store.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setKeyStoreProvider(java.lang.String)">setKeyStoreProvider</a></span>&#8203;(java.lang.String&nbsp;keyStoreProvider)</code></th>
+<td class="colLast">
+<div class="block">Sets the <em>key</em> store provider name.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setKeyStoreType(java.lang.String)">setKeyStoreType</a></span>&#8203;(java.lang.String&nbsp;keyStoreType)</code></th>
+<td class="colLast">
+<div class="block">Type of <em>key</em> store.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSecurityProtocol(java.lang.String)">setSecurityProtocol</a></span>&#8203;(java.lang.String&nbsp;securityProtocol)</code></th>
+<td class="colLast">
+<div class="block">Sets the SSLContext protocol.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrustManagerFactoryAlgorithm(java.lang.String)">setTrustManagerFactoryAlgorithm</a></span>&#8203;(java.lang.String&nbsp;trustManagerFactoryAlgorithm)</code></th>
+<td class="colLast">
+<div class="block">Sets the trust manager factory algorithm.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrustStoreBytes(byte%5B%5D)">setTrustStoreBytes</a></span>&#8203;(byte[]&nbsp;trustStoreBytes)</code></th>
+<td class="colLast">
+<div class="block">Sets trust store payload as byte array.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrustStoreFile(java.lang.String)">setTrustStoreFile</a></span>&#8203;(java.lang.String&nbsp;trustStoreFile)</code></th>
+<td class="colLast">
+<div class="block">Sets trust store file name, also makes sure that if other trust store
+ configuration parameters are not set to set them to default values.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrustStorePassword(java.lang.String)">setTrustStorePassword</a></span>&#8203;(java.lang.String&nbsp;trustStorePassword)</code></th>
+<td class="colLast">
+<div class="block">Password of <em>trust</em> store.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrustStoreProvider(java.lang.String)">setTrustStoreProvider</a></span>&#8203;(java.lang.String&nbsp;trustStoreProvider)</code></th>
+<td class="colLast">
+<div class="block">Sets the <em>trust</em> store provider name.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrustStoreType(java.lang.String)">setTrustStoreType</a></span>&#8203;(java.lang.String&nbsp;trustStoreType)</code></th>
+<td class="colLast">
+<div class="block">Type of <em>trust</em> store.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateConfiguration()">validateConfiguration</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Validates <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> configuration.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateConfiguration(boolean)">validateConfiguration</a></span>&#8203;(boolean&nbsp;needsKeyStore)</code></th>
+<td class="colLast">
+<div class="block">Validates <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> configuration.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="TRUST_STORE_PROVIDER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TRUST_STORE_PROVIDER</h4>
+<pre>public static final&nbsp;java.lang.String TRUST_STORE_PROVIDER</pre>
+<div class="block"><em>Trust</em> store provider name.
+ <p>
+ The value MUST be a <code>String</code> representing the name of a <em>trust</em> store provider.
+ <p>
+ No default value is set.
+ <p>
+ The name of the configuration property is <tt>"javax.net.ssl.trustStoreProvider"</tt>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.SslContextConfigurator.TRUST_STORE_PROVIDER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="KEY_STORE_PROVIDER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>KEY_STORE_PROVIDER</h4>
+<pre>public static final&nbsp;java.lang.String KEY_STORE_PROVIDER</pre>
+<div class="block"><em>Key</em> store provider name.
+ <p>
+ The value MUST be a <code>String</code> representing the name of a <em>trust</em> store provider.
+ <p>
+ No default value is set.
+ <p>
+ The name of the configuration property is <tt>"javax.net.ssl.keyStoreProvider"</tt>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.SslContextConfigurator.KEY_STORE_PROVIDER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TRUST_STORE_FILE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TRUST_STORE_FILE</h4>
+<pre>public static final&nbsp;java.lang.String TRUST_STORE_FILE</pre>
+<div class="block"><em>Trust</em> store file name.
+ <p>
+ The value MUST be a <code>String</code> representing the name of a <em>trust</em> store file.
+ <p>
+ No default value is set.
+ <p>
+ The name of the configuration property is <tt>"javax.net.ssl.trustStore"</tt>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.SslContextConfigurator.TRUST_STORE_FILE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="KEY_STORE_FILE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>KEY_STORE_FILE</h4>
+<pre>public static final&nbsp;java.lang.String KEY_STORE_FILE</pre>
+<div class="block"><em>Key</em> store file name.
+ <p>
+ The value MUST be a <code>String</code> representing the name of a <em>key</em> store file.
+ <p>
+ No default value is set.
+ <p>
+ The name of the configuration property is <tt>"javax.net.ssl.keyStore"</tt>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.SslContextConfigurator.KEY_STORE_FILE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TRUST_STORE_PASSWORD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TRUST_STORE_PASSWORD</h4>
+<pre>public static final&nbsp;java.lang.String TRUST_STORE_PASSWORD</pre>
+<div class="block"><em>Trust</em> store file password - the password used to unlock the <em>trust</em> store file.
+ <p>
+ The value MUST be a <code>String</code> representing the <em>trust</em> store file password.
+ <p>
+ No default value is set.
+ <p>
+ The name of the configuration property is <tt>"javax.net.ssl.trustStorePassword"</tt>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.SslContextConfigurator.TRUST_STORE_PASSWORD">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="KEY_STORE_PASSWORD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>KEY_STORE_PASSWORD</h4>
+<pre>public static final&nbsp;java.lang.String KEY_STORE_PASSWORD</pre>
+<div class="block"><em>Key</em> store file password - the password used to unlock the <em>trust</em> store file.
+ <p>
+ The value MUST be a <code>String</code> representing the <em>key</em> store file password.
+ <p>
+ No default value is set.
+ <p>
+ The name of the configuration property is <tt>"javax.net.ssl.keyStorePassword"</tt>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.SslContextConfigurator.KEY_STORE_PASSWORD">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TRUST_STORE_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TRUST_STORE_TYPE</h4>
+<pre>public static final&nbsp;java.lang.String TRUST_STORE_TYPE</pre>
+<div class="block"><em>Trust</em> store type (see <code>KeyStore.getType()</code> for more info).
+ <p>
+ The value MUST be a <code>String</code> representing the <em>trust</em> store type name.
+ <p>
+ No default value is set.
+ <p>
+ The name of the configuration property is <tt>"javax.net.ssl.trustStoreType"</tt>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.SslContextConfigurator.TRUST_STORE_TYPE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="KEY_STORE_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>KEY_STORE_TYPE</h4>
+<pre>public static final&nbsp;java.lang.String KEY_STORE_TYPE</pre>
+<div class="block"><em>Key</em> store type (see <code>KeyStore.getType()</code> for more info).
+ <p>
+ The value MUST be a <code>String</code> representing the <em>key</em> store type name.
+ <p>
+ No default value is set.
+ <p>
+ The name of the configuration property is <tt>"javax.net.ssl.keyStoreType"</tt>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.SslContextConfigurator.KEY_STORE_TYPE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="KEY_FACTORY_MANAGER_ALGORITHM">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>KEY_FACTORY_MANAGER_ALGORITHM</h4>
+<pre>public static final&nbsp;java.lang.String KEY_FACTORY_MANAGER_ALGORITHM</pre>
+<div class="block"><em>Key</em> manager factory algorithm name.
+ <p>
+ The value MUST be a <code>String</code> representing the <em>key</em> manager factory algorithm name.
+ <p>
+ No default value is set.
+ <p>
+ The name of the configuration property is <tt>"ssl.KeyManagerFactory.algorithm"</tt>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.SslContextConfigurator.KEY_FACTORY_MANAGER_ALGORITHM">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TRUST_FACTORY_MANAGER_ALGORITHM">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TRUST_FACTORY_MANAGER_ALGORITHM</h4>
+<pre>public static final&nbsp;java.lang.String TRUST_FACTORY_MANAGER_ALGORITHM</pre>
+<div class="block"><em>Trust</em> manager factory algorithm name.
+ <p>
+ The value MUST be a <code>String</code> representing the <em>trust</em> manager factory algorithm name.
+ <p>
+ No default value is set.
+ <p>
+ The name of the configuration property is <tt>"ssl.TrustManagerFactory.algorithm"</tt>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.SslContextConfigurator.TRUST_FACTORY_MANAGER_ALGORITHM">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="DEFAULT_CONFIG">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_CONFIG</h4>
+<pre>public static final&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a> DEFAULT_CONFIG</pre>
+<div class="block">Default SSL configuration. If you have changed any of
+ <code>System.getProperties()</code> of javax.net.ssl family you should refresh
+ this configuration by calling <a href="#retrieve(java.util.Properties)"><code>retrieve(java.util.Properties)</code></a>.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SslContextConfigurator</h4>
+<pre>public&nbsp;SslContextConfigurator()</pre>
+<div class="block">Default constructor. Reads configuration properties from
+ <code>System.getProperties()</code>. Calls <a href="#%3Cinit%3E(boolean)"><code>SslContextConfigurator(boolean)</code></a> with
+ <code>true</code>.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SslContextConfigurator</h4>
+<pre>public&nbsp;SslContextConfigurator&#8203;(boolean&nbsp;readSystemProperties)</pre>
+<div class="block">Constructor that allows you creating empty configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>readSystemProperties</code> - If <code>true</code> populates configuration from
+                             <code>System.getProperties()</code>, else you have empty
+                             configuration.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="setTrustStoreProvider(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTrustStoreProvider</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setTrustStoreProvider&#8203;(java.lang.String&nbsp;trustStoreProvider)</pre>
+<div class="block">Sets the <em>trust</em> store provider name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>trustStoreProvider</code> - <em>Trust</em> store provider to set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setKeyStoreProvider(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setKeyStoreProvider</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setKeyStoreProvider&#8203;(java.lang.String&nbsp;keyStoreProvider)</pre>
+<div class="block">Sets the <em>key</em> store provider name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keyStoreProvider</code> - <em>Key</em> store provider to set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setTrustStoreType(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTrustStoreType</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setTrustStoreType&#8203;(java.lang.String&nbsp;trustStoreType)</pre>
+<div class="block">Type of <em>trust</em> store.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>trustStoreType</code> - Type of <em>trust</em> store to set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setKeyStoreType(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setKeyStoreType</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setKeyStoreType&#8203;(java.lang.String&nbsp;keyStoreType)</pre>
+<div class="block">Type of <em>key</em> store.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keyStoreType</code> - Type of <em>key</em> store to set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setTrustStorePassword(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTrustStorePassword</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setTrustStorePassword&#8203;(java.lang.String&nbsp;trustStorePassword)</pre>
+<div class="block">Password of <em>trust</em> store.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>trustStorePassword</code> - Password of <em>trust</em> store to set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setKeyStorePassword(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setKeyStorePassword</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setKeyStorePassword&#8203;(java.lang.String&nbsp;keyStorePassword)</pre>
+<div class="block">Password of <em>key</em> store.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keyStorePassword</code> - Password of <em>key</em> store to set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setKeyStorePassword(char[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setKeyStorePassword</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setKeyStorePassword&#8203;(char[]&nbsp;keyStorePassword)</pre>
+<div class="block">Password of <em>key</em> store.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keyStorePassword</code> - Password of <em>key</em> store to set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setKeyPassword(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setKeyPassword</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setKeyPassword&#8203;(java.lang.String&nbsp;keyPassword)</pre>
+<div class="block">Password of the key in the <em>key</em> store.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keyPassword</code> - Password of <em>key</em> to set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setKeyPassword(char[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setKeyPassword</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setKeyPassword&#8203;(char[]&nbsp;keyPassword)</pre>
+<div class="block">Password of the key in the <em>key</em> store.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keyPassword</code> - Password of <em>key</em> to set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setTrustStoreFile(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTrustStoreFile</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setTrustStoreFile&#8203;(java.lang.String&nbsp;trustStoreFile)</pre>
+<div class="block">Sets trust store file name, also makes sure that if other trust store
+ configuration parameters are not set to set them to default values.
+ Method resets trust store bytes if any have been set before via
+ <a href="#setTrustStoreBytes(byte%5B%5D)"><code>setTrustStoreBytes(byte[])</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>trustStoreFile</code> - File name of trust store.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setTrustStoreBytes(byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTrustStoreBytes</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setTrustStoreBytes&#8203;(byte[]&nbsp;trustStoreBytes)</pre>
+<div class="block">Sets trust store payload as byte array.
+ Method resets trust store file if any has been set before via
+ <a href="#setTrustStoreFile(java.lang.String)"><code>setTrustStoreFile(java.lang.String)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>trustStoreBytes</code> - trust store payload.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setKeyStoreFile(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setKeyStoreFile</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setKeyStoreFile&#8203;(java.lang.String&nbsp;keyStoreFile)</pre>
+<div class="block">Sets key store file name, also makes sure that if other key store
+ configuration parameters are not set to set them to default values.
+ Method resets key store bytes if any have been set before via
+ <a href="#setKeyStoreBytes(byte%5B%5D)"><code>setKeyStoreBytes(byte[])</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keyStoreFile</code> - File name of key store.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setKeyStoreBytes(byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setKeyStoreBytes</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setKeyStoreBytes&#8203;(byte[]&nbsp;keyStoreBytes)</pre>
+<div class="block">Sets key store payload as byte array.
+ Method resets key store file if any has been set before via
+ <a href="#setKeyStoreFile(java.lang.String)"><code>setKeyStoreFile(java.lang.String)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keyStoreBytes</code> - key store payload.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setTrustManagerFactoryAlgorithm(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTrustManagerFactoryAlgorithm</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setTrustManagerFactoryAlgorithm&#8203;(java.lang.String&nbsp;trustManagerFactoryAlgorithm)</pre>
+<div class="block">Sets the trust manager factory algorithm.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>trustManagerFactoryAlgorithm</code> - the trust manager factory algorithm.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setKeyManagerFactoryAlgorithm(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setKeyManagerFactoryAlgorithm</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setKeyManagerFactoryAlgorithm&#8203;(java.lang.String&nbsp;keyManagerFactoryAlgorithm)</pre>
+<div class="block">Sets the key manager factory algorithm.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keyManagerFactoryAlgorithm</code> - the key manager factory algorithm.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setSecurityProtocol(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSecurityProtocol</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;setSecurityProtocol&#8203;(java.lang.String&nbsp;securityProtocol)</pre>
+<div class="block">Sets the SSLContext protocol. The default value is <code>TLS</code> if
+ this is null.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>securityProtocol</code> - Protocol for <code>SSLContext.getProtocol()</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="validateConfiguration()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>validateConfiguration</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;validateConfiguration()</pre>
+<div class="block">Validates <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> configuration.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if configuration is valid, else
+ <code>false</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="validateConfiguration(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>validateConfiguration</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;validateConfiguration&#8203;(boolean&nbsp;needsKeyStore)</pre>
+<div class="block">Validates <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>needsKeyStore</code> - forces failure if no keystore is specified.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if configuration is valid, else
+ <code>false</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="createSSLContext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createSSLContext</h4>
+<pre class="methodSignature">public&nbsp;javax.net.ssl.SSLContext&nbsp;createSSLContext()</pre>
+<div class="block">Create <code>SSLContext</code> from current configuration.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>created <code>SSLContext</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="retrieve(java.util.Properties)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>retrieve</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;retrieve&#8203;(java.util.Properties&nbsp;props)</pre>
+<div class="block">Retrieve settings from (system) properties.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>props</code> - property map (usually taken from <code>System.getProperties()</code>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SslContextConfigurator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html b/apidocs/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html
new file mode 100644
index 00000000..3c49c404
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html
@@ -0,0 +1,1065 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SslEngineConfigurator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SslEngineConfigurator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SslEngineConfigurator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client</a></div>
+<h2 title="Class SslEngineConfigurator" class="title">Class SslEngineConfigurator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.SslEngineConfigurator</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">SslEngineConfigurator</span>
+extends java.lang.Object</pre>
+<div class="block">SSLEngineConfigurator class from Grizzly project.
+ <p>
+ Utility class, which helps to configure <code>SSLEngine</code>. Should be passed to client via configuration properties.
+ Example:
+ <pre>
+      SslContextConfigurator sslContextConfigurator = new SslContextConfigurator();
+      sslContextConfigurator.setTrustStoreFile("...");
+      sslContextConfigurator.setTrustStorePassword("...");
+      sslContextConfigurator.setTrustStoreType("...");
+      sslContextConfigurator.setKeyStoreFile("...");
+      sslContextConfigurator.setKeyStorePassword("...");
+      sslContextConfigurator.setKeyStoreType("...");
+      SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(sslContextConfigurator, true, false,
+ false);
+      client.getProperties().put(ClientManager.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Alexey Stashok</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clientMode">clientMode</a></span></code></th>
+<td class="colLast">
+<div class="block">Client mode when handshaking.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected java.lang.String[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#enabledCipherSuites">enabledCipherSuites</a></span></code></th>
+<td class="colLast">
+<div class="block">The list of cipher suites.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected java.lang.String[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#enabledProtocols">enabledProtocols</a></span></code></th>
+<td class="colLast">
+<div class="block">The list of protocols.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#needClientAuth">needClientAuth</a></span></code></th>
+<td class="colLast">
+<div class="block">Require client Authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected javax.net.ssl.SSLContext</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sslContext">sslContext</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sslContextConfiguration">sslContextConfiguration</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#wantClientAuth">wantClientAuth</a></span></code></th>
+<td class="colLast">
+<div class="block">True when requesting authentication.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">SslEngineConfigurator</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Default constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.net.ssl.SSLContext)">SslEngineConfigurator</a></span>&#8203;(javax.net.ssl.SSLContext&nbsp;sslContext)</code></th>
+<td class="colLast">
+<div class="block">Create SSL Engine configuration basing on passed <code>SSLContext</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.net.ssl.SSLContext,boolean,boolean,boolean)">SslEngineConfigurator</a></span>&#8203;(javax.net.ssl.SSLContext&nbsp;sslContext,
+                     boolean&nbsp;clientMode,
+                     boolean&nbsp;needClientAuth,
+                     boolean&nbsp;wantClientAuth)</code></th>
+<td class="colLast">
+<div class="block">Create SSL Engine configuration based on passed <code>SSLContext</code>,
+ using passed client mode, need/want client auth parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.client.SslContextConfigurator)">SslEngineConfigurator</a></span>&#8203;(<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;sslContextConfiguration)</code></th>
+<td class="colLast">
+<div class="block">Create SSL Engine configuration based on passed <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.client.SslContextConfigurator,boolean,boolean,boolean)">SslEngineConfigurator</a></span>&#8203;(<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;sslContextConfiguration,
+                     boolean&nbsp;clientMode,
+                     boolean&nbsp;needClientAuth,
+                     boolean&nbsp;wantClientAuth)</code></th>
+<td class="colLast">
+<div class="block">Create SSL Engine configuration basing on passed <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.client.SslEngineConfigurator)">SslEngineConfigurator</a></span>&#8203;(<a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a>&nbsp;original)</code></th>
+<td class="colLast">
+<div class="block">Copy constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>javax.net.ssl.SSLEngine</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configure(javax.net.ssl.SSLEngine)">configure</a></span>&#8203;(javax.net.ssl.SSLEngine&nbsp;sslEngine)</code></th>
+<td class="colLast">
+<div class="block">Configure passed <code>SSLEngine</code>, using current configurator settings, excluding Hostname Verification.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#copy()">copy</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>javax.net.ssl.SSLEngine</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createSSLEngine(java.lang.String)">createSSLEngine</a></span>&#8203;(java.lang.String&nbsp;serverHost)</code></th>
+<td class="colLast">
+<div class="block">Create and configure <code>SSLEngine</code>, based on current settings.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.lang.String[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEnabledCipherSuites()">getEnabledCipherSuites</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get enabled cipher suites.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.lang.String[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEnabledProtocols()">getEnabledProtocols</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get enabled protocols.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>javax.net.ssl.HostnameVerifier</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHostnameVerifier()">getHostnameVerifier</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get custom hostname verifier.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>javax.net.ssl.SSLContext</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSslContext()">getSslContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create <code>SSLContext</code> and store it for further invocation of this method.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCipherConfigured()">isCipherConfigured</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isClientMode()">isClientMode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Will <code>SSLEngine</code> be configured to work in client mode.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isHostVerificationEnabled()">isHostVerificationEnabled</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the hostname verification state.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNeedClientAuth()">isNeedClientAuth</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get "need client auth" property.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isProtocolConfigured()">isProtocolConfigured</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isWantClientAuth()">isWantClientAuth</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get "want client auth" property.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCipherConfigured(boolean)">setCipherConfigured</a></span>&#8203;(boolean&nbsp;isCipherConfigured)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setClientMode(boolean)">setClientMode</a></span>&#8203;(boolean&nbsp;clientMode)</code></th>
+<td class="colLast">
+<div class="block">Set <code>SSLEngine</code> to be configured to work in client mode.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEnabledCipherSuites(java.lang.String%5B%5D)">setEnabledCipherSuites</a></span>&#8203;(java.lang.String[]&nbsp;enabledCipherSuites)</code></th>
+<td class="colLast">
+<div class="block">Set enabled cipher suites.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEnabledProtocols(java.lang.String%5B%5D)">setEnabledProtocols</a></span>&#8203;(java.lang.String[]&nbsp;enabledProtocols)</code></th>
+<td class="colLast">
+<div class="block">Set enabled protocols.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setHostnameVerifier(javax.net.ssl.HostnameVerifier)">setHostnameVerifier</a></span>&#8203;(javax.net.ssl.HostnameVerifier&nbsp;hostnameVerifier)</code></th>
+<td class="colLast">
+<div class="block">Set custom hostname verifier.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setHostVerificationEnabled(boolean)">setHostVerificationEnabled</a></span>&#8203;(boolean&nbsp;hostVerificationEnabled)</code></th>
+<td class="colLast">
+<div class="block">Set hostname verification.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setNeedClientAuth(boolean)">setNeedClientAuth</a></span>&#8203;(boolean&nbsp;needClientAuth)</code></th>
+<td class="colLast">
+<div class="block">Set "need client auth" property.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setProtocolConfigured(boolean)">setProtocolConfigured</a></span>&#8203;(boolean&nbsp;isProtocolConfigured)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setWantClientAuth(boolean)">setWantClientAuth</a></span>&#8203;(boolean&nbsp;wantClientAuth)</code></th>
+<td class="colLast">
+<div class="block">Set "want client auth" property.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="sslContextConfiguration">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sslContextConfiguration</h4>
+<pre>protected volatile&nbsp;<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a> sslContextConfiguration</pre>
+</li>
+</ul>
+<a id="sslContext">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sslContext</h4>
+<pre>protected volatile&nbsp;javax.net.ssl.SSLContext sslContext</pre>
+</li>
+</ul>
+<a id="enabledCipherSuites">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>enabledCipherSuites</h4>
+<pre>protected&nbsp;java.lang.String[] enabledCipherSuites</pre>
+<div class="block">The list of cipher suites.</div>
+</li>
+</ul>
+<a id="enabledProtocols">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>enabledProtocols</h4>
+<pre>protected&nbsp;java.lang.String[] enabledProtocols</pre>
+<div class="block">The list of protocols.</div>
+</li>
+</ul>
+<a id="clientMode">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clientMode</h4>
+<pre>protected&nbsp;boolean clientMode</pre>
+<div class="block">Client mode when handshaking.</div>
+</li>
+</ul>
+<a id="needClientAuth">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>needClientAuth</h4>
+<pre>protected&nbsp;boolean needClientAuth</pre>
+<div class="block">Require client Authentication.</div>
+</li>
+</ul>
+<a id="wantClientAuth">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>wantClientAuth</h4>
+<pre>protected&nbsp;boolean wantClientAuth</pre>
+<div class="block">True when requesting authentication.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(javax.net.ssl.SSLContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SslEngineConfigurator</h4>
+<pre>public&nbsp;SslEngineConfigurator&#8203;(javax.net.ssl.SSLContext&nbsp;sslContext)</pre>
+<div class="block">Create SSL Engine configuration basing on passed <code>SSLContext</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sslContext</code> - <code>SSLContext</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.net.ssl.SSLContext,boolean,boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SslEngineConfigurator</h4>
+<pre>public&nbsp;SslEngineConfigurator&#8203;(javax.net.ssl.SSLContext&nbsp;sslContext,
+                             boolean&nbsp;clientMode,
+                             boolean&nbsp;needClientAuth,
+                             boolean&nbsp;wantClientAuth)</pre>
+<div class="block">Create SSL Engine configuration based on passed <code>SSLContext</code>,
+ using passed client mode, need/want client auth parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sslContext</code> - <code>SSLContext</code>.</dd>
+<dd><code>clientMode</code> - will be configured to work in client mode.</dd>
+<dd><code>needClientAuth</code> - client authentication is required.</dd>
+<dd><code>wantClientAuth</code> - client should authenticate.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.glassfish.tyrus.client.SslContextConfigurator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SslEngineConfigurator</h4>
+<pre>public&nbsp;SslEngineConfigurator&#8203;(<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;sslContextConfiguration)</pre>
+<div class="block">Create SSL Engine configuration based on passed <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a>.
+ This constructor makes possible to initialize SSLEngine and SSLContext in lazy
+ fashion on first <a href="#createSSLEngine(java.lang.String)"><code>createSSLEngine(String)</code></a> call.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sslContextConfiguration</code> - <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.glassfish.tyrus.client.SslContextConfigurator,boolean,boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SslEngineConfigurator</h4>
+<pre>public&nbsp;SslEngineConfigurator&#8203;(<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;sslContextConfiguration,
+                             boolean&nbsp;clientMode,
+                             boolean&nbsp;needClientAuth,
+                             boolean&nbsp;wantClientAuth)</pre>
+<div class="block">Create SSL Engine configuration basing on passed <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a>.
+ This constructor makes possible to initialize SSLEngine and SSLContext in lazy
+ fashion on first <a href="#createSSLEngine(java.lang.String)"><code>createSSLEngine(String)</code></a> call.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sslContextConfiguration</code> - <a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a>.</dd>
+<dd><code>clientMode</code> - will be configured to work in client mode.</dd>
+<dd><code>needClientAuth</code> - client authentication is required.</dd>
+<dd><code>wantClientAuth</code> - client should authenticate.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.glassfish.tyrus.client.SslEngineConfigurator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SslEngineConfigurator</h4>
+<pre>public&nbsp;SslEngineConfigurator&#8203;(<a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a>&nbsp;original)</pre>
+<div class="block">Copy constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>original</code> - original <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a> instance to be copied.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SslEngineConfigurator</h4>
+<pre>protected&nbsp;SslEngineConfigurator()</pre>
+<div class="block">Default constructor.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="createSSLEngine(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createSSLEngine</h4>
+<pre class="methodSignature">public&nbsp;javax.net.ssl.SSLEngine&nbsp;createSSLEngine&#8203;(java.lang.String&nbsp;serverHost)</pre>
+<div class="block">Create and configure <code>SSLEngine</code>, based on current settings.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serverHost</code> - server host, which will be used to verify authenticity of the server (the provided host name
+                   will
+                   compared to the host in the certificate provided by the server).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>SSLEngine</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="configure(javax.net.ssl.SSLEngine)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>configure</h4>
+<pre class="methodSignature">public&nbsp;javax.net.ssl.SSLEngine&nbsp;configure&#8203;(javax.net.ssl.SSLEngine&nbsp;sslEngine)</pre>
+<div class="block">Configure passed <code>SSLEngine</code>, using current configurator settings, excluding Hostname Verification.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sslEngine</code> - <code>SSLEngine</code> to configure.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>configured <code>SSLEngine</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="isClientMode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isClientMode</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isClientMode()</pre>
+<div class="block">Will <code>SSLEngine</code> be configured to work in client mode.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><tt>true</tt>, if <code>SSLEngine</code> will be configured to work
+ in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt> mode.</dd>
+</dl>
+</li>
+</ul>
+<a id="setClientMode(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setClientMode</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a>&nbsp;setClientMode&#8203;(boolean&nbsp;clientMode)</pre>
+<div class="block">Set <code>SSLEngine</code> to be configured to work in client mode.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clientMode</code> - <tt>true</tt>, if <code>SSLEngine</code> will be configured
+                   to work in <tt>client</tt> mode, or <tt>false</tt> for <tt>server</tt>
+                   mode.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="isNeedClientAuth()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNeedClientAuth</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isNeedClientAuth()</pre>
+<div class="block">Get "need client auth" property.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>need client auth property value;</dd>
+</dl>
+</li>
+</ul>
+<a id="setNeedClientAuth(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setNeedClientAuth</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a>&nbsp;setNeedClientAuth&#8203;(boolean&nbsp;needClientAuth)</pre>
+<div class="block">Set "need client auth" property.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>needClientAuth</code> - value to be set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="isWantClientAuth()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isWantClientAuth</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isWantClientAuth()</pre>
+<div class="block">Get "want client auth" property.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>need client auth property value;</dd>
+</dl>
+</li>
+</ul>
+<a id="setWantClientAuth(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setWantClientAuth</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a>&nbsp;setWantClientAuth&#8203;(boolean&nbsp;wantClientAuth)</pre>
+<div class="block">Set "want client auth" property.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>wantClientAuth</code> - value to be set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEnabledCipherSuites()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEnabledCipherSuites</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String[]&nbsp;getEnabledCipherSuites()</pre>
+<div class="block">Get enabled cipher suites.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>String</code> array with enabled cipher suites.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEnabledCipherSuites(java.lang.String[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEnabledCipherSuites</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a>&nbsp;setEnabledCipherSuites&#8203;(java.lang.String[]&nbsp;enabledCipherSuites)</pre>
+<div class="block">Set enabled cipher suites.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>enabledCipherSuites</code> - <code>String</code> array with cipher suites.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEnabledProtocols()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEnabledProtocols</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String[]&nbsp;getEnabledProtocols()</pre>
+<div class="block">Get enabled protocols.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>String</code> array with enabled protocols.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEnabledProtocols(java.lang.String[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEnabledProtocols</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a>&nbsp;setEnabledProtocols&#8203;(java.lang.String[]&nbsp;enabledProtocols)</pre>
+<div class="block">Set enabled protocols.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>enabledProtocols</code> - <code>String</code> array with protocols.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="isCipherConfigured()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isCipherConfigured</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isCipherConfigured()</pre>
+</li>
+</ul>
+<a id="setCipherConfigured(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setCipherConfigured</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a>&nbsp;setCipherConfigured&#8203;(boolean&nbsp;isCipherConfigured)</pre>
+</li>
+</ul>
+<a id="isProtocolConfigured()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isProtocolConfigured</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isProtocolConfigured()</pre>
+</li>
+</ul>
+<a id="setProtocolConfigured(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProtocolConfigured</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a>&nbsp;setProtocolConfigured&#8203;(boolean&nbsp;isProtocolConfigured)</pre>
+</li>
+</ul>
+<a id="isHostVerificationEnabled()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isHostVerificationEnabled</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isHostVerificationEnabled()</pre>
+<div class="block">Get the hostname verification state.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the hostname verification is enabled, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="setHostVerificationEnabled(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setHostVerificationEnabled</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a>&nbsp;setHostVerificationEnabled&#8203;(boolean&nbsp;hostVerificationEnabled)</pre>
+<div class="block">Set hostname verification.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostVerificationEnabled</code> - when <code>true</code>, servers hostname will be verified using JDK default
+                                <code>HostnameVerifier</code>. When <code>false</code>, hostname verification won't be
+                                performed unless custom <code>HostnameVerifier</code> is set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setHostnameVerifier(javax.net.ssl.HostnameVerifier)"><code>setHostnameVerifier(HostnameVerifier)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHostnameVerifier()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHostnameVerifier</h4>
+<pre class="methodSignature">public&nbsp;javax.net.ssl.HostnameVerifier&nbsp;getHostnameVerifier()</pre>
+<div class="block">Get custom hostname verifier.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>user provided hostname verifier instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="setHostnameVerifier(javax.net.ssl.HostnameVerifier)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setHostnameVerifier</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a>&nbsp;setHostnameVerifier&#8203;(javax.net.ssl.HostnameVerifier&nbsp;hostnameVerifier)</pre>
+<div class="block">Set custom hostname verifier.
+ <p>
+ When custom <code>HostnameVerifier</code> instance is registered, it will be used to perform hostname verification,
+ no matter on the state of hostname verification flag (see <a href="#isHostVerificationEnabled()"><code>isHostVerificationEnabled()</code></a>) and JDK default
+ hostname verifier won't be used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostnameVerifier</code> - custom hostname verifier.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslEngineConfigurator</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSslContext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSslContext</h4>
+<pre class="methodSignature">public&nbsp;javax.net.ssl.SSLContext&nbsp;getSslContext()</pre>
+<div class="block">Create <code>SSLContext</code> and store it for further invocation of this method.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>created ssl context.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="copy()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>copy</h4>
+<pre class="methodSignature">public&nbsp;<a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a>&nbsp;copy()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SslEngineConfigurator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/ThreadPoolConfig.html b/apidocs/1.20/org/glassfish/tyrus/client/ThreadPoolConfig.html
new file mode 100644
index 00000000..d066eb19
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/ThreadPoolConfig.html
@@ -0,0 +1,845 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ThreadPoolConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ThreadPoolConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ThreadPoolConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client</a></div>
+<h2 title="Class ThreadPoolConfig" class="title">Class ThreadPoolConfig</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.ThreadPoolConfig</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">ThreadPoolConfig</span>
+extends java.lang.Object</pre>
+<div class="block">Client thread pool configuration, which might be used to customize client thread pool.
+ <p>
+ One can get a default <tt>ThreadPoolConfig</tt> using <a href="#defaultConfig()"><code>defaultConfig()</code></a>
+ and customize it according to the application specific requirements.
+ <p>
+ A <tt>ThreadPoolConfig</tt> object might be customized in a "Builder"-like fashion:
+ <pre>
+      ThreadPoolConfig.defaultConfig()
+               .setPoolName("App1Pool")
+               .setCorePoolSize(5)
+               .setMaxPoolSize(10);
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Oleksiy Stashok, gustav trede</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#copy()">copy</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a copy of this thread pool config.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#defaultConfig()">defaultConfig</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new client thread pool configuration instance.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(java.lang.Object&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCorePoolSize()">getCorePoolSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the core thread pool size - the size of the thread pool will never bee smaller than this.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.lang.ClassLoader</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInitialClassLoader()">getInitialClassLoader</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the class loader (if any) to be initially exposed by threads from this pool.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getKeepAliveTime(java.util.concurrent.TimeUnit)">getKeepAliveTime</a></span>&#8203;(java.util.concurrent.TimeUnit&nbsp;timeUnit)</code></th>
+<td class="colLast">
+<div class="block">Get the max period of time a thread will wait for a new task to process.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxPoolSize()">getMaxPoolSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get max thread pool size.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPoolName()">getPoolName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return thread pool name.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPriority()">getPriority</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get priority of the threads in thread pool.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>java.util.Queue&lt;java.lang.Runnable&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueue()">getQueue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a queue that will be used to temporarily store tasks when all threads in the thread pool are busy.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueueLimit()">getQueueLimit</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the limit of the queue, where tasks are temporarily stored when all threads are busy.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.ThreadFactory</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getThreadFactory()">getThreadFactory</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return <code>ThreadFactory</code> that will be used to create thread pool threads.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDaemon()">isDaemon</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return <code>true</code> if thread pool threads are daemons.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCorePoolSize(int)">setCorePoolSize</a></span>&#8203;(int&nbsp;corePoolSize)</code></th>
+<td class="colLast">
+<div class="block">Set the core thread pool size - the size of the thread pool will never bee smaller than this.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDaemon(boolean)">setDaemon</a></span>&#8203;(boolean&nbsp;isDaemon)</code></th>
+<td class="colLast">
+<div class="block">Set <code>true</code> if thread pool threads are daemons.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInitialClassLoader(java.lang.ClassLoader)">setInitialClassLoader</a></span>&#8203;(java.lang.ClassLoader&nbsp;initialClassLoader)</code></th>
+<td class="colLast">
+<div class="block">Specifies the context class loader that will be used by threads in this pool.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setKeepAliveTime(long,java.util.concurrent.TimeUnit)">setKeepAliveTime</a></span>&#8203;(long&nbsp;time,
+                java.util.concurrent.TimeUnit&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">The max period of time a thread will wait for a new task to process.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxPoolSize(int)">setMaxPoolSize</a></span>&#8203;(int&nbsp;maxPoolSize)</code></th>
+<td class="colLast">
+<div class="block">Set max thread pool size.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPoolName(java.lang.String)">setPoolName</a></span>&#8203;(java.lang.String&nbsp;poolName)</code></th>
+<td class="colLast">
+<div class="block">Set thread pool name.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPriority(int)">setPriority</a></span>&#8203;(int&nbsp;priority)</code></th>
+<td class="colLast">
+<div class="block">Set priority of the threads in thread pool.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setQueue(java.util.Queue)">setQueue</a></span>&#8203;(java.util.Queue&lt;java.lang.Runnable&gt;&nbsp;queue)</code></th>
+<td class="colLast">
+<div class="block">Set a queue implementation that will be used to temporarily store tasks when all threads in the thread pool are
+ busy.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setQueueLimit(int)">setQueueLimit</a></span>&#8203;(int&nbsp;queueLimit)</code></th>
+<td class="colLast">
+<div class="block">Set the limit of the queue, where tasks are temporarily stored when all threads are busy.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code><a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setThreadFactory(java.util.concurrent.ThreadFactory)">setThreadFactory</a></span>&#8203;(java.util.concurrent.ThreadFactory&nbsp;threadFactory)</code></th>
+<td class="colLast">
+<div class="block">Set <code>ThreadFactory</code> that will be used to create thread pool threads.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="defaultConfig()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>defaultConfig</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a>&nbsp;defaultConfig()</pre>
+<div class="block">Create new client thread pool configuration instance. The returned <tt>ThreadPoolConfig</tt> instance will be
+ pre-configured with a default values.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>client thread pool configuration instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="copy()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copy</h4>
+<pre class="methodSignature">public&nbsp;<a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a>&nbsp;copy()</pre>
+<div class="block">Return a copy of this thread pool config.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a copy of this thread pool config.</dd>
+</dl>
+</li>
+</ul>
+<a id="getQueue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getQueue</h4>
+<pre class="methodSignature">public&nbsp;java.util.Queue&lt;java.lang.Runnable&gt;&nbsp;getQueue()</pre>
+<div class="block">Return a queue that will be used to temporarily store tasks when all threads in the thread pool are busy.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>queue that will be used to temporarily store tasks when all threads in the thread pool are busy.</dd>
+</dl>
+</li>
+</ul>
+<a id="setQueue(java.util.Queue)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setQueue</h4>
+<pre class="methodSignature">public&nbsp;<a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a>&nbsp;setQueue&#8203;(java.util.Queue&lt;java.lang.Runnable&gt;&nbsp;queue)</pre>
+<div class="block">Set a queue implementation that will be used to temporarily store tasks when all threads in the thread pool are
+ busy.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>queue</code> - queue implementation that will be used to temporarily store tasks when all threads in the thread
+              pool are busy.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the <a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><code>ThreadPoolConfig</code></a> with the new <code>Queue</code> implementation.</dd>
+</dl>
+</li>
+</ul>
+<a id="getThreadFactory()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getThreadFactory</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.ThreadFactory&nbsp;getThreadFactory()</pre>
+<div class="block">Return <code>ThreadFactory</code> that will be used to create thread pool threads.
+ <p>
+ If <code>ThreadFactory</code> is set, then <a href="#priority"><code>priority</code></a>, <a href="#isDaemon"><code>isDaemon</code></a>,
+ <a href="#poolName"><code>poolName</code></a> settings will not be considered when creating new threads.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>ThreadFactory</code> that will be used to create thread pool threads.</dd>
+</dl>
+</li>
+</ul>
+<a id="setThreadFactory(java.util.concurrent.ThreadFactory)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setThreadFactory</h4>
+<pre class="methodSignature">public&nbsp;<a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a>&nbsp;setThreadFactory&#8203;(java.util.concurrent.ThreadFactory&nbsp;threadFactory)</pre>
+<div class="block">Set <code>ThreadFactory</code> that will be used to create thread pool threads.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>threadFactory</code> - custom <code>ThreadFactory</code> If
+                      <code>ThreadFactory</code> is set, then <a href="#priority"><code>priority</code></a>, <a href="#isDaemon"><code>isDaemon</code></a>, <a href="#poolName"><code>poolName</code></a> settings will not be considered when creating new threads.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the <a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><code>ThreadPoolConfig</code></a> with the new <code>ThreadFactory</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getPoolName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPoolName</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getPoolName()</pre>
+<div class="block">Return thread pool name. The default is "Tyrus-client".</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the thread pool name.</dd>
+</dl>
+</li>
+</ul>
+<a id="setPoolName(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPoolName</h4>
+<pre class="methodSignature">public&nbsp;<a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a>&nbsp;setPoolName&#8203;(java.lang.String&nbsp;poolName)</pre>
+<div class="block">Set thread pool name. The default is "Tyrus-client".</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>poolName</code> - the thread pool name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the <a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><code>ThreadPoolConfig</code></a> with the new thread pool name.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPriority()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPriority</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getPriority()</pre>
+<div class="block">Get priority of the threads in thread pool. The default is <code>Thread.NORM_PRIORITY</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>priority of the threads in thread pool.</dd>
+</dl>
+</li>
+</ul>
+<a id="setPriority(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPriority</h4>
+<pre class="methodSignature">public&nbsp;<a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a>&nbsp;setPriority&#8203;(int&nbsp;priority)</pre>
+<div class="block">Set priority of the threads in thread pool. The default is <code>Thread.NORM_PRIORITY</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>priority</code> - of the threads in thread pool.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the <a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><code>ThreadPoolConfig</code></a> with the new thread priority.</dd>
+</dl>
+</li>
+</ul>
+<a id="isDaemon()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDaemon</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isDaemon()</pre>
+<div class="block">Return <code>true</code> if thread pool threads are daemons. The default is <code>true</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if thread pool threads are daemons.</dd>
+</dl>
+</li>
+</ul>
+<a id="setDaemon(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDaemon</h4>
+<pre class="methodSignature">public&nbsp;<a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a>&nbsp;setDaemon&#8203;(boolean&nbsp;isDaemon)</pre>
+<div class="block">Set <code>true</code> if thread pool threads are daemons. The default is <code>true</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isDaemon</code> - <code>true</code> if thread pool threads are daemons.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the <a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><code>ThreadPoolConfig</code></a> with the daemon property set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxPoolSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxPoolSize</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getMaxPoolSize()</pre>
+<div class="block">Get max thread pool size. The default is <code>Math.max(Runtime.getRuntime().availableProcessors(), 20)</code></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>max thread pool size.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMaxPoolSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxPoolSize</h4>
+<pre class="methodSignature">public&nbsp;<a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a>&nbsp;setMaxPoolSize&#8203;(int&nbsp;maxPoolSize)</pre>
+<div class="block">Set max thread pool size. The default is The default is <code>
+ Math.max(Runtime.getRuntime().availableProcessors(), 20)</code>.
+ <p>
+ Cannot be smaller than 3.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>maxPoolSize</code> - the max thread pool size.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the <a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><code>ThreadPoolConfig</code></a> with the new max pool size set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getCorePoolSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCorePoolSize</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getCorePoolSize()</pre>
+<div class="block">Get the core thread pool size - the size of the thread pool will never bee smaller than this.
+ <p>
+ The default is 1.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the core thread pool size - the size of the thread pool will never bee smaller than this.</dd>
+</dl>
+</li>
+</ul>
+<a id="setCorePoolSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setCorePoolSize</h4>
+<pre class="methodSignature">public&nbsp;<a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a>&nbsp;setCorePoolSize&#8203;(int&nbsp;corePoolSize)</pre>
+<div class="block">Set the core thread pool size - the size of the thread pool will never bee smaller than this.
+ <p>
+ The default is 1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>corePoolSize</code> - the core thread pool size - the size of the thread pool will never bee smaller than this.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the <a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><code>ThreadPoolConfig</code></a> with the new core pool size set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getQueueLimit()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getQueueLimit</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getQueueLimit()</pre>
+<div class="block">Get the limit of the queue, where tasks are temporarily stored when all threads are busy.
+ <p>
+ Value less than 0 means unlimited queue. The default is -1.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the thread-pool queue limit. The queue limit</dd>
+</dl>
+</li>
+</ul>
+<a id="setQueueLimit(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setQueueLimit</h4>
+<pre class="methodSignature">public&nbsp;<a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a>&nbsp;setQueueLimit&#8203;(int&nbsp;queueLimit)</pre>
+<div class="block">Set the limit of the queue, where tasks are temporarily stored when all threads are busy.
+ <p>
+ Value less than 0 means unlimited queue. The default is -1.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>queueLimit</code> - the thread pool queue limit. The <tt>queueLimit</tt> value less than 0 means unlimited queue.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the <a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><code>ThreadPoolConfig</code></a> with the new queue limit.</dd>
+</dl>
+</li>
+</ul>
+<a id="setKeepAliveTime(long,java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setKeepAliveTime</h4>
+<pre class="methodSignature">public&nbsp;<a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a>&nbsp;setKeepAliveTime&#8203;(long&nbsp;time,
+                                         java.util.concurrent.TimeUnit&nbsp;unit)</pre>
+<div class="block">The max period of time a thread will wait for a new task to process.
+ <p>
+ If the timeout expires and the thread is not a core one (see <a href="#setCorePoolSize(int)"><code>setCorePoolSize(int)</code></a>,
+ <a href="#setMaxPoolSize(int)"><code>setMaxPoolSize(int)</code></a>) - then the thread will be terminated and removed from the thread pool.
+ <p>
+ The default is 10s.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>time</code> - max keep alive timeout. The value less than 0 means no timeout.</dd>
+<dd><code>unit</code> - time unit.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the <a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><code>ThreadPoolConfig</code></a> with the new keep alive time.</dd>
+</dl>
+</li>
+</ul>
+<a id="getKeepAliveTime(java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getKeepAliveTime</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;getKeepAliveTime&#8203;(java.util.concurrent.TimeUnit&nbsp;timeUnit)</pre>
+<div class="block">Get the max period of time a thread will wait for a new task to process.
+ <p>
+ If the timeout expires and the thread is not a core one (see <a href="#setCorePoolSize(int)"><code>setCorePoolSize(int)</code></a>, <a href="#setMaxPoolSize(int)"><code>setMaxPoolSize(int)</code></a>) - then the thread will be terminated and removed from the thread pool.
+ <p>
+ The default is 10s.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeUnit</code> - time unit to which the result will be converted.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the keep-alive timeout, the value less than 0 means no timeout.</dd>
+</dl>
+</li>
+</ul>
+<a id="getInitialClassLoader()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInitialClassLoader</h4>
+<pre class="methodSignature">public&nbsp;java.lang.ClassLoader&nbsp;getInitialClassLoader()</pre>
+<div class="block">Get the class loader (if any) to be initially exposed by threads from this pool.
+ <p>
+ If not specified, the class loader of the parent thread that initialized the pool will be used.Authen</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the class loader (if any) to be initially exposed by threads from this pool.</dd>
+</dl>
+</li>
+</ul>
+<a id="setInitialClassLoader(java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setInitialClassLoader</h4>
+<pre class="methodSignature">public&nbsp;<a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a>&nbsp;setInitialClassLoader&#8203;(java.lang.ClassLoader&nbsp;initialClassLoader)</pre>
+<div class="block">Specifies the context class loader that will be used by threads in this pool.
+ <p>
+ If not specified, the class loader of the parent thread that initialized the pool will be used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>initialClassLoader</code> - the class loader to be exposed by threads of this pool.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the <a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><code>ThreadPoolConfig</code></a> with the class loader set.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><code>Thread.getContextClassLoader()</code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(java.lang.Object&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>equals</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>hashCode</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ThreadPoolConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html b/apidocs/1.20/org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html
new file mode 100644
index 00000000..367d03af
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html
@@ -0,0 +1,289 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusClientEngine.ClientHandshakeListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusClientEngine.ClientHandshakeListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusClientEngine.ClientHandshakeListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client</a></div>
+<h2 title="Interface TyrusClientEngine.ClientHandshakeListener" class="title">Interface TyrusClientEngine.ClientHandshakeListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">TyrusClientEngine</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">TyrusClientEngine.ClientHandshakeListener</span></pre>
+<div class="block">Called when response is received from the server.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onError(java.lang.Throwable)">onError</a></span>&#8203;(java.lang.Throwable&nbsp;exception)</code></th>
+<td class="colLast">
+<div class="block">Called when an error is found in handshake response.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onSessionCreated(javax.websocket.Session)">onSessionCreated</a></span>&#8203;(<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Invoked when handshake is completed and provided <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a> is open and ready to be returned from
+ <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, javax.websocket.ClientEndpointConfig, java.net.URI)</code></a> (and
+ alternatives) call.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onSessionCreated(javax.websocket.Session)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onSessionCreated</h4>
+<pre class="methodSignature">void&nbsp;onSessionCreated&#8203;(<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</pre>
+<div class="block">Invoked when handshake is completed and provided <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a> is open and ready to be returned from
+ <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, javax.websocket.ClientEndpointConfig, java.net.URI)</code></a> (and
+ alternatives) call.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - opened client session.</dd>
+</dl>
+</li>
+</ul>
+<a id="onError(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onError</h4>
+<pre class="methodSignature">void&nbsp;onError&#8203;(java.lang.Throwable&nbsp;exception)</pre>
+<div class="block">Called when an error is found in handshake response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>exception</code> - error found during handshake response check.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusClientEngine.ClientHandshakeListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/TyrusClientEngine.html b/apidocs/1.20/org/glassfish/tyrus/client/TyrusClientEngine.html
new file mode 100644
index 00000000..796d06d8
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/TyrusClientEngine.html
@@ -0,0 +1,458 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusClientEngine (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusClientEngine (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusClientEngine.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client</a></div>
+<h2 title="Class TyrusClientEngine" class="title">Class TyrusClientEngine</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.TyrusClientEngine</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">TyrusClientEngine</span>
+extends java.lang.Object
+implements <a href="../spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></pre>
+<div class="block">Tyrus <a href="../spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine</code></a> implementation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="TyrusClientEngine.ClientHandshakeListener.html" title="interface in org.glassfish.tyrus.client">TyrusClientEngine.ClientHandshakeListener</a></span></code></th>
+<td class="colLast">
+<div class="block">Called when response is received from the server.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.spi.ClientEngine">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.glassfish.tyrus.spi.<a href="../spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></h3>
+<code><a href="../spi/ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a>, <a href="../spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a>, <a href="../spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_INCOMING_BUFFER_SIZE">DEFAULT_INCOMING_BUFFER_SIZE</a></span></code></th>
+<td class="colLast">
+<div class="block">Default incoming buffer size for client container.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)">createUpgradeRequest</a></span>&#8203;(<a href="../spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a>&nbsp;timeoutHandler)</code></th>
+<td class="colLast">
+<div class="block">Create upgrade request and register <a href="../spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.TimeoutHandler</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTimeoutHandler()">getTimeoutHandler</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get <a href="../spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.TimeoutHandler</code></a> associated with current <a href="../spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#processError(java.lang.Throwable)">processError</a></span>&#8203;(java.lang.Throwable&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Process error.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../spi/ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">processResponse</a></span>&#8203;(<a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse,
+               <a href="../spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+               <a href="../spi/Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">
+<div class="block">Process handshake and return <a href="../spi/ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeInfo</code></a> with handshake status (<a href="../spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>).</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="DEFAULT_INCOMING_BUFFER_SIZE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_INCOMING_BUFFER_SIZE</h4>
+<pre>public static final&nbsp;int DEFAULT_INCOMING_BUFFER_SIZE</pre>
+<div class="block">Default incoming buffer size for client container.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.client.TyrusClientEngine.DEFAULT_INCOMING_BUFFER_SIZE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createUpgradeRequest</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;createUpgradeRequest&#8203;(<a href="../spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a>&nbsp;timeoutHandler)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ClientEngine.html#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)">ClientEngine</a></code></span></div>
+<div class="block">Create upgrade request and register <a href="../spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.TimeoutHandler</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ClientEngine.html#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)">createUpgradeRequest</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeoutHandler</code> - handshake timeout handler. <a href="../spi/ClientEngine.TimeoutHandler.html#handleTimeout()"><code>ClientEngine.TimeoutHandler.handleTimeout()</code></a> is invoked if <a href="../spi/ClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>ClientEngine.processResponse(UpgradeResponse, Writer, Connection.CloseListener)</code></a> is not called within
+                       handshake timeout.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>request to be send on the wire or <code>null</code>, when the request cannot be created. When <code>null</code> is
+ returned, client should free all resources tied to current connection.</dd>
+</dl>
+</li>
+</ul>
+<a id="processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>processResponse</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a>&nbsp;processResponse&#8203;(<a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse,
+                                                      <a href="../spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+                                                      <a href="../spi/Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">ClientEngine</a></code></span></div>
+<div class="block">Process handshake and return <a href="../spi/ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeInfo</code></a> with handshake status (<a href="../spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>).</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">processResponse</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>upgradeResponse</code> - response to be processed.</dd>
+<dd><code>writer</code> - used for sending dataframes from client endpoint.</dd>
+<dd><code>closeListener</code> - will be called when connection is closed, will be set as listener of returned <a href="../spi/Connection.html" title="interface in org.glassfish.tyrus.spi"><code>Connection</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>info with upgrade status.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../spi/ClientEngine.html#processError(java.lang.Throwable)"><code>ClientEngine.processError(Throwable)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="processError(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>processError</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;processError&#8203;(java.lang.Throwable&nbsp;t)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/ClientEngine.html#processError(java.lang.Throwable)">ClientEngine</a></code></span></div>
+<div class="block">Process error.
+ <p>
+ This method can be called any time when client encounters an error which cannot be handled in the container
+ before <a href="../spi/ClientEngine.ClientUpgradeStatus.html#SUCCESS"><code>ClientEngine.ClientUpgradeStatus.SUCCESS</code></a> is returned from <a href="../spi/ClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>ClientEngine.processResponse(UpgradeResponse, Writer,
+ Connection.CloseListener)</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ClientEngine.html#processError(java.lang.Throwable)">processError</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>t</code> - encountered error.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../spi/ClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>ClientEngine.processResponse(UpgradeResponse, Writer, Connection.CloseListener)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getTimeoutHandler()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTimeoutHandler</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a>&nbsp;getTimeoutHandler()</pre>
+<div class="block">Get <a href="../spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.TimeoutHandler</code></a> associated with current <a href="../spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine</code></a> instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>timeout handler instance or <code>null</code> when not present.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusClientEngine.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/auth/AuthConfig.Builder.html b/apidocs/1.20/org/glassfish/tyrus/client/auth/AuthConfig.Builder.html
new file mode 100644
index 00000000..fd8ce635
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/auth/AuthConfig.Builder.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>AuthConfig.Builder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthConfig.Builder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthConfig.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client.auth</a></div>
+<h2 title="Class AuthConfig.Builder" class="title">Class AuthConfig.Builder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.auth.AuthConfig.Builder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a></dd>
+</dl>
+<hr>
+<pre>public static final class <span class="typeNameLabel">AuthConfig.Builder</span>
+extends java.lang.Object</pre>
+<div class="block">The AuthConfig.Builder is a class used for creating an instance of <a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a> for purpose of HTTP
+ Authentication.
+ <p>
+ Example 1 - building an authentication configuration enhanced with user defined NTLM authentication and
+ overridden Basic Authentication:
+ <pre><code>
+ AuthConfig authConfig = AuthConfig.Builder.create().
+                          registerAuthProvider("NTLM", myAuthenticator).
+                          registerAuthProvider("Basic", myBasicAuthenticator).
+                          build();
+ </code></pre>
+ Example 2 - Building an authentication configuration with disabled Basic scheme authenticator:
+ <pre><code>
+ AuthConfig authConfig = AuthConfig.Builder.create().
+                          disableProvidedBasicAuth().
+                          build();
+ </code></pre></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Credentials.html" title="class in org.glassfish.tyrus.client.auth"><code>Credentials</code></a>, 
+<a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build an instance of <a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create()">create</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig.Builder</code></a> instance, which contains provided Basic and Digest authenticators.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#disableProvidedBasicAuth()">disableProvidedBasicAuth</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Disable provided Basic <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#disableProvidedDigestAuth()">disableProvidedDigestAuth</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Disable provided Digest <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerAuthProvider(java.lang.String,org.glassfish.tyrus.client.auth.Authenticator)">registerAuthProvider</a></span>&#8203;(java.lang.String&nbsp;scheme,
+                    <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a>&nbsp;authenticator)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> for provided authentication scheme.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="create()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">public static&nbsp;<a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a>&nbsp;create()</pre>
+<div class="block">Create new <a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig.Builder</code></a> instance, which contains provided Basic and Digest authenticators.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="registerAuthProvider(java.lang.String,org.glassfish.tyrus.client.auth.Authenticator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>registerAuthProvider</h4>
+<pre class="methodSignature">public final&nbsp;<a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a>&nbsp;registerAuthProvider&#8203;(java.lang.String&nbsp;scheme,
+                                                     <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a>&nbsp;authenticator)</pre>
+<div class="block">Register <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> for provided authentication scheme.
+ <p>
+ Only one <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> for one authentication scheme can be registered. If current builder instance
+ already contains <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> for provided scheme, existing authenticator will be replaced. Note
+ that schemes are compared in case insensitive manner.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>scheme</code> - authentication scheme for which the registered authenticator will be used. Scheme is
+                      compared case insensitive.</dd>
+<dd><code>authenticator</code> - <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> instance to be registered.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="disableProvidedBasicAuth()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>disableProvidedBasicAuth</h4>
+<pre class="methodSignature">public final&nbsp;<a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a>&nbsp;disableProvidedBasicAuth()</pre>
+<div class="block">Disable provided Basic <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="disableProvidedDigestAuth()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>disableProvidedDigestAuth</h4>
+<pre class="methodSignature">public final&nbsp;<a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a>&nbsp;disableProvidedDigestAuth()</pre>
+<div class="block">Disable provided Digest <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public&nbsp;<a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a>&nbsp;build()</pre>
+<div class="block">Build an instance of <a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an instance of <a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthConfig.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/auth/AuthConfig.html b/apidocs/1.20/org/glassfish/tyrus/client/auth/AuthConfig.html
new file mode 100644
index 00000000..b88a6d4b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/auth/AuthConfig.html
@@ -0,0 +1,351 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>AuthConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client.auth</a></div>
+<h2 title="Class AuthConfig" class="title">Class AuthConfig</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.auth.AuthConfig</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="../../core/Beta.html" title="annotation in org.glassfish.tyrus.core">@Beta</a>
+public class <span class="typeNameLabel">AuthConfig</span>
+extends java.lang.Object</pre>
+<div class="block">AuthConfig serves as a configuration of HTTP authentication.
+ <p>
+ An instance of this class can be created by <a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a> and it must be registered to property bag in <a href="../ClientManager.html" title="class in org.glassfish.tyrus.client"><code>ClientManager</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Ondrej Kosatka (ondrej.kosatka at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>, 
+<a href="../ClientManager.html#getProperties()"><code>ClientManager.getProperties()</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">The AuthConfig.Builder is a class used for creating an instance of <a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a> for purpose of HTTP
+ Authentication.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#builder()">builder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig.Builder</code></a> instance, which contains provided Basic and Digest authenticators.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;<a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAuthenticators()">getAuthenticators</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get an unmodifiable map of authenticators, where case insensitive authentication scheme to <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getAuthenticators()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticators</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;<a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a>&gt;&nbsp;getAuthenticators()</pre>
+<div class="block">Get an unmodifiable map of authenticators, where case insensitive authentication scheme to <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>unmodifiable map of authenticators. Case insensitive authentication scheme is mapped to <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="builder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>builder</h4>
+<pre class="methodSignature">public static&nbsp;<a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a>&nbsp;builder()</pre>
+<div class="block">Create new <a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig.Builder</code></a> instance, which contains provided Basic and Digest authenticators.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/auth/AuthenticationException.html b/apidocs/1.20/org/glassfish/tyrus/client/auth/AuthenticationException.html
new file mode 100644
index 00000000..b6a5221a
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/auth/AuthenticationException.html
@@ -0,0 +1,342 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>AuthenticationException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client.auth</a></div>
+<h2 title="Class AuthenticationException" class="title">Class AuthenticationException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Throwable</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Exception</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../core/HandshakeException.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.HandshakeException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.auth.AuthenticationException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code></dd>
+</dl>
+<hr>
+<pre><a href="../../core/Beta.html" title="annotation in org.glassfish.tyrus.core">@Beta</a>
+public class <span class="typeNameLabel">AuthenticationException</span>
+extends <a href="../../core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></pre>
+<div class="block">This exception is set as a cause of <a href="../../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown when <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...)
+ fails because of any of the following:
+ <ul>
+ <li>
+ HTTP response status code 401 is received and "<a href="../../spi/UpgradeResponse.html#WWW_AUTHENTICATE">"WWW-Authenticate"</a>" header
+ contains scheme which is not handled by any <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> registered in <a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>.
+ </li>
+ <li>
+ HTTP response status code 401 is received and "<a href="../../spi/UpgradeResponse.html#WWW_AUTHENTICATE">"WWW-Authenticate"</a>" header
+ does not contain authentication scheme token or "<a href="../../spi/UpgradeResponse.html#WWW_AUTHENTICATE">"WWW-Authenticate"</a>" header is missing.
+ </li>
+ <li>
+ <a href="AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthenticationException</code></a> is thrown from <a href="Authenticator.html#generateAuthorizationHeader(java.net.URI,java.lang.String,org.glassfish.tyrus.client.auth.Credentials)"><code>Authenticator.generateAuthorizationHeader(URI, String,
+ Credentials)</code></a>
+ method.
+ </li>
+ <li>
+ Property <a href="../ClientProperties.html#AUTH_CONFIG"><code>ClientProperties.AUTH_CONFIG</code></a> is not instance of <a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>.
+ </li>
+ </ul>
+ <p>
+ <a href="../../core/HandshakeException.html#getHttpStatusCode()"><code>HandshakeException.getHttpStatusCode()</code></a> returns always <code>401</code>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Ondrej Kosatka (ondrej.kosatka at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Authenticator.html#generateAuthorizationHeader(java.net.URI,java.lang.String,org.glassfish.tyrus.client.auth.Credentials)"><code>Authenticator.generateAuthorizationHeader(URI, String, Credentials)</code></a>, 
+<a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>, 
+<a href="../../../../../serialized-form.html#org.glassfish.tyrus.client.auth.AuthenticationException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">AuthenticationException</a></span>&#8203;(java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.HandshakeException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.<a href="../../core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></h3>
+<code><a href="../../core/HandshakeException.html#getHttpStatusCode()">getHttpStatusCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
+<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AuthenticationException</h4>
+<pre>public&nbsp;AuthenticationException&#8203;(java.lang.String&nbsp;message)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message. The detail message is saved for later retrieval by the <code>Throwable.getMessage()</code>
+                method.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/auth/Authenticator.html b/apidocs/1.20/org/glassfish/tyrus/client/auth/Authenticator.html
new file mode 100644
index 00000000..a848ff27
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/auth/Authenticator.html
@@ -0,0 +1,345 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Authenticator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Authenticator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Authenticator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client.auth</a></div>
+<h2 title="Class Authenticator" class="title">Class Authenticator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.auth.Authenticator</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="../../core/Beta.html" title="annotation in org.glassfish.tyrus.core">@Beta</a>
+public abstract class <span class="typeNameLabel">Authenticator</span>
+extends java.lang.Object</pre>
+<div class="block">Authenticator provides a way how to plug-in custom authentication provider.
+ <p>
+ Authenticator is called when server-side returns HTTP 401 as a reply to handshake response. Tyrus client then looks
+ for authenticator instance registered to authentication scheme provided by server.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Ondrej Kosatka (ondrej.kosatka at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="AuthConfig.Builder.html#registerAuthProvider(java.lang.String,org.glassfish.tyrus.client.auth.Authenticator)"><code>AuthConfig.Builder.registerAuthProvider(String, Authenticator)</code></a>, 
+<a href="../ClientProperties.html#AUTH_CONFIG"><code>ClientProperties.AUTH_CONFIG</code></a>, 
+<a href="../ClientProperties.html#CREDENTIALS"><code>ClientProperties.CREDENTIALS</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Authenticator</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#generateAuthorizationHeader(java.net.URI,java.lang.String,org.glassfish.tyrus.client.auth.Credentials)">generateAuthorizationHeader</a></span>&#8203;(java.net.URI&nbsp;uri,
+                           java.lang.String&nbsp;wwwAuthenticateHeader,
+                           <a href="Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a>&nbsp;credentials)</code></th>
+<td class="colLast">
+<div class="block">Generate value used as "<a href="../../spi/UpgradeRequest.html#AUTHORIZATION">"Authorization"</a>" header value for next request.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Authenticator</h4>
+<pre>public&nbsp;Authenticator()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="generateAuthorizationHeader(java.net.URI,java.lang.String,org.glassfish.tyrus.client.auth.Credentials)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>generateAuthorizationHeader</h4>
+<pre class="methodSignature">public abstract&nbsp;java.lang.String&nbsp;generateAuthorizationHeader&#8203;(java.net.URI&nbsp;uri,
+                                                             java.lang.String&nbsp;wwwAuthenticateHeader,
+                                                             <a href="Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a>&nbsp;credentials)
+                                                      throws <a href="AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">AuthenticationException</a></pre>
+<div class="block">Generate value used as "<a href="../../spi/UpgradeRequest.html#AUTHORIZATION">"Authorization"</a>" header value for next request.
+ <p>
+ Thrown <a href="AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthenticationException</code></a> will be wrapped as <a href="../../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> and thrown as a result of
+ <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...) method call.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - Uri of the server endpoint.</dd>
+<dd><code>wwwAuthenticateHeader</code> - "<a href="../../spi/UpgradeResponse.html#WWW_AUTHENTICATE">"WWW-Authenticate"</a>" header value received in a handshake
+                              response.</dd>
+<dd><code>credentials</code> - credentials passed by property <a href="../ClientProperties.html#CREDENTIALS"><code>ClientProperties.CREDENTIALS</code></a>. Can be <code>
+                              null</code> when there were no <a href="Credentials.html" title="class in org.glassfish.tyrus.client.auth"><code>Credentials</code></a> registered.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value for <a href="../../spi/UpgradeRequest.html#AUTHORIZATION">"Authorization"</a> header which will be put into next handshake request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">AuthenticationException</a></code> - when it is not possible to create "<a href="../../spi/UpgradeRequest.html#AUTHORIZATION">"Authorization"</a>"
+                                 header.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Authenticator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/auth/Credentials.html b/apidocs/1.20/org/glassfish/tyrus/client/auth/Credentials.html
new file mode 100644
index 00000000..ea5153c9
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/auth/Credentials.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Credentials (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Credentials (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Credentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.client.auth</a></div>
+<h2 title="Class Credentials" class="title">Class Credentials</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.client.auth.Credentials</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="../../core/Beta.html" title="annotation in org.glassfish.tyrus.core">@Beta</a>
+public final class <span class="typeNameLabel">Credentials</span>
+extends java.lang.Object</pre>
+<div class="block">Credentials can be used when configuring authentication properties used during client handshake.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Ondrej Kosatka (ondrej.kosatka at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../ClientProperties.html#CREDENTIALS"><code>ClientProperties.CREDENTIALS</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,byte%5B%5D)">Credentials</a></span>&#8203;(java.lang.String&nbsp;username,
+           byte[]&nbsp;password)</code></th>
+<td class="colLast">
+<div class="block">Create new credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String)">Credentials</a></span>&#8203;(java.lang.String&nbsp;username,
+           java.lang.String&nbsp;password)</code></th>
+<td class="colLast">
+<div class="block">Create new credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPassword()">getPassword</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the password as byte array.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUsername()">getUsername</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the username.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Credentials</h4>
+<pre>public&nbsp;Credentials&#8203;(java.lang.String&nbsp;username,
+                   byte[]&nbsp;password)</pre>
+<div class="block">Create new credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - Username. Cannot be <code>null</code>.</dd>
+<dd><code>password</code> - Password as byte array. Cannot be <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Credentials</h4>
+<pre>public&nbsp;Credentials&#8203;(java.lang.String&nbsp;username,
+                   java.lang.String&nbsp;password)</pre>
+<div class="block">Create new credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - Username. Cannot be <code>null</code>.</dd>
+<dd><code>password</code> - Password. Cannot be <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getUsername()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsername</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getUsername()</pre>
+<div class="block">Get the username.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>username.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPassword()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre class="methodSignature">public&nbsp;byte[]&nbsp;getPassword()</pre>
+<div class="block">Get the password as byte array.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Password string in byte array representation.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Credentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/AuthConfig.Builder.html b/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/AuthConfig.Builder.html
new file mode 100644
index 00000000..dff6dd1b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/AuthConfig.Builder.html
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.auth.AuthConfig.Builder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.AuthConfig.Builder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.auth.AuthConfig.Builder" class="title">Uses of Class<br>org.glassfish.tyrus.client.auth.AuthConfig.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client.auth">org.glassfish.tyrus.client.auth</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a> in <a href="../package-summary.html">org.glassfish.tyrus.client.auth</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.client.auth</a> that return <a href="../AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AuthConfig.</span><code><span class="memberNameLink"><a href="../AuthConfig.html#builder()">builder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig.Builder</code></a> instance, which contains provided Basic and Digest authenticators.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AuthConfig.Builder.</span><code><span class="memberNameLink"><a href="../AuthConfig.Builder.html#create()">create</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig.Builder</code></a> instance, which contains provided Basic and Digest authenticators.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AuthConfig.Builder.</span><code><span class="memberNameLink"><a href="../AuthConfig.Builder.html#disableProvidedBasicAuth()">disableProvidedBasicAuth</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Disable provided Basic <a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AuthConfig.Builder.</span><code><span class="memberNameLink"><a href="../AuthConfig.Builder.html#disableProvidedDigestAuth()">disableProvidedDigestAuth</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Disable provided Digest <a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AuthConfig.Builder.</span><code><span class="memberNameLink"><a href="../AuthConfig.Builder.html#registerAuthProvider(java.lang.String,org.glassfish.tyrus.client.auth.Authenticator)">registerAuthProvider</a></span>&#8203;(java.lang.String&nbsp;scheme,
+                    <a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a>&nbsp;authenticator)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> for provided authentication scheme.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/AuthConfig.html b/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/AuthConfig.html
new file mode 100644
index 00000000..54db8a78
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/AuthConfig.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.auth.AuthConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.AuthConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.auth.AuthConfig" class="title">Uses of Class<br>org.glassfish.tyrus.client.auth.AuthConfig</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client.auth">org.glassfish.tyrus.client.auth</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a> in <a href="../package-summary.html">org.glassfish.tyrus.client.auth</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.client.auth</a> that return <a href="../AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AuthConfig.Builder.</span><code><span class="memberNameLink"><a href="../AuthConfig.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build an instance of <a href="../AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/AuthenticationException.html b/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/AuthenticationException.html
new file mode 100644
index 00000000..0be8f847
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/AuthenticationException.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.auth.AuthenticationException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.AuthenticationException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.auth.AuthenticationException" class="title">Uses of Class<br>org.glassfish.tyrus.client.auth.AuthenticationException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">AuthenticationException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client.auth">org.glassfish.tyrus.client.auth</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">AuthenticationException</a> in <a href="../package-summary.html">org.glassfish.tyrus.client.auth</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.client.auth</a> that throw <a href="../AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">AuthenticationException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Authenticator.</span><code><span class="memberNameLink"><a href="../Authenticator.html#generateAuthorizationHeader(java.net.URI,java.lang.String,org.glassfish.tyrus.client.auth.Credentials)">generateAuthorizationHeader</a></span>&#8203;(java.net.URI&nbsp;uri,
+                           java.lang.String&nbsp;wwwAuthenticateHeader,
+                           <a href="../Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a>&nbsp;credentials)</code></th>
+<td class="colLast">
+<div class="block">Generate value used as "<a href="../../../spi/UpgradeRequest.html#AUTHORIZATION">"Authorization"</a>" header value for next request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/Authenticator.html b/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/Authenticator.html
new file mode 100644
index 00000000..f231aaa4
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/Authenticator.html
@@ -0,0 +1,214 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.auth.Authenticator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.Authenticator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.auth.Authenticator" class="title">Uses of Class<br>org.glassfish.tyrus.client.auth.Authenticator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client.auth">org.glassfish.tyrus.client.auth</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a> in <a href="../package-summary.html">org.glassfish.tyrus.client.auth</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.client.auth</a> that return types with arguments of type <a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;<a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AuthConfig.</span><code><span class="memberNameLink"><a href="../AuthConfig.html#getAuthenticators()">getAuthenticators</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get an unmodifiable map of authenticators, where case insensitive authentication scheme to <a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.client.auth</a> with parameters of type <a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AuthConfig.Builder.</span><code><span class="memberNameLink"><a href="../AuthConfig.Builder.html#registerAuthProvider(java.lang.String,org.glassfish.tyrus.client.auth.Authenticator)">registerAuthProvider</a></span>&#8203;(java.lang.String&nbsp;scheme,
+                    <a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a>&nbsp;authenticator)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> for provided authentication scheme.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/Credentials.html b/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/Credentials.html
new file mode 100644
index 00000000..8461ded5
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/Credentials.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.auth.Credentials (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.Credentials (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Credentials.html" title="class in org.glassfish.tyrus.client.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.auth.Credentials" class="title">Uses of Class<br>org.glassfish.tyrus.client.auth.Credentials</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client.auth">org.glassfish.tyrus.client.auth</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a> in <a href="../package-summary.html">org.glassfish.tyrus.client.auth</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.client.auth</a> with parameters of type <a href="../Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Authenticator.</span><code><span class="memberNameLink"><a href="../Authenticator.html#generateAuthorizationHeader(java.net.URI,java.lang.String,org.glassfish.tyrus.client.auth.Credentials)">generateAuthorizationHeader</a></span>&#8203;(java.net.URI&nbsp;uri,
+                           java.lang.String&nbsp;wwwAuthenticateHeader,
+                           <a href="../Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a>&nbsp;credentials)</code></th>
+<td class="colLast">
+<div class="block">Generate value used as "<a href="../../../spi/UpgradeRequest.html#AUTHORIZATION">"Authorization"</a>" header value for next request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Credentials.html" title="class in org.glassfish.tyrus.client.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/auth/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/client/auth/package-summary.html
new file mode 100644
index 00000000..69f93f97
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/auth/package-summary.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.client.auth (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.client.auth (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.client.auth</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a></th>
+<td class="colLast">
+<div class="block">AuthConfig serves as a configuration of HTTP authentication.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></th>
+<td class="colLast">
+<div class="block">The AuthConfig.Builder is a class used for creating an instance of <a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a> for purpose of HTTP
+ Authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a></th>
+<td class="colLast">
+<div class="block">Authenticator provides a way how to plug-in custom authentication provider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a></th>
+<td class="colLast">
+<div class="block">Credentials can be used when configuring authentication properties used during client handshake.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">AuthenticationException</a></th>
+<td class="colLast">
+<div class="block">This exception is set as a cause of <a href="../../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown when <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...)
+ fails because of any of the following:
+ 
+ 
+ HTTP response status code 401 is received and "<a href="../../spi/UpgradeResponse.html#WWW_AUTHENTICATE">"WWW-Authenticate"</a>" header
+ contains scheme which is not handled by any <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> registered in <a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/auth/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/client/auth/package-tree.html
new file mode 100644
index 00000000..77521f4b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/auth/package-tree.html
@@ -0,0 +1,181 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.client.auth Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.client.auth Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.client.auth</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.client.auth.<a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">AuthConfig</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.auth.<a href="AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">AuthConfig.Builder</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.auth.<a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">Authenticator</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.auth.<a href="Credentials.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">Credentials</span></a></li>
+<li class="circle">java.lang.Throwable (implements java.io.Serializable)
+<ul>
+<li class="circle">java.lang.Exception
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="../../core/HandshakeException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">HandshakeException</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.client.auth.<a href="AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">AuthenticationException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/auth/package-use.html b/apidocs/1.20/org/glassfish/tyrus/client/auth/package-use.html
new file mode 100644
index 00000000..6a96ac13
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/auth/package-use.html
@@ -0,0 +1,217 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.client.auth (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.client.auth (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.client.auth" class="title">Uses of Package<br>org.glassfish.tyrus.client.auth</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.client.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client.auth">org.glassfish.tyrus.client.auth</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.client.auth">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.client.auth</a> used by <a href="package-summary.html">org.glassfish.tyrus.client.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/AuthConfig.html#org.glassfish.tyrus.client.auth">AuthConfig</a></th>
+<td class="colLast">
+<div class="block">AuthConfig serves as a configuration of HTTP authentication.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/AuthConfig.Builder.html#org.glassfish.tyrus.client.auth">AuthConfig.Builder</a></th>
+<td class="colLast">
+<div class="block">The AuthConfig.Builder is a class used for creating an instance of <a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a> for purpose of HTTP
+ Authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/AuthenticationException.html#org.glassfish.tyrus.client.auth">AuthenticationException</a></th>
+<td class="colLast">
+<div class="block">This exception is set as a cause of <a href="../../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown when <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...)
+ fails because of any of the following:
+ 
+ 
+ HTTP response status code 401 is received and "<a href="../../spi/UpgradeResponse.html#WWW_AUTHENTICATE">"WWW-Authenticate"</a>" header
+ contains scheme which is not handled by any <a href="Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> registered in <a href="AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Authenticator.html#org.glassfish.tyrus.client.auth">Authenticator</a></th>
+<td class="colLast">
+<div class="block">Authenticator provides a way how to plug-in custom authentication provider.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Credentials.html#org.glassfish.tyrus.client.auth">Credentials</a></th>
+<td class="colLast">
+<div class="block">Credentials can be used when configuring authentication properties used during client handshake.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/class-use/ClientManager.ReconnectHandler.html b/apidocs/1.20/org/glassfish/tyrus/client/class-use/ClientManager.ReconnectHandler.html
new file mode 100644
index 00000000..051dafd4
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/class-use/ClientManager.ReconnectHandler.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.ClientManager.ReconnectHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.ClientManager.ReconnectHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.ClientManager.ReconnectHandler" class="title">Uses of Class<br>org.glassfish.tyrus.client.ClientManager.ReconnectHandler</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.client.ClientManager.ReconnectHandler</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/class-use/ClientManager.html b/apidocs/1.20/org/glassfish/tyrus/client/class-use/ClientManager.html
new file mode 100644
index 00000000..a3e4c9e7
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/class-use/ClientManager.html
@@ -0,0 +1,250 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.ClientManager (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.ClientManager (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientManager.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.ClientManager" class="title">Uses of Class<br>org.glassfish.tyrus.client.ClientManager</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a> in <a href="../package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.client</a> that return <a href="../ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../ClientManager.html#createClient()">createClient</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../ClientManager.html" title="class in org.glassfish.tyrus.client"><code>ClientManager</code></a> instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../ClientManager.html#createClient(java.lang.String)">createClient</a></span>&#8203;(java.lang.String&nbsp;containerProviderClassName)</code></th>
+<td class="colLast">
+<div class="block">Create new ClientManager instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../ClientManager.html#createClient(java.lang.String,javax.websocket.WebSocketContainer)">createClient</a></span>&#8203;(java.lang.String&nbsp;containerProviderClassName,
+            <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;webSocketContainer)</code></th>
+<td class="colLast">
+<div class="block">Create new ClientManager instance on top of provided <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a> instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientManager.</span><code><span class="memberNameLink"><a href="../ClientManager.html#createClient(javax.websocket.WebSocketContainer)">createClient</a></span>&#8203;(<a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;webSocketContainer)</code></th>
+<td class="colLast">
+<div class="block">Create new ClientManager instance on top of provided <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a> in <a href="../../server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../server/package-summary.html">org.glassfish.tyrus.server</a> that return <a href="../ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerContainer.</span><code><span class="memberNameLink"><a href="../../server/TyrusServerContainer.html#getClientManager()">getClientManager</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Can be overridden to provide own <a href="../ClientManager.html" title="class in org.glassfish.tyrus.client"><code>ClientManager</code></a> implementation or instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientManager.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/class-use/ClientProperties.html b/apidocs/1.20/org/glassfish/tyrus/client/class-use/ClientProperties.html
new file mode 100644
index 00000000..6aca543a
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/class-use/ClientProperties.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.ClientProperties (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.ClientProperties (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientProperties.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.ClientProperties" class="title">Uses of Class<br>org.glassfish.tyrus.client.ClientProperties</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.client.ClientProperties</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientProperties.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/class-use/RedirectException.html b/apidocs/1.20/org/glassfish/tyrus/client/class-use/RedirectException.html
new file mode 100644
index 00000000..6d79d5d1
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/class-use/RedirectException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.RedirectException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.RedirectException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RedirectException.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.RedirectException" class="title">Uses of Class<br>org.glassfish.tyrus.client.RedirectException</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.client.RedirectException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RedirectException.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/class-use/RetryAfterException.html b/apidocs/1.20/org/glassfish/tyrus/client/class-use/RetryAfterException.html
new file mode 100644
index 00000000..c465de0b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/class-use/RetryAfterException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.RetryAfterException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.RetryAfterException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RetryAfterException.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.RetryAfterException" class="title">Uses of Class<br>org.glassfish.tyrus.client.RetryAfterException</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.client.RetryAfterException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RetryAfterException.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/class-use/SslContextConfigurator.html b/apidocs/1.20/org/glassfish/tyrus/client/class-use/SslContextConfigurator.html
new file mode 100644
index 00000000..6feb8a03
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/class-use/SslContextConfigurator.html
@@ -0,0 +1,358 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.SslContextConfigurator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.SslContextConfigurator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.SslContextConfigurator" class="title">Uses of Class<br>org.glassfish.tyrus.client.SslContextConfigurator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a> in <a href="../package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.glassfish.tyrus.client</a> declared as <a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#DEFAULT_CONFIG">DEFAULT_CONFIG</a></span></code></th>
+<td class="colLast">
+<div class="block">Default SSL configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslEngineConfigurator.</span><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#sslContextConfiguration">sslContextConfiguration</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.client</a> that return <a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#retrieve(java.util.Properties)">retrieve</a></span>&#8203;(java.util.Properties&nbsp;props)</code></th>
+<td class="colLast">
+<div class="block">Retrieve settings from (system) properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setKeyManagerFactoryAlgorithm(java.lang.String)">setKeyManagerFactoryAlgorithm</a></span>&#8203;(java.lang.String&nbsp;keyManagerFactoryAlgorithm)</code></th>
+<td class="colLast">
+<div class="block">Sets the key manager factory algorithm.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setKeyPassword(char%5B%5D)">setKeyPassword</a></span>&#8203;(char[]&nbsp;keyPassword)</code></th>
+<td class="colLast">
+<div class="block">Password of the key in the <em>key</em> store.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setKeyPassword(java.lang.String)">setKeyPassword</a></span>&#8203;(java.lang.String&nbsp;keyPassword)</code></th>
+<td class="colLast">
+<div class="block">Password of the key in the <em>key</em> store.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setKeyStoreBytes(byte%5B%5D)">setKeyStoreBytes</a></span>&#8203;(byte[]&nbsp;keyStoreBytes)</code></th>
+<td class="colLast">
+<div class="block">Sets key store payload as byte array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setKeyStoreFile(java.lang.String)">setKeyStoreFile</a></span>&#8203;(java.lang.String&nbsp;keyStoreFile)</code></th>
+<td class="colLast">
+<div class="block">Sets key store file name, also makes sure that if other key store
+ configuration parameters are not set to set them to default values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setKeyStorePassword(char%5B%5D)">setKeyStorePassword</a></span>&#8203;(char[]&nbsp;keyStorePassword)</code></th>
+<td class="colLast">
+<div class="block">Password of <em>key</em> store.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setKeyStorePassword(java.lang.String)">setKeyStorePassword</a></span>&#8203;(java.lang.String&nbsp;keyStorePassword)</code></th>
+<td class="colLast">
+<div class="block">Password of <em>key</em> store.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setKeyStoreProvider(java.lang.String)">setKeyStoreProvider</a></span>&#8203;(java.lang.String&nbsp;keyStoreProvider)</code></th>
+<td class="colLast">
+<div class="block">Sets the <em>key</em> store provider name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setKeyStoreType(java.lang.String)">setKeyStoreType</a></span>&#8203;(java.lang.String&nbsp;keyStoreType)</code></th>
+<td class="colLast">
+<div class="block">Type of <em>key</em> store.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setSecurityProtocol(java.lang.String)">setSecurityProtocol</a></span>&#8203;(java.lang.String&nbsp;securityProtocol)</code></th>
+<td class="colLast">
+<div class="block">Sets the SSLContext protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setTrustManagerFactoryAlgorithm(java.lang.String)">setTrustManagerFactoryAlgorithm</a></span>&#8203;(java.lang.String&nbsp;trustManagerFactoryAlgorithm)</code></th>
+<td class="colLast">
+<div class="block">Sets the trust manager factory algorithm.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setTrustStoreBytes(byte%5B%5D)">setTrustStoreBytes</a></span>&#8203;(byte[]&nbsp;trustStoreBytes)</code></th>
+<td class="colLast">
+<div class="block">Sets trust store payload as byte array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setTrustStoreFile(java.lang.String)">setTrustStoreFile</a></span>&#8203;(java.lang.String&nbsp;trustStoreFile)</code></th>
+<td class="colLast">
+<div class="block">Sets trust store file name, also makes sure that if other trust store
+ configuration parameters are not set to set them to default values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setTrustStorePassword(java.lang.String)">setTrustStorePassword</a></span>&#8203;(java.lang.String&nbsp;trustStorePassword)</code></th>
+<td class="colLast">
+<div class="block">Password of <em>trust</em> store.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setTrustStoreProvider(java.lang.String)">setTrustStoreProvider</a></span>&#8203;(java.lang.String&nbsp;trustStoreProvider)</code></th>
+<td class="colLast">
+<div class="block">Sets the <em>trust</em> store provider name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslContextConfigurator.</span><code><span class="memberNameLink"><a href="../SslContextConfigurator.html#setTrustStoreType(java.lang.String)">setTrustStoreType</a></span>&#8203;(java.lang.String&nbsp;trustStoreType)</code></th>
+<td class="colLast">
+<div class="block">Type of <em>trust</em> store.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.client</a> with parameters of type <a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#%3Cinit%3E(org.glassfish.tyrus.client.SslContextConfigurator)">SslEngineConfigurator</a></span>&#8203;(<a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;sslContextConfiguration)</code></th>
+<td class="colLast">
+<div class="block">Create SSL Engine configuration based on passed <a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#%3Cinit%3E(org.glassfish.tyrus.client.SslContextConfigurator,boolean,boolean,boolean)">SslEngineConfigurator</a></span>&#8203;(<a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a>&nbsp;sslContextConfiguration,
+                     boolean&nbsp;clientMode,
+                     boolean&nbsp;needClientAuth,
+                     boolean&nbsp;wantClientAuth)</code></th>
+<td class="colLast">
+<div class="block">Create SSL Engine configuration basing on passed <a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><code>SslContextConfigurator</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/class-use/SslEngineConfigurator.html b/apidocs/1.20/org/glassfish/tyrus/client/class-use/SslEngineConfigurator.html
new file mode 100644
index 00000000..e2e8a126
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/class-use/SslEngineConfigurator.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.SslEngineConfigurator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.SslEngineConfigurator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.SslEngineConfigurator" class="title">Uses of Class<br>org.glassfish.tyrus.client.SslEngineConfigurator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a> in <a href="../package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.client</a> that return <a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslEngineConfigurator.</span><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#copy()">copy</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslEngineConfigurator.</span><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#setCipherConfigured(boolean)">setCipherConfigured</a></span>&#8203;(boolean&nbsp;isCipherConfigured)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslEngineConfigurator.</span><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#setClientMode(boolean)">setClientMode</a></span>&#8203;(boolean&nbsp;clientMode)</code></th>
+<td class="colLast">
+<div class="block">Set <code>SSLEngine</code> to be configured to work in client mode.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslEngineConfigurator.</span><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#setEnabledCipherSuites(java.lang.String%5B%5D)">setEnabledCipherSuites</a></span>&#8203;(java.lang.String[]&nbsp;enabledCipherSuites)</code></th>
+<td class="colLast">
+<div class="block">Set enabled cipher suites.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslEngineConfigurator.</span><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#setEnabledProtocols(java.lang.String%5B%5D)">setEnabledProtocols</a></span>&#8203;(java.lang.String[]&nbsp;enabledProtocols)</code></th>
+<td class="colLast">
+<div class="block">Set enabled protocols.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslEngineConfigurator.</span><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#setHostnameVerifier(javax.net.ssl.HostnameVerifier)">setHostnameVerifier</a></span>&#8203;(javax.net.ssl.HostnameVerifier&nbsp;hostnameVerifier)</code></th>
+<td class="colLast">
+<div class="block">Set custom hostname verifier.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslEngineConfigurator.</span><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#setHostVerificationEnabled(boolean)">setHostVerificationEnabled</a></span>&#8203;(boolean&nbsp;hostVerificationEnabled)</code></th>
+<td class="colLast">
+<div class="block">Set hostname verification.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslEngineConfigurator.</span><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#setNeedClientAuth(boolean)">setNeedClientAuth</a></span>&#8203;(boolean&nbsp;needClientAuth)</code></th>
+<td class="colLast">
+<div class="block">Set "need client auth" property.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslEngineConfigurator.</span><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#setProtocolConfigured(boolean)">setProtocolConfigured</a></span>&#8203;(boolean&nbsp;isProtocolConfigured)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SslEngineConfigurator.</span><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#setWantClientAuth(boolean)">setWantClientAuth</a></span>&#8203;(boolean&nbsp;wantClientAuth)</code></th>
+<td class="colLast">
+<div class="block">Set "want client auth" property.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.client</a> with parameters of type <a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../SslEngineConfigurator.html#%3Cinit%3E(org.glassfish.tyrus.client.SslEngineConfigurator)">SslEngineConfigurator</a></span>&#8203;(<a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a>&nbsp;original)</code></th>
+<td class="colLast">
+<div class="block">Copy constructor.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/class-use/ThreadPoolConfig.html b/apidocs/1.20/org/glassfish/tyrus/client/class-use/ThreadPoolConfig.html
new file mode 100644
index 00000000..b3870623
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/class-use/ThreadPoolConfig.html
@@ -0,0 +1,277 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.ThreadPoolConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.ThreadPoolConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.ThreadPoolConfig" class="title">Uses of Class<br>org.glassfish.tyrus.client.ThreadPoolConfig</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a> in <a href="../package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.client</a> that return <a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ThreadPoolConfig.</span><code><span class="memberNameLink"><a href="../ThreadPoolConfig.html#copy()">copy</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a copy of this thread pool config.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ThreadPoolConfig.</span><code><span class="memberNameLink"><a href="../ThreadPoolConfig.html#defaultConfig()">defaultConfig</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new client thread pool configuration instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ThreadPoolConfig.</span><code><span class="memberNameLink"><a href="../ThreadPoolConfig.html#setCorePoolSize(int)">setCorePoolSize</a></span>&#8203;(int&nbsp;corePoolSize)</code></th>
+<td class="colLast">
+<div class="block">Set the core thread pool size - the size of the thread pool will never bee smaller than this.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ThreadPoolConfig.</span><code><span class="memberNameLink"><a href="../ThreadPoolConfig.html#setDaemon(boolean)">setDaemon</a></span>&#8203;(boolean&nbsp;isDaemon)</code></th>
+<td class="colLast">
+<div class="block">Set <code>true</code> if thread pool threads are daemons.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ThreadPoolConfig.</span><code><span class="memberNameLink"><a href="../ThreadPoolConfig.html#setInitialClassLoader(java.lang.ClassLoader)">setInitialClassLoader</a></span>&#8203;(java.lang.ClassLoader&nbsp;initialClassLoader)</code></th>
+<td class="colLast">
+<div class="block">Specifies the context class loader that will be used by threads in this pool.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ThreadPoolConfig.</span><code><span class="memberNameLink"><a href="../ThreadPoolConfig.html#setKeepAliveTime(long,java.util.concurrent.TimeUnit)">setKeepAliveTime</a></span>&#8203;(long&nbsp;time,
+                java.util.concurrent.TimeUnit&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">The max period of time a thread will wait for a new task to process.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ThreadPoolConfig.</span><code><span class="memberNameLink"><a href="../ThreadPoolConfig.html#setMaxPoolSize(int)">setMaxPoolSize</a></span>&#8203;(int&nbsp;maxPoolSize)</code></th>
+<td class="colLast">
+<div class="block">Set max thread pool size.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ThreadPoolConfig.</span><code><span class="memberNameLink"><a href="../ThreadPoolConfig.html#setPoolName(java.lang.String)">setPoolName</a></span>&#8203;(java.lang.String&nbsp;poolName)</code></th>
+<td class="colLast">
+<div class="block">Set thread pool name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ThreadPoolConfig.</span><code><span class="memberNameLink"><a href="../ThreadPoolConfig.html#setPriority(int)">setPriority</a></span>&#8203;(int&nbsp;priority)</code></th>
+<td class="colLast">
+<div class="block">Set priority of the threads in thread pool.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ThreadPoolConfig.</span><code><span class="memberNameLink"><a href="../ThreadPoolConfig.html#setQueue(java.util.Queue)">setQueue</a></span>&#8203;(java.util.Queue&lt;java.lang.Runnable&gt;&nbsp;queue)</code></th>
+<td class="colLast">
+<div class="block">Set a queue implementation that will be used to temporarily store tasks when all threads in the thread pool are
+ busy.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ThreadPoolConfig.</span><code><span class="memberNameLink"><a href="../ThreadPoolConfig.html#setQueueLimit(int)">setQueueLimit</a></span>&#8203;(int&nbsp;queueLimit)</code></th>
+<td class="colLast">
+<div class="block">Set the limit of the queue, where tasks are temporarily stored when all threads are busy.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ThreadPoolConfig.</span><code><span class="memberNameLink"><a href="../ThreadPoolConfig.html#setThreadFactory(java.util.concurrent.ThreadFactory)">setThreadFactory</a></span>&#8203;(java.util.concurrent.ThreadFactory&nbsp;threadFactory)</code></th>
+<td class="colLast">
+<div class="block">Set <code>ThreadFactory</code> that will be used to create thread pool threads.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/class-use/TyrusClientEngine.ClientHandshakeListener.html b/apidocs/1.20/org/glassfish/tyrus/client/class-use/TyrusClientEngine.ClientHandshakeListener.html
new file mode 100644
index 00000000..d598de12
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/class-use/TyrusClientEngine.ClientHandshakeListener.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.client.TyrusClientEngine.ClientHandshakeListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.client.TyrusClientEngine.ClientHandshakeListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusClientEngine.ClientHandshakeListener.html" title="interface in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.client.TyrusClientEngine.ClientHandshakeListener" class="title">Uses of Interface<br>org.glassfish.tyrus.client.TyrusClientEngine.ClientHandshakeListener</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.client.TyrusClientEngine.ClientHandshakeListener</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusClientEngine.ClientHandshakeListener.html" title="interface in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/class-use/TyrusClientEngine.html b/apidocs/1.20/org/glassfish/tyrus/client/class-use/TyrusClientEngine.html
new file mode 100644
index 00000000..857a1a44
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/class-use/TyrusClientEngine.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.TyrusClientEngine (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.TyrusClientEngine (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.client.TyrusClientEngine" class="title">Uses of Class<br>org.glassfish.tyrus.client.TyrusClientEngine</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.client.TyrusClientEngine</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/client/package-summary.html
new file mode 100644
index 00000000..9eff6429
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/package-summary.html
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.client (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.client (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.client</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Common Client.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TyrusClientEngine.ClientHandshakeListener.html" title="interface in org.glassfish.tyrus.client">TyrusClientEngine.ClientHandshakeListener</a></th>
+<td class="colLast">
+<div class="block">Called when response is received from the server.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></th>
+<td class="colLast">
+<div class="block">ClientManager implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client">ClientManager.ReconnectHandler</a></th>
+<td class="colLast">
+<div class="block">Reconnect handler.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientProperties.html" title="class in org.glassfish.tyrus.client">ClientProperties</a></th>
+<td class="colLast">
+<div class="block">Tyrus client configuration properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client">SslContextConfigurator</a></th>
+<td class="colLast">
+<div class="block">Utility class, which helps to configure ssl context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client">SslEngineConfigurator</a></th>
+<td class="colLast">
+<div class="block">SSLEngineConfigurator class from Grizzly project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client">ThreadPoolConfig</a></th>
+<td class="colLast">
+<div class="block">Client thread pool configuration, which might be used to customize client thread pool.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">TyrusClientEngine</a></th>
+<td class="colLast">
+<div class="block">Tyrus <a href="../spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine</code></a> implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RedirectException.html" title="class in org.glassfish.tyrus.client">RedirectException</a></th>
+<td class="colLast">
+<div class="block">This exception is set as a cause of <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown from <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...)
+ when any of the Redirect HTTP response status codes (300, 301, 302, 303, 307, 308) is received as a handshake
+ response and:
+ 
+ 
+ <a href="ClientProperties.html#REDIRECT_ENABLED"><code>ClientProperties.REDIRECT_ENABLED</code></a> is not enabled
+ 
+ 
+ or the chained redirection count exceeds the value of <a href="ClientProperties.html#REDIRECT_THRESHOLD"><code>ClientProperties.REDIRECT_THRESHOLD</code></a>
+ 
+ 
+ or Infinite redirection loop is detected
+ 
+ 
+ or <a href="../spi/UpgradeResponse.html#LOCATION">"Location"</a> response header is missing, empty or does not contain a valid <code>URI</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="RetryAfterException.html" title="class in org.glassfish.tyrus.client">RetryAfterException</a></th>
+<td class="colLast">
+<div class="block">This exception is set as a cause of <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown from <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...) when HTTP response status code <code>503 - Service Unavailable</code> is
+ received.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/client/package-tree.html
new file mode 100644
index 00000000..954ef2c5
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/package-tree.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.client Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.client Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.client</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.client.<a href="ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">ClientManager.ReconnectHandler</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.<a href="ClientProperties.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">ClientProperties</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="../core/ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ExecutorServiceProvider</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="../core/BaseContainer.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">BaseContainer</span></a> (implements javax.websocket.<a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>)
+<ul>
+<li class="circle">org.glassfish.tyrus.client.<a href="ClientManager.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">ClientManager</span></a> (implements javax.websocket.<a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>)</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.client.<a href="SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">SslContextConfigurator</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.<a href="SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">SslEngineConfigurator</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.<a href="ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">ThreadPoolConfig</span></a></li>
+<li class="circle">java.lang.Throwable (implements java.io.Serializable)
+<ul>
+<li class="circle">java.lang.Exception
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="../core/HandshakeException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">HandshakeException</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.client.<a href="RedirectException.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">RedirectException</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.<a href="RetryAfterException.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">RetryAfterException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.client.<a href="TyrusClientEngine.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">TyrusClientEngine</span></a> (implements org.glassfish.tyrus.spi.<a href="../spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a>)</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">org.glassfish.tyrus.client.<a href="TyrusClientEngine.ClientHandshakeListener.html" title="interface in org.glassfish.tyrus.client"><span class="typeNameLink">TyrusClientEngine.ClientHandshakeListener</span></a></li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/client/package-use.html b/apidocs/1.20/org/glassfish/tyrus/client/package-use.html
new file mode 100644
index 00000000..88bef269
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/client/package-use.html
@@ -0,0 +1,232 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.client (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.client (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.client" class="title">Uses of Package<br>org.glassfish.tyrus.client</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.client</a> used by <a href="package-summary.html">org.glassfish.tyrus.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientManager.html#org.glassfish.tyrus.client">ClientManager</a></th>
+<td class="colLast">
+<div class="block">ClientManager implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SslContextConfigurator.html#org.glassfish.tyrus.client">SslContextConfigurator</a></th>
+<td class="colLast">
+<div class="block">Utility class, which helps to configure ssl context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/SslEngineConfigurator.html#org.glassfish.tyrus.client">SslEngineConfigurator</a></th>
+<td class="colLast">
+<div class="block">SSLEngineConfigurator class from Grizzly project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ThreadPoolConfig.html#org.glassfish.tyrus.client">ThreadPoolConfig</a></th>
+<td class="colLast">
+<div class="block">Client thread pool configuration, which might be used to customize client thread pool.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.client</a> used by <a href="../server/package-summary.html">org.glassfish.tyrus.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientManager.html#org.glassfish.tyrus.server">ClientManager</a></th>
+<td class="colLast">
+<div class="block">ClientManager implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html
new file mode 100644
index 00000000..6881bb21
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html
@@ -0,0 +1,462 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>GrizzlyClientContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GrizzlyClientContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GrizzlyClientContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></div>
+<h2 title="Class GrizzlyClientContainer" class="title">Class GrizzlyClientContainer</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">GrizzlyClientContainer</span>
+extends java.lang.Object
+implements <a href="../../../spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a></pre>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Danny Coward (danny.coward at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SHARED_CONTAINER">SHARED_CONTAINER</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="../../../client/ClientProperties.html#SHARED_CONTAINER"><code>ClientProperties.SHARED_CONTAINER</code></a>.</div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SHARED_CONTAINER_IDLE_TIMEOUT">SHARED_CONTAINER_IDLE_TIMEOUT</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="../../../client/ClientProperties.html#SHARED_CONTAINER_IDLE_TIMEOUT"><code>ClientProperties.SHARED_CONTAINER_IDLE_TIMEOUT</code></a>.</div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SSL_ENGINE_CONFIGURATOR">SSL_ENGINE_CONFIGURATOR</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="../../../client/ClientProperties.html#SSL_ENGINE_CONFIGURATOR"><code>ClientProperties.SSL_ENGINE_CONFIGURATOR</code></a>.</div>
+</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.spi.ClientContainer">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.glassfish.tyrus.spi.<a href="../../../spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a></h3>
+<code><a href="../../../spi/ClientContainer.html#INCOMING_BUFFER_SIZE">INCOMING_BUFFER_SIZE</a>, <a href="../../../spi/ClientContainer.html#WLS_INCOMING_BUFFER_SIZE">WLS_INCOMING_BUFFER_SIZE</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">GrizzlyClientContainer</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">openClientSocket</a></span>&#8203;(<a href="../../../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+                <a href="../../../spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a>&nbsp;clientEngine)</code></th>
+<td class="colLast">
+<div class="block">Open client socket - connect to endpoint specified with <code>url</code> parameter.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="SSL_ENGINE_CONFIGURATOR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SSL_ENGINE_CONFIGURATOR</h4>
+<pre>public static final&nbsp;java.lang.String SSL_ENGINE_CONFIGURATOR</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="../../../client/ClientProperties.html#SSL_ENGINE_CONFIGURATOR"><code>ClientProperties.SSL_ENGINE_CONFIGURATOR</code></a>.</div>
+</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer.SSL_ENGINE_CONFIGURATOR">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SHARED_CONTAINER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SHARED_CONTAINER</h4>
+<pre>public static final&nbsp;java.lang.String SHARED_CONTAINER</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="../../../client/ClientProperties.html#SHARED_CONTAINER"><code>ClientProperties.SHARED_CONTAINER</code></a>.</div>
+</div>
+<div class="block">When set to <code>true</code> (boolean value), client runtime preserves used container and reuses it for outgoing
+ connections.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../client/ClientProperties.html#SHARED_CONTAINER_IDLE_TIMEOUT"><code>ClientProperties.SHARED_CONTAINER_IDLE_TIMEOUT</code></a>, 
+<a href="../../../../../../constant-values.html#org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer.SHARED_CONTAINER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SHARED_CONTAINER_IDLE_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SHARED_CONTAINER_IDLE_TIMEOUT</h4>
+<pre>public static final&nbsp;java.lang.String SHARED_CONTAINER_IDLE_TIMEOUT</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="../../../client/ClientProperties.html#SHARED_CONTAINER_IDLE_TIMEOUT"><code>ClientProperties.SHARED_CONTAINER_IDLE_TIMEOUT</code></a>.</div>
+</div>
+<div class="block">Container idle timeout in seconds (Integer value).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../client/ClientProperties.html#SHARED_CONTAINER"><code>ClientProperties.SHARED_CONTAINER</code></a>, 
+<a href="../../../../../../constant-values.html#org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer.SHARED_CONTAINER_IDLE_TIMEOUT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GrizzlyClientContainer</h4>
+<pre>public&nbsp;GrizzlyClientContainer()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>openClientSocket</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;openClientSocket&#8203;(<a href="../../../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                             java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+                             <a href="../../../spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a>&nbsp;clientEngine)
+                      throws <a href="../../../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                             java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../spi/ClientContainer.html#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">ClientContainer</a></code></span></div>
+<div class="block">Open client socket - connect to endpoint specified with <code>url</code> parameter.
+ <p>
+ Called from ClientManager when <a href="../../../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a> is invoked.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/ClientContainer.html#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">openClientSocket</a></code>&nbsp;in interface&nbsp;<code><a href="../../../spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cec</code> - endpoint configuration. SPI consumer can access user properties, <a href="../../../../../../javax/websocket/ClientEndpointConfig.Configurator.html" title="class in javax.websocket"><code>ClientEndpointConfig.Configurator</code></a>, extensions and subprotocol
+                     configuration,
+                     etc..</dd>
+<dd><code>properties</code> - properties passed from client container. Don't mix up this with <a href="../../../../../../javax/websocket/EndpointConfig.html#getUserProperties()"><code>EndpointConfig.getUserProperties()</code></a>, these are Tyrus proprietary.</dd>
+<dd><code>clientEngine</code> - one instance equals to one connection, cannot be reused. Implementation is expected to call
+                     <a href="../../../spi/ClientEngine.html#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)"><code>ClientEngine.createUpgradeRequest(ClientEngine.TimeoutHandler)</code></a> and <a href="../../../spi/ClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>ClientEngine.processResponse(UpgradeResponse, Writer,
+                     org.glassfish.tyrus.spi.Connection.CloseListener)</code></a> (in that order).</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - when the client endpoint is invalid or when there is any other (not
+                                             specified) connection problem.</dd>
+<dd><code>java.io.IOException</code> - when there is any I/O issue related to opening client socket or
+                                             connecting to remote endpoint.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GrizzlyClientContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html
new file mode 100644
index 00000000..b6cc2b7a
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>GrizzlyClientProperties (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GrizzlyClientProperties (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GrizzlyClientProperties.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></div>
+<h2 title="Class GrizzlyClientProperties" class="title">Class GrizzlyClientProperties</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">GrizzlyClientProperties</span>
+extends java.lang.Object</pre>
+<div class="block">Grizzly client properties.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SELECTOR_THREAD_POOL_CONFIG">SELECTOR_THREAD_POOL_CONFIG</a></span></code></th>
+<td class="colLast">
+<div class="block">Client-side property to set custom selector <code>ThreadPoolConfig</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WORKER_THREAD_POOL_CONFIG">WORKER_THREAD_POOL_CONFIG</a></span></code></th>
+<td class="colLast">
+<div class="block">Client-side property to set custom worker <code>ThreadPoolConfig</code>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">GrizzlyClientProperties</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="WORKER_THREAD_POOL_CONFIG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WORKER_THREAD_POOL_CONFIG</h4>
+<pre>public static final&nbsp;java.lang.String WORKER_THREAD_POOL_CONFIG</pre>
+<div class="block">Client-side property to set custom worker <code>ThreadPoolConfig</code>.
+ <p>
+ Value is expected to be instance of <code>ThreadPoolConfig</code>, can be <code>
+ null</code> (it won't be used).
+ <p>
+ If both <a href="#WORKER_THREAD_POOL_CONFIG"><code>WORKER_THREAD_POOL_CONFIG</code></a> nad  <a href="../../../client/package-summary.html"><code>.ClientProperties#WORKER_THREAD_POOL_CONFIG</code></a> are set, configuration set in <a href="#WORKER_THREAD_POOL_CONFIG"><code>WORKER_THREAD_POOL_CONFIG</code></a>
+ will be used.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties.WORKER_THREAD_POOL_CONFIG">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SELECTOR_THREAD_POOL_CONFIG">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SELECTOR_THREAD_POOL_CONFIG</h4>
+<pre>public static final&nbsp;java.lang.String SELECTOR_THREAD_POOL_CONFIG</pre>
+<div class="block">Client-side property to set custom selector <code>ThreadPoolConfig</code>.
+ <p>
+ Value is expected to be instance of <code>ThreadPoolConfig</code>, can be <code>
+ null</code> (it won't be used).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties.SELECTOR_THREAD_POOL_CONFIG">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GrizzlyClientProperties</h4>
+<pre>public&nbsp;GrizzlyClientProperties()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GrizzlyClientProperties.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html
new file mode 100644
index 00000000..deddb3c4
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html
@@ -0,0 +1,444 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>GrizzlyClientSocket (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GrizzlyClientSocket (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GrizzlyClientSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></div>
+<h2 title="Class GrizzlyClientSocket" class="title">Class GrizzlyClientSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">GrizzlyClientSocket</span>
+extends java.lang.Object</pre>
+<div class="block">Implementation of the WebSocket interface.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PROXY_HEADERS">PROXY_HEADERS</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="../../../client/ClientProperties.html#PROXY_HEADERS"><code>ClientProperties.PROXY_HEADERS</code></a></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PROXY_URI">PROXY_URI</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="../../../client/ClientProperties.html#PROXY_URI"><code>ClientProperties.PROXY_URI</code></a>.</div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SELECTOR_THREAD_POOL_CONFIG">SELECTOR_THREAD_POOL_CONFIG</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="package-summary.html"><code>.GrizzlyClientProperties#SELECTOR_THREAD_POOL_CONFIG</code></a>.</div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WORKER_THREAD_POOL_CONFIG">WORKER_THREAD_POOL_CONFIG</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="package-summary.html"><code>.GrizzlyClientProperties#WORKER_THREAD_POOL_CONFIG</code></a>.</div>
+</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connect()">connect</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Performs connect to server endpoint.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="PROXY_URI">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROXY_URI</h4>
+<pre>public static final&nbsp;java.lang.String PROXY_URI</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="../../../client/ClientProperties.html#PROXY_URI"><code>ClientProperties.PROXY_URI</code></a>.</div>
+</div>
+<div class="block">Client-side user property to set proxy URI.
+ <p>
+ Value is expected to be <code>String</code> and represent proxy URI. Protocol part is currently ignored
+ but must be present (<code>URI(String)</code> is used for parsing).
+ <pre>
+     client.getProperties().put(GrizzlyClientSocket.PROXY_URI, "http://my.proxy.com:80");
+     client.connectToServer(...);
+ </pre></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../javax/websocket/EndpointConfig.html#getUserProperties()"><code>EndpointConfig.getUserProperties()</code></a>, 
+<a href="../../../../../../constant-values.html#org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.PROXY_URI">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="PROXY_HEADERS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROXY_HEADERS</h4>
+<pre>public static final&nbsp;java.lang.String PROXY_HEADERS</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="../../../client/ClientProperties.html#PROXY_HEADERS"><code>ClientProperties.PROXY_HEADERS</code></a></div>
+</div>
+<div class="block">Client-side user property to set additional proxy headers.
+ <p>
+ Value is expected to be <code>Map</code>&lt;<code>String</code>, <code>String</code>&gt; and represent raw http headers
+ to be added to initial request which is sent to proxy. Key corresponds to header name, value is header
+ value.
+ <p>
+ Sample below demonstrates use of this feature to set preemptive basic proxy authentication:
+ <pre>
+     final HashMap&lt;String, String&gt; proxyHeaders = new HashMap&lt;String, String&gt;();
+     proxyHeaders.put("Proxy-Authorization", "Basic " +
+         Base64.getEncoder().encodeToString("username:password".getBytes(Charset.forName("UTF-8"))));
+
+     client.getProperties().put(GrizzlyClientSocket.PROXY_HEADERS, proxyHeaders);
+     client.connectToServer(...);
+ </pre>
+ Please note that these headers will be used only when establishing proxy connection, for modifying WebSocket
+ handshake headers, see <a href="../../../../../../javax/websocket/ClientEndpointConfig.Configurator.html#beforeRequest(java.util.Map)"><code>ClientEndpointConfig.Configurator.beforeRequest(java.util.Map)</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../javax/websocket/EndpointConfig.html#getUserProperties()"><code>EndpointConfig.getUserProperties()</code></a>, 
+<a href="../../../../../../constant-values.html#org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.PROXY_HEADERS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WORKER_THREAD_POOL_CONFIG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WORKER_THREAD_POOL_CONFIG</h4>
+<pre>public static final&nbsp;java.lang.String WORKER_THREAD_POOL_CONFIG</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="package-summary.html"><code>.GrizzlyClientProperties#WORKER_THREAD_POOL_CONFIG</code></a>.</div>
+</div>
+<div class="block">Client-side property to set custom worker <code>ThreadPoolConfig</code>.
+ <p>
+ Value is expected to be instance of <code>ThreadPoolConfig</code>, can be <code>null</code> (it won't be used).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.WORKER_THREAD_POOL_CONFIG">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SELECTOR_THREAD_POOL_CONFIG">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SELECTOR_THREAD_POOL_CONFIG</h4>
+<pre>public static final&nbsp;java.lang.String SELECTOR_THREAD_POOL_CONFIG</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="package-summary.html"><code>.GrizzlyClientProperties#SELECTOR_THREAD_POOL_CONFIG</code></a>.</div>
+</div>
+<div class="block">Client-side property to set custom selector <code>ThreadPoolConfig</code>.
+ <p>
+ Value is expected to be instance of <code>ThreadPoolConfig</code>, can be <code>null</code> (it won't be used).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.SELECTOR_THREAD_POOL_CONFIG">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="connect()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>connect</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;connect()
+             throws <a href="../../../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                    java.io.IOException</pre>
+<div class="block">Performs connect to server endpoint.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - when there the server endpoint cannot be reached.</dd>
+<dd><code>java.io.IOException</code> - when transport fails to start.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GrizzlyClientSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html
new file mode 100644
index 00000000..f28a235f
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html
@@ -0,0 +1,334 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>GrizzlyContainerProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GrizzlyContainerProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GrizzlyContainerProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></div>
+<h2 title="Class GrizzlyContainerProvider" class="title">Class GrizzlyContainerProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../javax/websocket/ContainerProvider.html" title="class in javax.websocket">javax.websocket.ContainerProvider</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.container.grizzly.client.GrizzlyContainerProvider</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">GrizzlyContainerProvider</span>
+extends <a href="../../../../../../javax/websocket/ContainerProvider.html" title="class in javax.websocket">ContainerProvider</a></pre>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">GrizzlyContainerProvider</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContainer()">getContainer</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Load the container implementation.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.ContainerProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.websocket.<a href="../../../../../../javax/websocket/ContainerProvider.html" title="class in javax.websocket">ContainerProvider</a></h3>
+<code><a href="../../../../../../javax/websocket/ContainerProvider.html#getWebSocketContainer()">getWebSocketContainer</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GrizzlyContainerProvider</h4>
+<pre>public&nbsp;GrizzlyContainerProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getContainer()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getContainer</h4>
+<pre class="methodSignature">protected&nbsp;<a href="../../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;getContainer()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../javax/websocket/ContainerProvider.html#getContainer()">ContainerProvider</a></code></span></div>
+<div class="block">Load the container implementation.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../javax/websocket/ContainerProvider.html#getContainer()">getContainer</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../javax/websocket/ContainerProvider.html" title="class in javax.websocket">ContainerProvider</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the implementation class</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GrizzlyContainerProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html
new file mode 100644
index 00000000..9d05dcc5
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html
@@ -0,0 +1,420 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>GrizzlyWriter (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GrizzlyWriter (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GrizzlyWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></div>
+<h2 title="Class GrizzlyWriter" class="title">Class GrizzlyWriter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../spi/Writer.html" title="class in org.glassfish.tyrus.spi">org.glassfish.tyrus.spi.Writer</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.container.grizzly.client.GrizzlyWriter</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Closeable</code>, <code>java.lang.AutoCloseable</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">GrizzlyWriter</span>
+extends <a href="../../../spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></pre>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.grizzly.Connection)">GrizzlyWriter</a></span>&#8203;(org.glassfish.grizzly.Connection&nbsp;connection)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(java.lang.Object&nbsp;obj)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler)">write</a></span>&#8203;(java.nio.ByteBuffer&nbsp;buffer,
+     <a href="../../../spi/CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a>&lt;java.nio.ByteBuffer&gt;&nbsp;completionHandler)</code></th>
+<td class="colLast">
+<div class="block">
+ A backward compatible method called from <a href="../../../spi/Writer.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler,org.glassfish.tyrus.spi.WriterInfo)"><code>Writer.write(ByteBuffer, CompletionHandler, WriterInfo)</code></a>
+ to handover the data for a connection
+ to the transport.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.spi.Writer">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.spi.<a href="../../../spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></h3>
+<code><a href="../../../spi/Writer.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler,org.glassfish.tyrus.spi.WriterInfo)">write</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.grizzly.Connection)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GrizzlyWriter</h4>
+<pre>public&nbsp;GrizzlyWriter&#8203;(org.glassfish.grizzly.Connection&nbsp;connection)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;write&#8203;(java.nio.ByteBuffer&nbsp;buffer,
+                  <a href="../../../spi/CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a>&lt;java.nio.ByteBuffer&gt;&nbsp;completionHandler)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../spi/Writer.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler)">Writer</a></code></span></div>
+<div class="block"><p>
+ A backward compatible method called from <a href="../../../spi/Writer.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler,org.glassfish.tyrus.spi.WriterInfo)"><code>Writer.write(ByteBuffer, CompletionHandler, WriterInfo)</code></a>
+ to handover the data for a connection
+ to the transport. The transport writes bytes to underlying connection.
+ Tyrus runtime must not use the buffer until the write is completed.
+ </p>
+ <p>
+ The method will be removed in the next major version.
+ </p></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/Writer.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler)">write</a></code>&nbsp;in class&nbsp;<code><a href="../../../spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>buffer</code> - bytes to write.</dd>
+<dd><code>completionHandler</code> - completion handler to know the write status.</dd>
+</dl>
+</li>
+</ul>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;close()</pre>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>hashCode</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(java.lang.Object&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>equals</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GrizzlyWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html
new file mode 100644
index 00000000..f97bcfb8
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html
@@ -0,0 +1,264 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TaskProcessor.Condition (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TaskProcessor.Condition (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TaskProcessor.Condition.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></div>
+<h2 title="Interface TaskProcessor.Condition" class="title">Interface TaskProcessor.Condition</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">TaskProcessor.Condition</span></pre>
+<div class="block">Condition used in <a href="TaskProcessor.html#processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)"><code>TaskProcessor.processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)</code></a>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isValid()">isValid</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check the condition.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isValid()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isValid</h4>
+<pre class="methodSignature">boolean&nbsp;isValid()</pre>
+<div class="block">Check the condition.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when condition is valid, <code>false otherwise</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TaskProcessor.Condition.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html
new file mode 100644
index 00000000..721f2a79
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html
@@ -0,0 +1,316 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TaskProcessor.Task (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TaskProcessor.Task (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TaskProcessor.Task.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></div>
+<h2 title="Class TaskProcessor.Task" class="title">Class TaskProcessor.Task</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor</a></dd>
+</dl>
+<hr>
+<pre>public abstract static class <span class="typeNameLabel">TaskProcessor.Task</span>
+extends java.lang.Object</pre>
+<div class="block">Generic task representation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Task</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#execute()">execute</a></span>()</code></th>
+<td class="colLast">
+<div class="block">To be overridden.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Task</h4>
+<pre>public&nbsp;Task()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="execute()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>execute</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;execute()</pre>
+<div class="block">To be overridden.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TaskProcessor.Task.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html
new file mode 100644
index 00000000..c60af142
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html
@@ -0,0 +1,397 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TaskProcessor (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TaskProcessor (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TaskProcessor.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></div>
+<h2 title="Class TaskProcessor" class="title">Class TaskProcessor</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.container.grizzly.client.TaskProcessor</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">TaskProcessor</span>
+extends java.lang.Object</pre>
+<div class="block">A class responsible for processing <a href="TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client"><code>TaskProcessor.Task</code></a>. It ensures that only one task will be processed at a time, because
+ Grizzly Worker-thread IOStrategy does not wait until one message is processed before dispatching another one.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com), Petr Janouch</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Condition</a></span></code></th>
+<td class="colLast">
+<div class="block">Condition used in <a href="#processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)"><code>processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Task</a></span></code></th>
+<td class="colLast">
+<div class="block">Generic task representation.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">TaskProcessor</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Condition)">TaskProcessor</a></span>&#8203;(<a href="TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Condition</a>&nbsp;condition)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#processTask()">processTask</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Process as much tasks from task queue as possible.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)">processTask</a></span>&#8203;(<a href="TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Task</a>&nbsp;task)</code></th>
+<td class="colLast">
+<div class="block">Add a task to the task queue and process as much tasks from the task queue as possible.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Condition)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TaskProcessor</h4>
+<pre>public&nbsp;TaskProcessor&#8203;(<a href="TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Condition</a>&nbsp;condition)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>condition</code> - if present, it will be called before processing each <a href="TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client"><code>TaskProcessor.Task</code></a>. When <a href="TaskProcessor.Condition.html#isValid()"><code>TaskProcessor.Condition.isValid()</code></a>
+                  returns <code>false</code>, processing will be terminated. If <code>null</code>,
+                  all tasks from the queue will be processed.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TaskProcessor</h4>
+<pre>public&nbsp;TaskProcessor()</pre>
+<div class="block">Constructor.
+ <p>
+ There is no condition that has to be checked before processing each task.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>processTask</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;processTask&#8203;(<a href="TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Task</a>&nbsp;task)</pre>
+<div class="block">Add a task to the task queue and process as much tasks from the task queue as possible.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>task</code> - <a href="TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client"><code>TaskProcessor.Task</code></a> that should be processed.</dd>
+</dl>
+</li>
+</ul>
+<a id="processTask()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>processTask</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;processTask()</pre>
+<div class="block">Process as much tasks from task queue as possible.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TaskProcessor.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientContainer.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientContainer.html
new file mode 100644
index 00000000..0c961e23
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientContainer.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer" class="title">Uses of Class<br>org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientProperties.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientProperties.html
new file mode 100644
index 00000000..fda7c6ff
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientProperties.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GrizzlyClientProperties.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties" class="title">Uses of Class<br>org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GrizzlyClientProperties.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientSocket.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientSocket.html
new file mode 100644
index 00000000..118193df
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientSocket.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket" class="title">Uses of Class<br>org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyContainerProvider.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyContainerProvider.html
new file mode 100644
index 00000000..6e907280
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyContainerProvider.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyContainerProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyContainerProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GrizzlyContainerProvider.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyContainerProvider" class="title">Uses of Class<br>org.glassfish.tyrus.container.grizzly.client.GrizzlyContainerProvider</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.container.grizzly.client.GrizzlyContainerProvider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GrizzlyContainerProvider.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyWriter.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyWriter.html
new file mode 100644
index 00000000..69551c6d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyWriter.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyWriter (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyWriter (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyWriter" class="title">Uses of Class<br>org.glassfish.tyrus.container.grizzly.client.GrizzlyWriter</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.container.grizzly.client.GrizzlyWriter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Condition.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Condition.html
new file mode 100644
index 00000000..8093fe24
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Condition.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Condition (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Condition (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Condition" class="title">Uses of Interface<br>org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Condition</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Condition</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.client">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.container.grizzly.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Condition</a> in <a href="../package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></h3>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.container.grizzly.client</a> with parameters of type <a href="../TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Condition</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TaskProcessor.html#%3Cinit%3E(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Condition)">TaskProcessor</a></span>&#8203;(<a href="../TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Condition</a>&nbsp;condition)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Task.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Task.html
new file mode 100644
index 00000000..62a577b1
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Task.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task" class="title">Uses of Class<br>org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Task</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.client">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.container.grizzly.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Task</a> in <a href="../package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.container.grizzly.client</a> with parameters of type <a href="../TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Task</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TaskProcessor.</span><code><span class="memberNameLink"><a href="../TaskProcessor.html#processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)">processTask</a></span>&#8203;(<a href="../TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Task</a>&nbsp;task)</code></th>
+<td class="colLast">
+<div class="block">Add a task to the task queue and process as much tasks from the task queue as possible.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.html
new file mode 100644
index 00000000..75592e75
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor" class="title">Uses of Class<br>org.glassfish.tyrus.container.grizzly.client.TaskProcessor</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.container.grizzly.client.TaskProcessor</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/package-summary.html
new file mode 100644
index 00000000..2515f708
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/package-summary.html
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.container.grizzly.client (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.container.grizzly.client (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.container.grizzly.client</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Grizzly Client container.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Condition</a></th>
+<td class="colLast">
+<div class="block">Condition used in <a href="TaskProcessor.html#processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)"><code>TaskProcessor.processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientContainer</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="GrizzlyClientProperties.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientProperties</a></th>
+<td class="colLast">
+<div class="block">Grizzly client properties.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientSocket</a></th>
+<td class="colLast">
+<div class="block">Implementation of the WebSocket interface.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="GrizzlyContainerProvider.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyContainerProvider</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyWriter</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor</a></th>
+<td class="colLast">
+<div class="block">A class responsible for processing <a href="TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client"><code>TaskProcessor.Task</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Task</a></th>
+<td class="colLast">
+<div class="block">Generic task representation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/package-tree.html
new file mode 100644
index 00000000..e2fa6a3f
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/package-tree.html
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.container.grizzly.client Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.container.grizzly.client Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.container.grizzly.client</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">javax.websocket.<a href="../../../../../../javax/websocket/ContainerProvider.html" title="class in javax.websocket"><span class="typeNameLink">ContainerProvider</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="GrizzlyContainerProvider.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyContainerProvider</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyClientContainer</span></a> (implements org.glassfish.tyrus.spi.<a href="../../../spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a>)</li>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="GrizzlyClientProperties.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyClientProperties</span></a></li>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyClientSocket</span></a></li>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">TaskProcessor</span></a></li>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">TaskProcessor.Task</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="../../../spi/Writer.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">Writer</span></a> (implements java.io.Closeable)
+<ul>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyWriter</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">TaskProcessor.Condition</span></a></li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/package-use.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/package-use.html
new file mode 100644
index 00000000..be6ade96
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/package-use.html
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.container.grizzly.client (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.container.grizzly.client (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.container.grizzly.client" class="title">Uses of Package<br>org.glassfish.tyrus.container.grizzly.client</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.client">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.container.grizzly.client">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.container.grizzly.client</a> used by <a href="package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/TaskProcessor.Condition.html#org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Condition</a></th>
+<td class="colLast">
+<div class="block">Condition used in <a href="TaskProcessor.html#processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)"><code>TaskProcessor.processTask(org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/TaskProcessor.Task.html#org.glassfish.tyrus.container.grizzly.client">TaskProcessor.Task</a></th>
+<td class="colLast">
+<div class="block">Generic task representation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html
new file mode 100644
index 00000000..dfefbcdb
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html
@@ -0,0 +1,413 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>GrizzlyServerContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GrizzlyServerContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GrizzlyServerContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.container.grizzly.server</a></div>
+<h2 title="Class GrizzlyServerContainer" class="title">Class GrizzlyServerContainer</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">org.glassfish.tyrus.spi.ServerContainerFactory</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">GrizzlyServerContainer</span>
+extends <a href="../../../spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">ServerContainerFactory</a></pre>
+<div class="block">Grizzly implementation of <a href="../../../spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi"><code>ServerContainerFactory</code></a> and <a href="../../../spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Danny Coward (danny.coward at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SELECTOR_THREAD_POOL_CONFIG">SELECTOR_THREAD_POOL_CONFIG</a></span></code></th>
+<td class="colLast">
+<div class="block">Server-side property to set custom selector <code>ThreadPoolConfig</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WORKER_THREAD_POOL_CONFIG">WORKER_THREAD_POOL_CONFIG</a></span></code></th>
+<td class="colLast">
+<div class="block">Server-side property to set custom worker <code>ThreadPoolConfig</code>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">GrizzlyServerContainer</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createContainer(java.util.Map)">createContainer</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties)</code></th>
+<td class="colLast">
+<div class="block">Create container delegate method.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.spi.ServerContainerFactory">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.spi.<a href="../../../spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">ServerContainerFactory</a></h3>
+<code><a href="../../../spi/ServerContainerFactory.html#createServerContainer()">createServerContainer</a>, <a href="../../../spi/ServerContainerFactory.html#createServerContainer(java.util.Map)">createServerContainer</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="WORKER_THREAD_POOL_CONFIG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WORKER_THREAD_POOL_CONFIG</h4>
+<pre>public static final&nbsp;java.lang.String WORKER_THREAD_POOL_CONFIG</pre>
+<div class="block">Server-side property to set custom worker <code>ThreadPoolConfig</code>.
+ <p>
+ Value is expected to be instance of <code>ThreadPoolConfig</code>, can be <code>null</code> (it won't be used).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer.WORKER_THREAD_POOL_CONFIG">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SELECTOR_THREAD_POOL_CONFIG">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SELECTOR_THREAD_POOL_CONFIG</h4>
+<pre>public static final&nbsp;java.lang.String SELECTOR_THREAD_POOL_CONFIG</pre>
+<div class="block">Server-side property to set custom selector <code>ThreadPoolConfig</code>.
+ <p>
+ Value is expected to be instance of <code>ThreadPoolConfig</code>, can be <code>null</code> (it won't be used).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer.SELECTOR_THREAD_POOL_CONFIG">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GrizzlyServerContainer</h4>
+<pre>public&nbsp;GrizzlyServerContainer()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="createContainer(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createContainer</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a>&nbsp;createContainer&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../spi/ServerContainerFactory.html#createContainer(java.util.Map)">ServerContainerFactory</a></code></span></div>
+<div class="block">Create container delegate method.
+ <p>
+ Has to be implemented by <a href="../../../spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi"><code>ServerContainerFactory</code></a> implementations.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../spi/ServerContainerFactory.html#createContainer(java.util.Map)">createContainer</a></code>&nbsp;in class&nbsp;<code><a href="../../../spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">ServerContainerFactory</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>properties</code> - configuration passed to created server container.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <a href="../../../spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GrizzlyServerContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html
new file mode 100644
index 00000000..04ff8a47
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html
@@ -0,0 +1,284 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WebSocketAddOn (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WebSocketAddOn (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebSocketAddOn.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.container.grizzly.server</a></div>
+<h2 title="Class WebSocketAddOn" class="title">Class WebSocketAddOn</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.container.grizzly.server.WebSocketAddOn</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>org.glassfish.grizzly.http.server.AddOn</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">WebSocketAddOn</span>
+extends java.lang.Object
+implements org.glassfish.grizzly.http.server.AddOn</pre>
+<div class="block">WebSockets <code>AddOn</code> for the <code>HttpServer</code>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Alexey Stashok</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setup(org.glassfish.grizzly.http.server.NetworkListener,org.glassfish.grizzly.filterchain.FilterChainBuilder)">setup</a></span>&#8203;(org.glassfish.grizzly.http.server.NetworkListener&nbsp;networkListener,
+     org.glassfish.grizzly.filterchain.FilterChainBuilder&nbsp;builder)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="setup(org.glassfish.grizzly.http.server.NetworkListener,org.glassfish.grizzly.filterchain.FilterChainBuilder)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setup</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setup&#8203;(org.glassfish.grizzly.http.server.NetworkListener&nbsp;networkListener,
+                  org.glassfish.grizzly.filterchain.FilterChainBuilder&nbsp;builder)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>setup</code>&nbsp;in interface&nbsp;<code>org.glassfish.grizzly.http.server.AddOn</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebSocketAddOn.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/class-use/GrizzlyServerContainer.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/class-use/GrizzlyServerContainer.html
new file mode 100644
index 00000000..29788144
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/class-use/GrizzlyServerContainer.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer" class="title">Uses of Class<br>org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/class-use/WebSocketAddOn.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/class-use/WebSocketAddOn.html
new file mode 100644
index 00000000..6716435f
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/class-use/WebSocketAddOn.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.server.WebSocketAddOn (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.server.WebSocketAddOn (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebSocketAddOn.html" title="class in org.glassfish.tyrus.container.grizzly.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.container.grizzly.server.WebSocketAddOn" class="title">Uses of Class<br>org.glassfish.tyrus.container.grizzly.server.WebSocketAddOn</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.container.grizzly.server.WebSocketAddOn</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebSocketAddOn.html" title="class in org.glassfish.tyrus.container.grizzly.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/package-summary.html
new file mode 100644
index 00000000..1314c417
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/package-summary.html
@@ -0,0 +1,181 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.container.grizzly.server (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.container.grizzly.server (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.container.grizzly.server</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Grizzly Server container.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server">GrizzlyServerContainer</a></th>
+<td class="colLast">
+<div class="block">Grizzly implementation of <a href="../../../spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi"><code>ServerContainerFactory</code></a> and <a href="../../../spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="WebSocketAddOn.html" title="class in org.glassfish.tyrus.container.grizzly.server">WebSocketAddOn</a></th>
+<td class="colLast">
+<div class="block">WebSockets <code>AddOn</code> for the <code>HttpServer</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/package-tree.html
new file mode 100644
index 00000000..bcaedb9f
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/package-tree.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.container.grizzly.server Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.container.grizzly.server Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.container.grizzly.server</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.spi.<a href="../../../spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">ServerContainerFactory</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.container.grizzly.server.<a href="GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server"><span class="typeNameLink">GrizzlyServerContainer</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.container.grizzly.server.<a href="WebSocketAddOn.html" title="class in org.glassfish.tyrus.container.grizzly.server"><span class="typeNameLink">WebSocketAddOn</span></a> (implements org.glassfish.grizzly.http.server.AddOn)</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/package-use.html b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/package-use.html
new file mode 100644
index 00000000..06768826
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/package-use.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.container.grizzly.server (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.container.grizzly.server (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.container.grizzly.server" class="title">Uses of Package<br>org.glassfish.tyrus.container.grizzly.server</h1>
+</div>
+<div class="contentContainer">No usage of org.glassfish.tyrus.container.grizzly.server</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/AnnotatedEndpoint.html b/apidocs/1.20/org/glassfish/tyrus/core/AnnotatedEndpoint.html
new file mode 100644
index 00000000..b740dbca
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/AnnotatedEndpoint.html
@@ -0,0 +1,536 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>AnnotatedEndpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AnnotatedEndpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AnnotatedEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class AnnotatedEndpoint" class="title">Class AnnotatedEndpoint</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">javax.websocket.Endpoint</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.AnnotatedEndpoint</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">AnnotatedEndpoint</span>
+extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a></pre>
+<div class="block"><a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> descendant which represents deployed annotated endpoint.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Martin Matula (martin.matula at oracle.com), Stepan Kopriva (stepan.kopriva at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener)">fromClass</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedClass,
+         <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+         boolean&nbsp;isServerEndpoint,
+         int&nbsp;incomingBufferSize,
+         <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+         <a href="monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.util.Set)">fromClass</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedClass,
+         <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+         boolean&nbsp;isServerEndpoint,
+         int&nbsp;incomingBufferSize,
+         <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+         <a href="monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+         java.util.Set&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector)">fromInstance</a></span>&#8203;(java.lang.Object&nbsp;annotatedInstance,
+            <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+            boolean&nbsp;isServerEndpoint,
+            int&nbsp;incomingBufferSize,
+            <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from instance.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,java.util.Set)">fromInstance</a></span>&#8203;(java.lang.Object&nbsp;annotatedInstance,
+            <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+            boolean&nbsp;isServerEndpoint,
+            int&nbsp;incomingBufferSize,
+            <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+            java.util.Set&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from instance.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEndpointConfig()">getEndpointConfig</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onClose(javax.websocket.Session,javax.websocket.CloseReason)">onClose</a></span>&#8203;(<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+       <a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">This method is called immediately prior to the session with the remote 
+ peer being closed.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onError(javax.websocket.Session,java.lang.Throwable)">onError</a></span>&#8203;(<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+       java.lang.Throwable&nbsp;thr)</code></th>
+<td class="colLast">
+<div class="block">Developers may implement this method when the web socket session
+ creates some kind of error that is not modeled in the web socket protocol.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)">onOpen</a></span>&#8203;(<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+      <a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Developers must implement this method to be notified when a new conversation has
+ just begun.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromClass</h4>
+<pre class="methodSignature">public static&nbsp;<a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a>&nbsp;fromClass&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedClass,
+                                          <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                                          boolean&nbsp;isServerEndpoint,
+                                          int&nbsp;incomingBufferSize,
+                                          <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+                                          <a href="monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener)</pre>
+<div class="block">Create <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>annotatedClass</code> - annotated class.</dd>
+<dd><code>componentProvider</code> - used for instantiating.</dd>
+<dd><code>isServerEndpoint</code> - <code>true</code> iff annotated endpoint is deployed on server side.</dd>
+<dd><code>incomingBufferSize</code> - size limit of the incoming buffer.</dd>
+<dd><code>collector</code> - error collector.</dd>
+<dd><code>endpointEventListener</code> - listener of monitored endpoint events.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.util.Set)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromClass</h4>
+<pre class="methodSignature">public static&nbsp;<a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a>&nbsp;fromClass&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedClass,
+                                          <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                                          boolean&nbsp;isServerEndpoint,
+                                          int&nbsp;incomingBufferSize,
+                                          <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+                                          <a href="monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                                          java.util.Set&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</pre>
+<div class="block">Create <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>annotatedClass</code> - annotated class.</dd>
+<dd><code>componentProvider</code> - used for instantiating.</dd>
+<dd><code>isServerEndpoint</code> - <code>true</code> iff annotated endpoint is deployed on server side.</dd>
+<dd><code>incomingBufferSize</code> - size limit of the incoming buffer.</dd>
+<dd><code>collector</code> - error collector.</dd>
+<dd><code>endpointEventListener</code> - listener of monitored endpoint events.</dd>
+<dd><code>extensions</code> - installed extentions.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a>&nbsp;fromInstance&#8203;(java.lang.Object&nbsp;annotatedInstance,
+                                             <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                                             boolean&nbsp;isServerEndpoint,
+                                             int&nbsp;incomingBufferSize,
+                                             <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</pre>
+<div class="block">Create <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>annotatedInstance</code> - annotated instance.</dd>
+<dd><code>componentProvider</code> - used for instantiating.</dd>
+<dd><code>isServerEndpoint</code> - <code>true</code> iff annotated endpoint is deployed on server side.</dd>
+<dd><code>incomingBufferSize</code> - size limit of the incoming buffer</dd>
+<dd><code>collector</code> - error collector.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,java.util.Set)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a>&nbsp;fromInstance&#8203;(java.lang.Object&nbsp;annotatedInstance,
+                                             <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                                             boolean&nbsp;isServerEndpoint,
+                                             int&nbsp;incomingBufferSize,
+                                             <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+                                             java.util.Set&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</pre>
+<div class="block">Create <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>annotatedInstance</code> - annotated instance.</dd>
+<dd><code>componentProvider</code> - used for instantiating.</dd>
+<dd><code>isServerEndpoint</code> - <code>true</code> iff annotated endpoint is deployed on server side.</dd>
+<dd><code>incomingBufferSize</code> - size limit of the incoming buffer</dd>
+<dd><code>collector</code> - error collector.</dd>
+<dd><code>extensions</code> - installed extentions.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="onClose(javax.websocket.Session,javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onClose</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onClose&#8203;(<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+                    <a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/websocket/Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)">Endpoint</a></code></span></div>
+<div class="block">This method is called immediately prior to the session with the remote 
+ peer being closed. It is called whether the session is being closed 
+ because the remote peer initiated a close and sent a close frame, or 
+ whether the local websocket container or this endpoint requests to close 
+ the session. The developer may take this last opportunity to retrieve
+ session attributes such as the ID, or any application data it holds before 
+ it becomes unavailable after the completion of the method. Developers should
+ not attempt to modify the session from within this method, or send new 
+ messages from this call as the underlying 
+ connection will not be able to send them at this stage.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)">onClose</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - the session about to be closed.</dd>
+<dd><code>closeReason</code> - the reason the session was closed.</dd>
+</dl>
+</li>
+</ul>
+<a id="onError(javax.websocket.Session,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onError</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onError&#8203;(<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+                    java.lang.Throwable&nbsp;thr)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/websocket/Endpoint.html#onError(javax.websocket.Session,java.lang.Throwable)">Endpoint</a></code></span></div>
+<div class="block">Developers may implement this method when the web socket session
+ creates some kind of error that is not modeled in the web socket protocol. This may for example
+ be a notification that an incoming message is too big to handle, or that the incoming message could not be encoded.
+
+ <p>There are a number of categories of exception that this method is (currently) defined to handle:
+ <ul>
+ <li>connection problems, for example, a socket failure that occurs before
+ the web socket connection can be formally closed. These are modeled as 
+ <a href="../../../../javax/websocket/SessionException.html" title="class in javax.websocket"><code>SessionException</code></a>s</li>
+ <li>runtime errors thrown by developer created message handlers calls.</li>
+ <li>conversion errors encoding incoming messages before any message handler has been called. These
+ are modeled as <a href="../../../../javax/websocket/DecodeException.html" title="class in javax.websocket"><code>DecodeException</code></a>s</li>
+ </ul></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Endpoint.html#onError(javax.websocket.Session,java.lang.Throwable)">onError</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - the session in use when the error occurs.</dd>
+<dd><code>thr</code> - the throwable representing the problem.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEndpointConfig()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEndpointConfig</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;getEndpointConfig()</pre>
+</li>
+</ul>
+<a id="onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onOpen</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onOpen&#8203;(<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+                   <a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/websocket/Endpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)">Endpoint</a></code></span></div>
+<div class="block">Developers must implement this method to be notified when a new conversation has
+ just begun.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Endpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)">onOpen</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - the session that has just been activated.</dd>
+<dd><code>configuration</code> - the configuration used to configure this endpoint.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AnnotatedEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html b/apidocs/1.20/org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html
new file mode 100644
index 00000000..43e57082
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html
@@ -0,0 +1,256 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>BaseContainer.ShutDownCondition (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BaseContainer.ShutDownCondition (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BaseContainer.ShutDownCondition.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Interface BaseContainer.ShutDownCondition" class="title">Interface BaseContainer.ShutDownCondition</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></dd>
+</dl>
+<hr>
+<pre>protected static interface <span class="typeNameLabel">BaseContainer.ShutDownCondition</span></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluate()">evaluate</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="evaluate()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>evaluate</h4>
+<pre class="methodSignature">boolean&nbsp;evaluate()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BaseContainer.ShutDownCondition.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/BaseContainer.html b/apidocs/1.20/org/glassfish/tyrus/core/BaseContainer.html
new file mode 100644
index 00000000..0f539f4a
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/BaseContainer.html
@@ -0,0 +1,446 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>BaseContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BaseContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BaseContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class BaseContainer" class="title">Class BaseContainer</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.ExecutorServiceProvider</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.BaseContainer</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="../client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code>, <code><a href="../server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">BaseContainer</span>
+extends <a href="ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a>
+implements <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></pre>
+<div class="block">Base WebSocket container.
+ <p>
+ Client and Server containers extend this to provide additional functionality.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Jitendra Kotamraju</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">BaseContainer.ShutDownCondition</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BaseContainer</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.ExecutorService</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExecutorService()">getExecutorService</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a container-managed <code>ExecutorService</code> registered under
+ <code>java:comp/DefaultManagedExecutorService</code> or if the lookup has failed, it returns a
+ <code>ExecutorService</code> created and managed by this instance of
+ <a href="BaseContainer.html" title="class in org.glassfish.tyrus.core"><code>BaseContainer</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.ScheduledExecutorService</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getScheduledExecutorService()">getScheduledExecutorService</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a container-managed <code>ScheduledExecutorService</code> registered under
+ <code>java:comp/DefaultManagedScheduledExecutorService</code> or if the lookup has failed it returns a
+ <code>ScheduledExecutorService</code> created and managed by this instance of
+ <a href="BaseContainer.html" title="class in org.glassfish.tyrus.core"><code>BaseContainer</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shutdown()">shutdown</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Release executor services managed by this instance.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shutdown(org.glassfish.tyrus.core.BaseContainer.ShutDownCondition)">shutdown</a></span>&#8203;(<a href="BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">BaseContainer.ShutDownCondition</a>&nbsp;shutDownCondition)</code></th>
+<td class="colLast">
+<div class="block">Release executor services managed by this instance if the condition passed in the parameter is fulfilled.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.WebSocketContainer">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></h3>
+<code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultAsyncSendTimeout()">getDefaultAsyncSendTimeout</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxBinaryMessageBufferSize()">getDefaultMaxBinaryMessageBufferSize</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxSessionIdleTimeout()">getDefaultMaxSessionIdleTimeout</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxTextMessageBufferSize()">getDefaultMaxTextMessageBufferSize</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#getInstalledExtensions()">getInstalledExtensions</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#setAsyncSendTimeout(long)">setAsyncSendTimeout</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxBinaryMessageBufferSize(int)">setDefaultMaxBinaryMessageBufferSize</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxSessionIdleTimeout(long)">setDefaultMaxSessionIdleTimeout</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxTextMessageBufferSize(int)">setDefaultMaxTextMessageBufferSize</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BaseContainer</h4>
+<pre>public&nbsp;BaseContainer()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getExecutorService()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExecutorService</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.ExecutorService&nbsp;getExecutorService()</pre>
+<div class="block">Returns a container-managed <code>ExecutorService</code> registered under
+ <code>java:comp/DefaultManagedExecutorService</code> or if the lookup has failed, it returns a
+ <code>ExecutorService</code> created and managed by this instance of
+ <a href="BaseContainer.html" title="class in org.glassfish.tyrus.core"><code>BaseContainer</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="ExecutorServiceProvider.html#getExecutorService()">getExecutorService</a></code>&nbsp;in class&nbsp;<code><a href="ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>executor service.</dd>
+</dl>
+</li>
+</ul>
+<a id="getScheduledExecutorService()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getScheduledExecutorService</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.ScheduledExecutorService&nbsp;getScheduledExecutorService()</pre>
+<div class="block">Returns a container-managed <code>ScheduledExecutorService</code> registered under
+ <code>java:comp/DefaultManagedScheduledExecutorService</code> or if the lookup has failed it returns a
+ <code>ScheduledExecutorService</code> created and managed by this instance of
+ <a href="BaseContainer.html" title="class in org.glassfish.tyrus.core"><code>BaseContainer</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="ExecutorServiceProvider.html#getScheduledExecutorService()">getScheduledExecutorService</a></code>&nbsp;in class&nbsp;<code><a href="ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>scheduled executor service.</dd>
+</dl>
+</li>
+</ul>
+<a id="shutdown()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>shutdown</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;shutdown()</pre>
+<div class="block">Release executor services managed by this instance. Executor services obtained via JNDI lookup won't be
+ shut down.</div>
+</li>
+</ul>
+<a id="shutdown(org.glassfish.tyrus.core.BaseContainer.ShutDownCondition)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>shutdown</h4>
+<pre class="methodSignature">protected&nbsp;void&nbsp;shutdown&#8203;(<a href="BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">BaseContainer.ShutDownCondition</a>&nbsp;shutDownCondition)</pre>
+<div class="block">Release executor services managed by this instance if the condition passed in the parameter is fulfilled.
+ Executor services obtained via JNDI lookup won't be shut down.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>shutDownCondition</code> - condition that will be evaluated before executor services are released and they will be
+                          released only if the condition is evaluated to <code>true</code>. The condition will be
+                          evaluated in a synchronized block in order to make the process of its evaluation
+                          and executor services release an atomic operation.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BaseContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/Beta.html b/apidocs/1.20/org/glassfish/tyrus/core/Beta.html
new file mode 100644
index 00000000..b7538ad7
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/Beta.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Beta (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Beta (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Beta.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Annotation Type Beta" class="title">Annotation Type Beta</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>@Retention(CLASS)
+@Documented
+@Target({ANNOTATION_TYPE,TYPE,CONSTRUCTOR,METHOD,FIELD,PACKAGE})
+public @interface <span class="memberNameLabel">Beta</span></pre>
+<div class="block">Marker of a public Tyrus API that is still in "beta" non-final version.
+ <p>
+ This annotation signals that the annotated public Tyrus API (package, class, method or field)
+ has not been fully stabilized yet. As such, the API is subject to backward-incompatible changes
+ (or even removal) in a future Tyrus release. Tyrus development team does not make any guarantees
+ to retain backward compatibility of a <code>@Beta</code>-annotated Tyrus API.
+ <p>
+ This annotation does not indicate inferior quality or performance of the API, just informs that the
+ API may still evolve in the future in a backward-incompatible ways. Tyrus users may use beta APIs
+ in their applications keeping in mind potential cost of extra work associated with an upgrade
+ to a newer Tyrus version.
+ <p>
+ Once a <code>@Beta</code>-annotated Tyrus API reaches the desired maturity, the <code>@Beta</code> annotation
+ will be removed from such API and the API will become part of a stable public Tyrus API.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar (marek.potociar at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Beta.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/CloseReasons.html b/apidocs/1.20/org/glassfish/tyrus/core/CloseReasons.html
new file mode 100644
index 00000000..42028295
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/CloseReasons.html
@@ -0,0 +1,691 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CloseReasons (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CloseReasons (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":10,"i2":9,"i3":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloseReasons.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Enum CloseReasons" class="title">Enum CloseReasons</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.CloseReasons</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public enum <span class="typeNameLabel">CloseReasons</span>
+extends java.lang.Enum&lt;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a>&gt;</pre>
+<div class="block">Enum containing standard CloseReasons defined in RFC 6455, see chapter
+ <a href="https://tools.ietf.org/html/rfc6455#section-7.4.1">7.4.1 Defined Status Codes</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CANNOT_ACCEPT">CANNOT_ACCEPT</a></span></code></th>
+<td class="colLast">
+<div class="block">1003 indicates that an endpoint is terminating the connection
+ because it has received a type of data it cannot accept (e.g., an
+ endpoint that understands only text data MAY send this if it
+ receives a binary message).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CLOSED_ABNORMALLY">CLOSED_ABNORMALLY</a></span></code></th>
+<td class="colLast">
+<div class="block">1006 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#GOING_AWAY">GOING_AWAY</a></span></code></th>
+<td class="colLast">
+<div class="block">1001 indicates that an endpoint is "going away", such as a server
+ going down or a browser having navigated away from a page.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NO_EXTENSION">NO_EXTENSION</a></span></code></th>
+<td class="colLast">
+<div class="block">1010 indicates that an endpoint (client) is terminating the
+ connection because it has expected the server to negotiate one or
+ more extension, but the server didn't return them in the response
+ message of the WebSocket handshake.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NO_STATUS_CODE">NO_STATUS_CODE</a></span></code></th>
+<td class="colLast">
+<div class="block">1005 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NORMAL_CLOSURE">NORMAL_CLOSURE</a></span></code></th>
+<td class="colLast">
+<div class="block">1000 indicates a normal closure, meaning that the purpose for
+ which the connection was established has been fulfilled.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NOT_CONSISTENT">NOT_CONSISTENT</a></span></code></th>
+<td class="colLast">
+<div class="block">1007 indicates that an endpoint is terminating the connection
+ because it has received data within a message that was not
+ consistent with the type of the message (e.g., non-UTF-8
+ data within a text message).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PROTOCOL_ERROR">PROTOCOL_ERROR</a></span></code></th>
+<td class="colLast">
+<div class="block">1002 indicates that an endpoint is terminating the connection due
+ to a protocol error.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#RESERVED">RESERVED</a></span></code></th>
+<td class="colLast">
+<div class="block">Reserved.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SERVICE_RESTART">SERVICE_RESTART</a></span></code></th>
+<td class="colLast">
+<div class="block">1012 indicates that the service will be restarted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TLS_HANDSHAKE_FAILURE">TLS_HANDSHAKE_FAILURE</a></span></code></th>
+<td class="colLast">
+<div class="block">1015 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TOO_BIG">TOO_BIG</a></span></code></th>
+<td class="colLast">
+<div class="block">1009 indicates that an endpoint is terminating the connection
+ because it has received a message that is too big for it to
+ process.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TRY_AGAIN_LATER">TRY_AGAIN_LATER</a></span></code></th>
+<td class="colLast">
+<div class="block">1013 indicates that the service is experiencing overload</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#UNEXPECTED_CONDITION">UNEXPECTED_CONDITION</a></span></code></th>
+<td class="colLast">
+<div class="block">1011 indicates that a server is terminating the connection because
+ it encountered an unexpected condition that prevented it from
+ fulfilling the request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#VIOLATED_POLICY">VIOLATED_POLICY</a></span></code></th>
+<td class="colLast">
+<div class="block">1008 indicates that an endpoint is terminating the connection
+ because it has received a message that violates its policy.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(javax.websocket.CloseReason.CloseCode,java.lang.String)">create</a></span>&#8203;(<a href="../../../../javax/websocket/CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a>&nbsp;closeCode,
+      java.lang.String&nbsp;reasonPhrase)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCloseReason()">getCloseReason</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get close reason.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="NORMAL_CLOSURE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NORMAL_CLOSURE</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> NORMAL_CLOSURE</pre>
+<div class="block">1000 indicates a normal closure, meaning that the purpose for
+ which the connection was established has been fulfilled.</div>
+</li>
+</ul>
+<a id="GOING_AWAY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GOING_AWAY</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> GOING_AWAY</pre>
+<div class="block">1001 indicates that an endpoint is "going away", such as a server
+ going down or a browser having navigated away from a page.</div>
+</li>
+</ul>
+<a id="PROTOCOL_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROTOCOL_ERROR</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> PROTOCOL_ERROR</pre>
+<div class="block">1002 indicates that an endpoint is terminating the connection due
+ to a protocol error.</div>
+</li>
+</ul>
+<a id="CANNOT_ACCEPT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CANNOT_ACCEPT</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> CANNOT_ACCEPT</pre>
+<div class="block">1003 indicates that an endpoint is terminating the connection
+ because it has received a type of data it cannot accept (e.g., an
+ endpoint that understands only text data MAY send this if it
+ receives a binary message).</div>
+</li>
+</ul>
+<a id="RESERVED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESERVED</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> RESERVED</pre>
+<div class="block">Reserved.  The specific meaning might be defined in the future.</div>
+</li>
+</ul>
+<a id="NO_STATUS_CODE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NO_STATUS_CODE</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> NO_STATUS_CODE</pre>
+<div class="block">1005 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.  It is designated for use in
+ applications expecting a status code to indicate that no status
+ code was actually present.</div>
+</li>
+</ul>
+<a id="CLOSED_ABNORMALLY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLOSED_ABNORMALLY</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> CLOSED_ABNORMALLY</pre>
+<div class="block">1006 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.  It is designated for use in
+ applications expecting a status code to indicate that the
+ connection was closed abnormally, e.g., without sending or
+ receiving a Close control frame.</div>
+</li>
+</ul>
+<a id="NOT_CONSISTENT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NOT_CONSISTENT</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> NOT_CONSISTENT</pre>
+<div class="block">1007 indicates that an endpoint is terminating the connection
+ because it has received data within a message that was not
+ consistent with the type of the message (e.g., non-UTF-8
+ data within a text message).</div>
+</li>
+</ul>
+<a id="VIOLATED_POLICY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>VIOLATED_POLICY</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> VIOLATED_POLICY</pre>
+<div class="block">1008 indicates that an endpoint is terminating the connection
+ because it has received a message that violates its policy.  This
+ is a generic status code that can be returned when there is no
+ other more suitable status code (e.g., 1003 or 1009) or if there
+ is a need to hide specific details about the policy.</div>
+</li>
+</ul>
+<a id="TOO_BIG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TOO_BIG</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> TOO_BIG</pre>
+<div class="block">1009 indicates that an endpoint is terminating the connection
+ because it has received a message that is too big for it to
+ process.</div>
+</li>
+</ul>
+<a id="NO_EXTENSION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NO_EXTENSION</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> NO_EXTENSION</pre>
+<div class="block">1010 indicates that an endpoint (client) is terminating the
+ connection because it has expected the server to negotiate one or
+ more extension, but the server didn't return them in the response
+ message of the WebSocket handshake.  The list of extensions that
+ are needed SHOULD appear in the /reason/ part of the Close frame.
+ Note that this status code is not used by the server, because it
+ can fail the WebSocket handshake instead.</div>
+</li>
+</ul>
+<a id="UNEXPECTED_CONDITION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNEXPECTED_CONDITION</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> UNEXPECTED_CONDITION</pre>
+<div class="block">1011 indicates that a server is terminating the connection because
+ it encountered an unexpected condition that prevented it from
+ fulfilling the request.</div>
+</li>
+</ul>
+<a id="SERVICE_RESTART">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVICE_RESTART</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> SERVICE_RESTART</pre>
+<div class="block">1012 indicates that the service will be restarted.</div>
+</li>
+</ul>
+<a id="TRY_AGAIN_LATER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TRY_AGAIN_LATER</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> TRY_AGAIN_LATER</pre>
+<div class="block">1013 indicates that the service is experiencing overload</div>
+</li>
+</ul>
+<a id="TLS_HANDSHAKE_FAILURE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TLS_HANDSHAKE_FAILURE</h4>
+<pre>public static final&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> TLS_HANDSHAKE_FAILURE</pre>
+<div class="block">1015 is a reserved value and MUST NOT be set as a status code in a
+ Close control frame by an endpoint.  It is designated for use in
+ applications expecting a status code to indicate that the
+ connection was closed due to a failure to perform a TLS handshake
+ (e.g., the server certificate can't be verified).</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (CloseReasons c : CloseReasons.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a id="getCloseReason()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCloseReason</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;getCloseReason()</pre>
+<div class="block">Get close reason.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>close reason represented by this value;</dd>
+</dl>
+</li>
+</ul>
+<a id="create(javax.websocket.CloseReason.CloseCode,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">public static&nbsp;<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;create&#8203;(<a href="../../../../javax/websocket/CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a>&nbsp;closeCode,
+                                 java.lang.String&nbsp;reasonPhrase)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloseReasons.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ComponentProvider.html b/apidocs/1.20/org/glassfish/tyrus/core/ComponentProvider.html
new file mode 100644
index 00000000..dce8ed2e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ComponentProvider.html
@@ -0,0 +1,406 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ComponentProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ComponentProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":10,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ComponentProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ComponentProvider" class="title">Class ComponentProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ComponentProvider</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="../gf/cdi/CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi">CdiComponentProvider</a></code>, <code><a href="DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core">DefaultComponentProvider</a></code>, <code><a href="../gf/ejb/EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb">EjbComponentProvider</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">ComponentProvider</span>
+extends java.lang.Object</pre>
+<div class="block">Provides an instance.
+ <p>
+ Method <a href="#isApplicable(java.lang.Class)"><code>isApplicable(Class)</code></a> is called first to check whether the provider is able to provide the given
+ <code>Class</code>.  Method <a href="#create(java.lang.Class)"><code>create(Class)</code></a> is called to get the instance.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com), Martin Matula (martin.matula at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ComponentProvider</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;java.lang.Object</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(java.lang.Class)">create</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;c)</code></th>
+<td class="colLast">
+<div class="block">Create new instance.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroy(java.lang.Object)">destroy</a></span>&#8203;(java.lang.Object&nbsp;o)</code></th>
+<td class="colLast">
+<div class="block">Destroys the given managed instance.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.reflect.Method</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInvocableMethod(java.lang.reflect.Method)">getInvocableMethod</a></span>&#8203;(java.lang.reflect.Method&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Get the method which should be invoked instead provided one.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>abstract boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isApplicable(java.lang.Class)">isApplicable</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;c)</code></th>
+<td class="colLast">
+<div class="block">Checks whether this component provider is able to provide an instance of given <code>Class</code>.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ComponentProvider</h4>
+<pre>public&nbsp;ComponentProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isApplicable(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isApplicable</h4>
+<pre class="methodSignature">public abstract&nbsp;boolean&nbsp;isApplicable&#8203;(java.lang.Class&lt;?&gt;&nbsp;c)</pre>
+<div class="block">Checks whether this component provider is able to provide an instance of given <code>Class</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - <code>Class</code> to be checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> iff this <a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core"><code>ComponentProvider</code></a> is able to create an instance of the given <code>Class</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="create(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;java.lang.Object&nbsp;create&#8203;(java.lang.Class&lt;T&gt;&nbsp;c)</pre>
+<div class="block">Create new instance.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the created object.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - <code>Class</code> to be created.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>instance, iff found, <code>null</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getInvocableMethod(java.lang.reflect.Method)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInvocableMethod</h4>
+<pre class="methodSignature">public&nbsp;java.lang.reflect.Method&nbsp;getInvocableMethod&#8203;(java.lang.reflect.Method&nbsp;method)</pre>
+<div class="block">Get the method which should be invoked instead provided one.
+ <p>
+ Useful mainly for EJB container support, where methods from endpoint class cannot be invoked directly - Tyrus
+ needs
+ to use method declared on remote interface.
+ <p>
+ Default implementation returns method provided as parameter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>method</code> - method from endpoint class.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>method which should be invoked.</dd>
+</dl>
+</li>
+</ul>
+<a id="destroy(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>destroy</h4>
+<pre class="methodSignature">public abstract&nbsp;boolean&nbsp;destroy&#8203;(java.lang.Object&nbsp;o)</pre>
+<div class="block">Destroys the given managed instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - instance to be destroyed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> iff the instance was coupled to this <a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core"><code>ComponentProvider</code></a>, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ComponentProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ComponentProviderService.html b/apidocs/1.20/org/glassfish/tyrus/core/ComponentProviderService.html
new file mode 100644
index 00000000..016d8ee1
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ComponentProviderService.html
@@ -0,0 +1,513 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ComponentProviderService (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ComponentProviderService (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ComponentProviderService.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ComponentProviderService" class="title">Class ComponentProviderService</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ComponentProviderService</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">ComponentProviderService</span>
+extends java.lang.Object</pre>
+<div class="block">Provides an instance of component. Searches for registered <a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core"><code>ComponentProvider</code></a>s which are used to provide
+ instances.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Martin Matula (martin.matula at oracle.com), Stepan Kopriva (stepan.kopriva at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.ComponentProviderService)">ComponentProviderService</a></span>&#8203;(<a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProviderService)</code></th>
+<td class="colLast">
+<div class="block">Copy constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create()">create</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new instance of <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core"><code>ComponentProviderService</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createClient()">createClient</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new instance of <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core"><code>ComponentProviderService</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCoderInstance(java.lang.Class,javax.websocket.Session,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ErrorCollector)">getCoderInstance</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;c,
+                <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+                <a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;endpointConfig,
+                <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</code></th>
+<td class="colLast">
+<div class="block">Provide an instance of <a href="../../../../javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> or <a href="../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> descendant which is
+ coupled to <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEndpointInstance(java.lang.Class)">getEndpointInstance</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;endpointClass)</code></th>
+<td class="colLast">
+<div class="block">This method is called by the container each time a new client
+ connects to the logical endpoint this configurator configures.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstance(java.lang.Class,javax.websocket.Session,org.glassfish.tyrus.core.ErrorCollector)">getInstance</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;c,
+           <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+           <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</code></th>
+<td class="colLast">
+<div class="block">Provide an instance of class which is coupled to <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>java.lang.reflect.Method</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInvocableMethod(java.lang.reflect.Method)">getInvocableMethod</a></span>&#8203;(java.lang.reflect.Method&nbsp;method)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeSession(javax.websocket.Session)">removeSession</a></span>&#8203;(<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Remove <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a> from cache.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.ComponentProviderService)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ComponentProviderService</h4>
+<pre>public&nbsp;ComponentProviderService&#8203;(<a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProviderService)</pre>
+<div class="block">Copy constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>componentProviderService</code> - original instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="create()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;create()</pre>
+<div class="block">Create new instance of <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core"><code>ComponentProviderService</code></a>.
+ <p>
+ Searches for registered <a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core"><code>ComponentProvider</code></a>s and registers them with this service.
+ <p>
+ <a href="DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core"><code>DefaultComponentProvider</code></a> is always added to found providers.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>initialized <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core"><code>ComponentProviderService</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="createClient()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createClient</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;createClient()</pre>
+<div class="block">Create new instance of <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core"><code>ComponentProviderService</code></a>.
+ <p>
+ Contains *only* <a href="DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core"><code>DefaultComponentProvider</code></a>. Used for creating client instances (CDI/EJB container are
+ often confused and using them to retrieve instances leads to unstable results since the injection scope is not
+ properly defined for these cases). See https://java.net/jira/browse/WEBSOCKET_SPEC-197 and
+ https://java.net/jira/browse/WEBSOCKET_SPEC-196.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>initialized <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core"><code>ComponentProviderService</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getInstance(java.lang.Class,javax.websocket.Session,org.glassfish.tyrus.core.ErrorCollector)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInstance</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;java.lang.Object&nbsp;getInstance&#8203;(java.lang.Class&lt;T&gt;&nbsp;c,
+                                        <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+                                        <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</pre>
+<div class="block">Provide an instance of class which is coupled to <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.
+ <p>
+ The first time the method is called the provider creates an instance and caches it.
+ Next time the method is called the cached instance is returned.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the provided instance.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - <code>Class</code> whose instance will be provided.</dd>
+<dd><code>session</code> - session to which the instance belongs (think of this as a scope).</dd>
+<dd><code>collector</code> - error collector.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>instance</dd>
+</dl>
+</li>
+</ul>
+<a id="getCoderInstance(java.lang.Class,javax.websocket.Session,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ErrorCollector)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCoderInstance</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;java.lang.Object&nbsp;getCoderInstance&#8203;(java.lang.Class&lt;T&gt;&nbsp;c,
+                                             <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+                                             <a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;endpointConfig,
+                                             <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</pre>
+<div class="block">Provide an instance of <a href="../../../../javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> or <a href="../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> descendant which is
+ coupled to <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.
+ <p>
+ The first time the method is called the provider creates an instance, calls <a href="../../../../javax/websocket/Encoder.html#init(javax.websocket.EndpointConfig)"><code>Encoder.init(javax.websocket.EndpointConfig)</code></a>
+ or <a href="../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)"><code>Decoder.init(javax.websocket.EndpointConfig)</code></a> and caches it.
+ Next time the method is called the cached instance is returned.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the provided instance.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - <code>Class</code> whose instance will be provided.</dd>
+<dd><code>session</code> - session to which the instance belongs (think of this as a scope).</dd>
+<dd><code>collector</code> - error collector.</dd>
+<dd><code>endpointConfig</code> - configuration corresponding to current context. Used for
+                       <a href="../../../../javax/websocket/Encoder.html#init(javax.websocket.EndpointConfig)"><code>Encoder.init(javax.websocket.EndpointConfig)</code></a> and
+                       <a href="../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)"><code>Decoder.init(javax.websocket.EndpointConfig)</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>instance</dd>
+</dl>
+</li>
+</ul>
+<a id="getInvocableMethod(java.lang.reflect.Method)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInvocableMethod</h4>
+<pre class="methodSignature">public&nbsp;java.lang.reflect.Method&nbsp;getInvocableMethod&#8203;(java.lang.reflect.Method&nbsp;method)</pre>
+</li>
+</ul>
+<a id="removeSession(javax.websocket.Session)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeSession</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;removeSession&#8203;(<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</pre>
+<div class="block">Remove <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a> from cache.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - to be removed.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEndpointInstance(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEndpointInstance</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;java.lang.Object&nbsp;getEndpointInstance&#8203;(java.lang.Class&lt;T&gt;&nbsp;endpointClass)
+                                         throws java.lang.InstantiationException</pre>
+<div class="block">This method is called by the container each time a new client
+ connects to the logical endpoint this configurator configures.
+ Developers may override this method to control instantiation of
+ endpoint instances in order to customize the initialization
+ of the endpoint instance, or manage them in some other way.
+ If the developer overrides this method, services like
+ dependency injection that are otherwise supported, for example, when
+ the implementation is part of the Java EE platform
+ may not be available.
+ The platform default implementation of this method returns a new
+ endpoint instance per call, thereby ensuring that there is one
+ endpoint instance per client, the default deployment cardinality.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the endpoint.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - the class of the endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an instance of the endpoint that will handle all
+ interactions from a new client.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.InstantiationException</code> - if there was an error producing the
+                                endpoint instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html#getEndpointInstance(java.lang.Class)"><code>ServerEndpointConfig.Configurator.getEndpointInstance(Class)</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ComponentProviderService.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/DebugContext.TracingThreshold.html b/apidocs/1.20/org/glassfish/tyrus/core/DebugContext.TracingThreshold.html
new file mode 100644
index 00000000..b65a427c
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/DebugContext.TracingThreshold.html
@@ -0,0 +1,393 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DebugContext.TracingThreshold (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DebugContext.TracingThreshold (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DebugContext.TracingThreshold.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Enum DebugContext.TracingThreshold" class="title">Enum DebugContext.TracingThreshold</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.DebugContext.TracingThreshold</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">DebugContext.TracingThreshold</span>
+extends java.lang.Enum&lt;<a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>&gt;</pre>
+<div class="block">Tracing threshold - used for configuration granularity of information that will be sent in tracing headers.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SUMMARY">SUMMARY</a></span></code></th>
+<td class="colLast">
+<div class="block">A less verbose tracing, an equivalent to <code>Level.FINER</code> logging level.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TRACE">TRACE</a></span></code></th>
+<td class="colLast">
+<div class="block">A more verbose tracing, an equivalent to <code>Level.FINE</code> logging level.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="SUMMARY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SUMMARY</h4>
+<pre>public static final&nbsp;<a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a> SUMMARY</pre>
+<div class="block">A less verbose tracing, an equivalent to <code>Level.FINER</code> logging level.</div>
+</li>
+</ul>
+<a id="TRACE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TRACE</h4>
+<pre>public static final&nbsp;<a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a> TRACE</pre>
+<div class="block">A more verbose tracing, an equivalent to <code>Level.FINE</code> logging level.
+ <p>
+ The default tracing threshold.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (DebugContext.TracingThreshold c : DebugContext.TracingThreshold.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DebugContext.TracingThreshold.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/DebugContext.TracingType.html b/apidocs/1.20/org/glassfish/tyrus/core/DebugContext.TracingType.html
new file mode 100644
index 00000000..a263100f
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/DebugContext.TracingType.html
@@ -0,0 +1,409 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DebugContext.TracingType (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DebugContext.TracingType (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DebugContext.TracingType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Enum DebugContext.TracingType" class="title">Enum DebugContext.TracingType</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.DebugContext.TracingType</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">DebugContext.TracingType</span>
+extends java.lang.Enum&lt;<a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a>&gt;</pre>
+<div class="block">Type of tracing - used for tracing configuration.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#ALL">ALL</a></span></code></th>
+<td class="colLast">
+<div class="block">Tracing headers will be present in all handshake responses.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#OFF">OFF</a></span></code></th>
+<td class="colLast">
+<div class="block">No tracing headers will be ever sent in handshake response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#ON_DEMAND">ON_DEMAND</a></span></code></th>
+<td class="colLast">
+<div class="block">Tracing headers will be sent in handshake response only if X-Tyrus-Tracing-Accept header is present
+ in handshake request.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="OFF">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>OFF</h4>
+<pre>public static final&nbsp;<a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a> OFF</pre>
+<div class="block">No tracing headers will be ever sent in handshake response.</div>
+</li>
+</ul>
+<a id="ON_DEMAND">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ON_DEMAND</h4>
+<pre>public static final&nbsp;<a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a> ON_DEMAND</pre>
+<div class="block">Tracing headers will be sent in handshake response only if X-Tyrus-Tracing-Accept header is present
+ in handshake request.</div>
+</li>
+</ul>
+<a id="ALL">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ALL</h4>
+<pre>public static final&nbsp;<a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a> ALL</pre>
+<div class="block">Tracing headers will be present in all handshake responses.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (DebugContext.TracingType c : DebugContext.TracingType.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DebugContext.TracingType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/DebugContext.Type.html b/apidocs/1.20/org/glassfish/tyrus/core/DebugContext.Type.html
new file mode 100644
index 00000000..116a964f
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/DebugContext.Type.html
@@ -0,0 +1,398 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DebugContext.Type (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DebugContext.Type (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DebugContext.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Enum DebugContext.Type" class="title">Enum DebugContext.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.DebugContext.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">DebugContext.Type</span>
+extends java.lang.Enum&lt;<a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&gt;</pre>
+<div class="block">Type of the record - used to graphically distinguish these message types in the log.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#MESSAGE_IN">MESSAGE_IN</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#MESSAGE_OUT">MESSAGE_OUT</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#OTHER">OTHER</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="MESSAGE_IN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MESSAGE_IN</h4>
+<pre>public static final&nbsp;<a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a> MESSAGE_IN</pre>
+</li>
+</ul>
+<a id="MESSAGE_OUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MESSAGE_OUT</h4>
+<pre>public static final&nbsp;<a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a> MESSAGE_OUT</pre>
+</li>
+</ul>
+<a id="OTHER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>OTHER</h4>
+<pre>public static final&nbsp;<a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a> OTHER</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (DebugContext.Type c : DebugContext.Type.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DebugContext.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/DebugContext.html b/apidocs/1.20/org/glassfish/tyrus/core/DebugContext.html
new file mode 100644
index 00000000..8a706536
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/DebugContext.html
@@ -0,0 +1,585 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DebugContext (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DebugContext (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DebugContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class DebugContext" class="title">Class DebugContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.DebugContext</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">DebugContext</span>
+extends java.lang.Object</pre>
+<div class="block">A <code>Logger</code> wrapper that gives logging records a common formatting and temporarily stores log
+ records and postpones their logging until they can be provided with a session ID. After a session ID has been
+ provided, messages are logged immediately.
+ <p>
+ Log records are provided with a session ID, so that log records from a single upgrade request can be easily linked
+ together in a log of a busy server or client.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Petr Janouch</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></span></code></th>
+<td class="colLast">
+<div class="block">Tracing threshold - used for configuration granularity of information that will be sent in tracing headers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></span></code></th>
+<td class="colLast">
+<div class="block">Type of tracing - used for tracing configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></span></code></th>
+<td class="colLast">
+<div class="block">Type of the record - used to graphically distinguish these message types in the log.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DebugContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Constructor that configures tracing to be OFF.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.DebugContext.TracingThreshold)">DebugContext</a></span>&#8203;(<a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>&nbsp;tracingThreshold)</code></th>
+<td class="colLast">
+<div class="block">Constructor that configures tracing to be ON and accepts tracing threshold as a parameter.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#appendLogMessage(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Object...)">appendLogMessage</a></span>&#8203;(java.util.logging.Logger&nbsp;logger,
+                java.util.logging.Level&nbsp;loggingLevel,
+                <a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                java.lang.Object...&nbsp;messageParts)</code></th>
+<td class="colLast">
+<div class="block">Append a message to the log, the logging will be postponed until the message can be provided with a session ID.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#appendLogMessageWithThrowable(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Throwable,java.lang.Object...)">appendLogMessageWithThrowable</a></span>&#8203;(java.util.logging.Logger&nbsp;logger,
+                             java.util.logging.Level&nbsp;loggingLevel,
+                             <a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                             java.lang.Throwable&nbsp;t,
+                             java.lang.Object...&nbsp;messageParts)</code></th>
+<td class="colLast">
+<div class="block">Append a message to the log, the logging will be postponed until the message can be provided with a session ID.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#appendStandardOutputMessage(org.glassfish.tyrus.core.DebugContext.Type,java.lang.String)">appendStandardOutputMessage</a></span>&#8203;(<a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                           java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Write a message to the standard output, the logging will be postponed until the message can be provided with
+ a session ID.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#appendTraceMessage(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Object...)">appendTraceMessage</a></span>&#8203;(java.util.logging.Logger&nbsp;logger,
+                  java.util.logging.Level&nbsp;loggingLevel,
+                  <a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                  java.lang.Object...&nbsp;messageParts)</code></th>
+<td class="colLast">
+<div class="block">Append a message to the log and to the list of trace messages that are sent in handshake response.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#appendTraceMessageWithThrowable(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Throwable,java.lang.Object...)">appendTraceMessageWithThrowable</a></span>&#8203;(java.util.logging.Logger&nbsp;logger,
+                               java.util.logging.Level&nbsp;loggingLevel,
+                               <a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                               java.lang.Throwable&nbsp;t,
+                               java.lang.Object...&nbsp;messageParts)</code></th>
+<td class="colLast">
+<div class="block">Append a message to the log and to the list of trace messages that are sent in handshake response.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flush()">flush</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Write pending messages to the log.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTracingHeaders()">getTracingHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get headers containing tracing messages.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSessionId(java.lang.String)">setSessionId</a></span>&#8203;(java.lang.String&nbsp;sessionId)</code></th>
+<td class="colLast">
+<div class="block">Set a session ID that will be used as a common identifier for logged messages related to the same upgrade
+ request.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.DebugContext.TracingThreshold)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DebugContext</h4>
+<pre>public&nbsp;DebugContext&#8203;(<a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>&nbsp;tracingThreshold)</pre>
+<div class="block">Constructor that configures tracing to be ON and accepts tracing threshold as a parameter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tracingThreshold</code> - tracing threshold.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DebugContext</h4>
+<pre>public&nbsp;DebugContext()</pre>
+<div class="block">Constructor that configures tracing to be OFF.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="appendLogMessage(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>appendLogMessage</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;appendLogMessage&#8203;(java.util.logging.Logger&nbsp;logger,
+                             java.util.logging.Level&nbsp;loggingLevel,
+                             <a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                             java.lang.Object...&nbsp;messageParts)</pre>
+<div class="block">Append a message to the log, the logging will be postponed until the message can be provided with a session ID.
+ Randomly generated session ID is used if a session has not been created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>logger</code> - logger to be used to log the message.</dd>
+<dd><code>loggingLevel</code> - message level.</dd>
+<dd><code>type</code> - type of the message.</dd>
+<dd><code>messageParts</code> - message parts that will be concatenated to create a log message.</dd>
+</dl>
+</li>
+</ul>
+<a id="appendTraceMessage(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>appendTraceMessage</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;appendTraceMessage&#8203;(java.util.logging.Logger&nbsp;logger,
+                               java.util.logging.Level&nbsp;loggingLevel,
+                               <a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                               java.lang.Object...&nbsp;messageParts)</pre>
+<div class="block">Append a message to the log and to the list of trace messages that are sent in handshake response.
+ The logging will be postponed until the message can be provided with a session ID. Randomly generated session ID
+ is used if a session has not been created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>logger</code> - logger to be used to log the message.</dd>
+<dd><code>loggingLevel</code> - message level.</dd>
+<dd><code>type</code> - type of the message.</dd>
+<dd><code>messageParts</code> - message parts that will be stringified and concatenated to create a log message.</dd>
+</dl>
+</li>
+</ul>
+<a id="appendLogMessageWithThrowable(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Throwable,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>appendLogMessageWithThrowable</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;appendLogMessageWithThrowable&#8203;(java.util.logging.Logger&nbsp;logger,
+                                          java.util.logging.Level&nbsp;loggingLevel,
+                                          <a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                                          java.lang.Throwable&nbsp;t,
+                                          java.lang.Object...&nbsp;messageParts)</pre>
+<div class="block">Append a message to the log, the logging will be postponed until the message can be provided with a session ID.
+ Randomly generated session ID is used if a session has not been created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>logger</code> - logger to be used to log the message.</dd>
+<dd><code>loggingLevel</code> - message level.</dd>
+<dd><code>type</code> - type of the message.</dd>
+<dd><code>t</code> - throwable that has been thrown.</dd>
+<dd><code>messageParts</code> - message parts that will be stringified and concatenated to create a log message.</dd>
+</dl>
+</li>
+</ul>
+<a id="appendTraceMessageWithThrowable(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Throwable,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>appendTraceMessageWithThrowable</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;appendTraceMessageWithThrowable&#8203;(java.util.logging.Logger&nbsp;logger,
+                                            java.util.logging.Level&nbsp;loggingLevel,
+                                            <a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                                            java.lang.Throwable&nbsp;t,
+                                            java.lang.Object...&nbsp;messageParts)</pre>
+<div class="block">Append a message to the log and to the list of trace messages that are sent in handshake response.
+ The logging will be postponed until the message can be provided with a session ID. Randomly generated session ID
+ is used if a session has not been created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>logger</code> - logger to be used to log the message.</dd>
+<dd><code>loggingLevel</code> - message level.</dd>
+<dd><code>type</code> - type of the message.</dd>
+<dd><code>t</code> - throwable that has been thrown.</dd>
+<dd><code>messageParts</code> - message parts that will be stringified and concatenated to create a log message.</dd>
+</dl>
+</li>
+</ul>
+<a id="appendStandardOutputMessage(org.glassfish.tyrus.core.DebugContext.Type,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>appendStandardOutputMessage</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;appendStandardOutputMessage&#8203;(<a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                                        java.lang.String&nbsp;message)</pre>
+<div class="block">Write a message to the standard output, the logging will be postponed until the message can be provided with
+ a session ID. Randomly generated session ID is used if a session has not been created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - message to be logged.</dd>
+<dd><code>type</code> - type of the message.</dd>
+</dl>
+</li>
+</ul>
+<a id="setSessionId(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSessionId</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setSessionId&#8203;(java.lang.String&nbsp;sessionId)</pre>
+<div class="block">Set a session ID that will be used as a common identifier for logged messages related to the same upgrade
+ request. Setting the session ID will cause the pending messages to be written into the log.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - session ID.</dd>
+</dl>
+</li>
+</ul>
+<a id="flush()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flush</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;flush()</pre>
+<div class="block">Write pending messages to the log.</div>
+</li>
+</ul>
+<a id="getTracingHeaders()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTracingHeaders</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;&nbsp;getTracingHeaders()</pre>
+<div class="block">Get headers containing tracing messages.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>tracing headers.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DebugContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/DefaultComponentProvider.html b/apidocs/1.20/org/glassfish/tyrus/core/DefaultComponentProvider.html
new file mode 100644
index 00000000..8e43bb14
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/DefaultComponentProvider.html
@@ -0,0 +1,416 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DefaultComponentProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DefaultComponentProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultComponentProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class DefaultComponentProvider" class="title">Class DefaultComponentProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.ComponentProvider</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.DefaultComponentProvider</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">DefaultComponentProvider</span>
+extends <a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></pre>
+<div class="block">Provides instances using reflection.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DefaultComponentProvider</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(java.lang.Class)">create</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;toLoad)</code></th>
+<td class="colLast">
+<div class="block">Create new instance.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroy(java.lang.Object)">destroy</a></span>&#8203;(java.lang.Object&nbsp;o)</code></th>
+<td class="colLast">
+<div class="block">Destroys the given managed instance.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.reflect.Method</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInvocableMethod(java.lang.reflect.Method)">getInvocableMethod</a></span>&#8203;(java.lang.reflect.Method&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Get the method which should be invoked instead provided one.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isApplicable(java.lang.Class)">isApplicable</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;c)</code></th>
+<td class="colLast">
+<div class="block">Checks whether this component provider is able to provide an instance of given <code>Class</code>.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DefaultComponentProvider</h4>
+<pre>public&nbsp;DefaultComponentProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isApplicable(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isApplicable</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isApplicable&#8203;(java.lang.Class&lt;?&gt;&nbsp;c)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="ComponentProvider.html#isApplicable(java.lang.Class)">ComponentProvider</a></code></span></div>
+<div class="block">Checks whether this component provider is able to provide an instance of given <code>Class</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="ComponentProvider.html#isApplicable(java.lang.Class)">isApplicable</a></code>&nbsp;in class&nbsp;<code><a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - <code>Class</code> to be checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> iff this <a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core"><code>ComponentProvider</code></a> is able to create an instance of the given <code>Class</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="create(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;java.lang.Object&nbsp;create&#8203;(java.lang.Class&lt;T&gt;&nbsp;toLoad)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="ComponentProvider.html#create(java.lang.Class)">ComponentProvider</a></code></span></div>
+<div class="block">Create new instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="ComponentProvider.html#create(java.lang.Class)">create</a></code>&nbsp;in class&nbsp;<code><a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the created object.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>toLoad</code> - <code>Class</code> to be created.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>instance, iff found, <code>null</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="destroy(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>destroy</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;destroy&#8203;(java.lang.Object&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="ComponentProvider.html#destroy(java.lang.Object)">ComponentProvider</a></code></span></div>
+<div class="block">Destroys the given managed instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="ComponentProvider.html#destroy(java.lang.Object)">destroy</a></code>&nbsp;in class&nbsp;<code><a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - instance to be destroyed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> iff the instance was coupled to this <a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core"><code>ComponentProvider</code></a>, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getInvocableMethod(java.lang.reflect.Method)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getInvocableMethod</h4>
+<pre class="methodSignature">public&nbsp;java.lang.reflect.Method&nbsp;getInvocableMethod&#8203;(java.lang.reflect.Method&nbsp;method)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="ComponentProvider.html#getInvocableMethod(java.lang.reflect.Method)">ComponentProvider</a></code></span></div>
+<div class="block">Get the method which should be invoked instead provided one.
+ <p>
+ Useful mainly for EJB container support, where methods from endpoint class cannot be invoked directly - Tyrus
+ needs
+ to use method declared on remote interface.
+ <p>
+ Default implementation returns method provided as parameter.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="ComponentProvider.html#getInvocableMethod(java.lang.reflect.Method)">getInvocableMethod</a></code>&nbsp;in class&nbsp;<code><a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>method</code> - method from endpoint class.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>method which should be invoked.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultComponentProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ErrorCollector.html b/apidocs/1.20/org/glassfish/tyrus/core/ErrorCollector.html
new file mode 100644
index 00000000..02b13c30
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ErrorCollector.html
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ErrorCollector (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ErrorCollector (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ErrorCollector.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ErrorCollector" class="title">Class ErrorCollector</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ErrorCollector</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">ErrorCollector</span>
+extends java.lang.Object</pre>
+<div class="block">Used to collect deployment errors to present these to the user together.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ErrorCollector</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addException(java.lang.Exception)">addException</a></span>&#8203;(java.lang.Exception&nbsp;exception)</code></th>
+<td class="colLast">
+<div class="block">Add <code>Exception</code> to the collector.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#composeComprehensiveException()">composeComprehensiveException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> with message concatenated from collected exceptions.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEmpty()">isEmpty</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Checks whether any exception has been logged.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ErrorCollector</h4>
+<pre>public&nbsp;ErrorCollector()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="addException(java.lang.Exception)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addException</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;addException&#8203;(java.lang.Exception&nbsp;exception)</pre>
+<div class="block">Add <code>Exception</code> to the collector.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>exception</code> - to be collected.</dd>
+</dl>
+</li>
+</ul>
+<a id="composeComprehensiveException()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>composeComprehensiveException</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a>&nbsp;composeComprehensiveException()</pre>
+<div class="block">Create <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> with message concatenated from collected exceptions.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>comprehensive exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="isEmpty()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isEmpty</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isEmpty()</pre>
+<div class="block">Checks whether any exception has been logged.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> iff no exception was logged, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ErrorCollector.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ExecutorServiceProvider.html b/apidocs/1.20/org/glassfish/tyrus/core/ExecutorServiceProvider.html
new file mode 100644
index 00000000..4a0ac993
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ExecutorServiceProvider.html
@@ -0,0 +1,344 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ExecutorServiceProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ExecutorServiceProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ExecutorServiceProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ExecutorServiceProvider" class="title">Class ExecutorServiceProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ExecutorServiceProvider</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">ExecutorServiceProvider</span>
+extends java.lang.Object</pre>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ExecutorServiceProvider</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract java.util.concurrent.ExecutorService</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExecutorService()">getExecutorService</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the <code>ExecutorService</code>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract java.util.concurrent.ScheduledExecutorService</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getScheduledExecutorService()">getScheduledExecutorService</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the <code>ScheduledExecutorService</code>.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ExecutorServiceProvider</h4>
+<pre>public&nbsp;ExecutorServiceProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getExecutorService()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExecutorService</h4>
+<pre class="methodSignature">public abstract&nbsp;java.util.concurrent.ExecutorService&nbsp;getExecutorService()</pre>
+<div class="block">Get the <code>ExecutorService</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>executor service.</dd>
+</dl>
+</li>
+</ul>
+<a id="getScheduledExecutorService()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getScheduledExecutorService</h4>
+<pre class="methodSignature">public abstract&nbsp;java.util.concurrent.ScheduledExecutorService&nbsp;getScheduledExecutorService()</pre>
+<div class="block">Get the <code>ScheduledExecutorService</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>scheduled executor service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ExecutorServiceProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/Handshake.html b/apidocs/1.20/org/glassfish/tyrus/core/Handshake.html
new file mode 100644
index 00000000..e284132e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/Handshake.html
@@ -0,0 +1,411 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Handshake (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Handshake (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Handshake.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class Handshake" class="title">Class Handshake</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.Handshake</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">Handshake</span>
+extends java.lang.Object</pre>
+<div class="block">Class responsible for performing and validating handshake.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Justin Lee, Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createClientHandshake(org.glassfish.tyrus.core.RequestContext)">createClientHandshake</a></span>&#8203;(<a href="RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a>&nbsp;webSocketRequest)</code></th>
+<td class="colLast">
+<div class="block">Client-side handshake.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequest()">getRequest</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Client side only - get the <a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeRequest</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#prepareRequest()">prepareRequest</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Client side only - compose the <a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeRequest</code></a> and store it for further use.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setExtensions(java.util.List)">setExtensions</a></span>&#8203;(java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Client side only - set the list of supported extensions.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSubProtocols(java.util.List)">setSubProtocols</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;subProtocols)</code></th>
+<td class="colLast">
+<div class="block">Client side only - set the list of supported subprotocols.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#updateHostAndOrigin(org.glassfish.tyrus.spi.UpgradeRequest)">updateHostAndOrigin</a></span>&#8203;(<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;upgradeRequest)</code></th>
+<td class="colLast">
+<div class="block">Client side only - Generate host and origin header and put them to the upgrade request headers.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateServerResponse(org.glassfish.tyrus.spi.UpgradeResponse)">validateServerResponse</a></span>&#8203;(<a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Client side only - validate server response.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="createClientHandshake(org.glassfish.tyrus.core.RequestContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createClientHandshake</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a>&nbsp;createClientHandshake&#8203;(<a href="RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a>&nbsp;webSocketRequest)</pre>
+<div class="block">Client-side handshake.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>webSocketRequest</code> - request representation to be modified for use as WebSocket handshake request.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>handshake instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRequest()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequest</h4>
+<pre class="methodSignature">public&nbsp;<a href="RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a>&nbsp;getRequest()</pre>
+<div class="block">Client side only - get the <a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeRequest</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeRequest</code></a> created on this HandShake.</dd>
+</dl>
+</li>
+</ul>
+<a id="setSubProtocols(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSubProtocols</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setSubProtocols&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;subProtocols)</pre>
+<div class="block">Client side only - set the list of supported subprotocols.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>subProtocols</code> - list of supported subprotocol.</dd>
+</dl>
+</li>
+</ul>
+<a id="setExtensions(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setExtensions</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setExtensions&#8203;(java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</pre>
+<div class="block">Client side only - set the list of supported extensions.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>extensions</code> - list of supported extensions.</dd>
+</dl>
+</li>
+</ul>
+<a id="prepareRequest()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>prepareRequest</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;prepareRequest()</pre>
+<div class="block">Client side only - compose the <a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeRequest</code></a> and store it for further use.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>composed <a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeRequest</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="validateServerResponse(org.glassfish.tyrus.spi.UpgradeResponse)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>validateServerResponse</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;validateServerResponse&#8203;(<a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)
+                            throws <a href="HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></pre>
+<div class="block">Client side only - validate server response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - response to be validated.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></code> - when HTTP Status of received response is not 101 - Switching protocols.</dd>
+</dl>
+</li>
+</ul>
+<a id="updateHostAndOrigin(org.glassfish.tyrus.spi.UpgradeRequest)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>updateHostAndOrigin</h4>
+<pre class="methodSignature">public static&nbsp;void&nbsp;updateHostAndOrigin&#8203;(<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;upgradeRequest)</pre>
+<div class="block">Client side only - Generate host and origin header and put them to the upgrade request headers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>upgradeRequest</code> - upgrade request to be updated.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Handshake.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/HandshakeException.html b/apidocs/1.20/org/glassfish/tyrus/core/HandshakeException.html
new file mode 100644
index 00000000..4540b972
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/HandshakeException.html
@@ -0,0 +1,377 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>HandshakeException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="HandshakeException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HandshakeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class HandshakeException" class="title">Class HandshakeException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Throwable</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Exception</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.HandshakeException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="../client/auth/AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">AuthenticationException</a></code>, <code><a href="../client/RedirectException.html" title="class in org.glassfish.tyrus.client">RedirectException</a></code>, <code><a href="../client/RetryAfterException.html" title="class in org.glassfish.tyrus.client">RetryAfterException</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">HandshakeException</span>
+extends java.lang.Exception</pre>
+<div class="block"><code>Exception</code>, which describes the error, occurred during the handshake phase.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Alexey Stashok, Pavel Bucek (pavel.bucek at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.glassfish.tyrus.core.HandshakeException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.lang.String)">HandshakeException</a></span>&#8203;(int&nbsp;httpStatusCode,
+                  java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">HandshakeException</a></span>&#8203;(java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a HandshakeException.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHttpStatusCode()">getHttpStatusCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the error code.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
+<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HandshakeException</h4>
+<pre>public&nbsp;HandshakeException&#8203;(java.lang.String&nbsp;message)</pre>
+<div class="block">Construct a HandshakeException. HTTP status code will be set to <code>500</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - error description</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>HandshakeException</h4>
+<pre>public&nbsp;HandshakeException&#8203;(int&nbsp;httpStatusCode,
+                          java.lang.String&nbsp;message)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>httpStatusCode</code> - http status code to be set to response.</dd>
+<dd><code>message</code> - the detail message. The detail message is saved for later retrieval by the <code>Throwable.getMessage()</code> method.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getHttpStatusCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getHttpStatusCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getHttpStatusCode()</pre>
+<div class="block">Get the error code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the error code.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HandshakeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/MaskingKeyGenerator.html b/apidocs/1.20/org/glassfish/tyrus/core/MaskingKeyGenerator.html
new file mode 100644
index 00000000..7fccd3f8
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/MaskingKeyGenerator.html
@@ -0,0 +1,279 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MaskingKeyGenerator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MaskingKeyGenerator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MaskingKeyGenerator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Interface MaskingKeyGenerator" class="title">Interface MaskingKeyGenerator</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="Beta.html" title="annotation in org.glassfish.tyrus.core">@Beta</a>
+public interface <span class="typeNameLabel">MaskingKeyGenerator</span></pre>
+<div class="block">Can be implemented to generate masking keys.
+ <p>
+ The implementation must be thread safe.
+ <p>
+ Tyrus by default uses the following implementation:
+ <pre>
+     new MaskingKeyGenerator() {
+
+          private final SecureRandom secureRandom = new SecureRandom();
+
+          public int nextInt() {
+              return secureRandom.nextInt();
+          }
+      };
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Petr Janouch</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nextInt()">nextInt</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return next random int similarly to <code>Random.nextInt()</code>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="nextInt()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>nextInt</h4>
+<pre class="methodSignature">int&nbsp;nextInt()</pre>
+<div class="block">Return next random int similarly to <code>Random.nextInt()</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>next random value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MaskingKeyGenerator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/MaxSessions.html b/apidocs/1.20/org/glassfish/tyrus/core/MaxSessions.html
new file mode 100644
index 00000000..850fdbd2
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/MaxSessions.html
@@ -0,0 +1,271 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MaxSessions (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MaxSessions (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MaxSessions.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Annotation Type MaxSessions" class="title">Annotation Type MaxSessions</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>@Retention(RUNTIME)
+@Target(TYPE)
+public @interface <span class="memberNameLabel">MaxSessions</span></pre>
+<div class="block">This annotation may be used to annotate server endpoints as a optional annotation
+ to <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>. When number of maximal open
+ sessions is exceeded every new attempt to open session is closed with
+ <a href="../../../../javax/websocket/CloseReason.CloseCodes.html#TRY_AGAIN_LATER"><code>CloseReason.CloseCodes.TRY_AGAIN_LATER</code></a>.
+ If value less then 1 is specified, no limit will be applied.
+ Annotation example:
+ <pre><code>
+ &#64;MaxSessions(100)
+ &#64;ServerEndpoint("/limited-resources")
+ public class LimitedEndpoint {
+ }
+ </code></pre>
+ <p>
+ Maximal number of open sessions can be also specified programmatically
+ using <a href="TyrusServerEndpointConfig.Builder.html#maxSessions(int)"><code>TyrusServerEndpointConfig.Builder.maxSessions(int)</code></a>.
+ <p></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Ondrej Kosatka (ondrej.kosatka at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Maximal number of open sessions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre>int&nbsp;value</pre>
+<div class="block">Maximal number of open sessions.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>maximal number of open sessions.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MaxSessions.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/MessageHandlerManager.html b/apidocs/1.20/org/glassfish/tyrus/core/MessageHandlerManager.html
new file mode 100644
index 00000000..6f775fea
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/MessageHandlerManager.html
@@ -0,0 +1,494 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MessageHandlerManager (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MessageHandlerManager (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageHandlerManager.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class MessageHandlerManager" class="title">Class MessageHandlerManager</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.MessageHandlerManager</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">MessageHandlerManager</span>
+extends java.lang.Object</pre>
+<div class="block">Manages registered <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a>s and checks whether the new ones may be registered.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a>, 
+<a href="../../../../javax/websocket/OnMessage.html" title="annotation in javax.websocket"><code>OnMessage</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">MessageHandlerManager</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct manager with no decoders.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../../../../javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Add <a href="../../../../javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket"><code>MessageHandler.Partial</code></a> to the manager.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../../../../javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Add <a href="../../../../javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket"><code>MessageHandler.Whole</code></a> to the manager.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler</a></span>&#8203;(<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Add <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a> to the manager.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromDecoderClasses(java.util.List)">fromDecoderClasses</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoderClasses)</code></th>
+<td class="colLast">
+<div class="block">Construct manager.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMessageHandlers()">getMessageHandlers</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get all successfully registered <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a>s.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;java.util.Map.Entry&lt;java.lang.Class&lt;?&gt;,&#8203;<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrderedWholeMessageHandlers()">getOrderedWholeMessageHandlers</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isInputStreamHandlerPresent()">isInputStreamHandlerPresent</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReaderHandlerPresent()">isReaderHandlerPresent</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler</a></span>&#8203;(<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Remove <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a> from the manager.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MessageHandlerManager</h4>
+<pre>public&nbsp;MessageHandlerManager()</pre>
+<div class="block">Construct manager with no decoders.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="fromDecoderClasses(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromDecoderClasses</h4>
+<pre class="methodSignature">public static&nbsp;<a href="MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a>&nbsp;fromDecoderClasses&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoderClasses)</pre>
+<div class="block">Construct manager.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decoderClasses</code> - registered <a href="../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a>s.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>constructed message handler manager.</dd>
+</dl>
+</li>
+</ul>
+<a id="addMessageHandler(javax.websocket.MessageHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMessageHandler</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;addMessageHandler&#8203;(<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)
+                       throws java.lang.IllegalStateException</pre>
+<div class="block">Add <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a> to the manager.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>handler</code> - <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a> to be added to the manager.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalStateException</code></dd>
+</dl>
+</li>
+</ul>
+<a id="addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMessageHandler</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;void&nbsp;addMessageHandler&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                                  <a href="../../../../javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;&nbsp;handler)
+                           throws java.lang.IllegalStateException</pre>
+<div class="block">Add <a href="../../../../javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket"><code>MessageHandler.Whole</code></a> to the manager.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of message to be handled.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - type handled by <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a>.</dd>
+<dd><code>handler</code> - <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a> to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalStateException</code> - when the message handler cannot be added.</dd>
+</dl>
+</li>
+</ul>
+<a id="addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMessageHandler</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;void&nbsp;addMessageHandler&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                                  <a href="../../../../javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;&nbsp;handler)
+                           throws java.lang.IllegalStateException</pre>
+<div class="block">Add <a href="../../../../javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket"><code>MessageHandler.Partial</code></a> to the manager.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of message to be handled.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - type handled by <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a>.</dd>
+<dd><code>handler</code> - <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a> to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalStateException</code> - when the message handler cannot be added.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeMessageHandler(javax.websocket.MessageHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeMessageHandler</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;removeMessageHandler&#8203;(<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</pre>
+<div class="block">Remove <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a> from the manager.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>handler</code> - handler which will be removed.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMessageHandlers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMessageHandlers</h4>
+<pre class="methodSignature">public&nbsp;java.util.Set&lt;<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;&nbsp;getMessageHandlers()</pre>
+<div class="block">Get all successfully registered <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a>s.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>unmodifiable <code>Set</code> of registered <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a>s.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOrderedWholeMessageHandlers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrderedWholeMessageHandlers</h4>
+<pre class="methodSignature">public&nbsp;java.util.List&lt;java.util.Map.Entry&lt;java.lang.Class&lt;?&gt;,&#8203;<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;&gt;&nbsp;getOrderedWholeMessageHandlers()</pre>
+</li>
+</ul>
+<a id="isReaderHandlerPresent()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isReaderHandlerPresent</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isReaderHandlerPresent()</pre>
+</li>
+</ul>
+<a id="isInputStreamHandlerPresent()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isInputStreamHandlerPresent</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isInputStreamHandlerPresent()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageHandlerManager.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/OsgiRegistry.html b/apidocs/1.20/org/glassfish/tyrus/core/OsgiRegistry.html
new file mode 100644
index 00000000..0336e258
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/OsgiRegistry.html
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>OsgiRegistry (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OsgiRegistry (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OsgiRegistry.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class OsgiRegistry" class="title">Class OsgiRegistry</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.OsgiRegistry</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.util.EventListener</code>, <code>org.osgi.framework.BundleListener</code>, <code>org.osgi.framework.SynchronousBundleListener</code></dd>
+</dl>
+<hr>
+<pre>public final class <span class="typeNameLabel">OsgiRegistry</span>
+extends java.lang.Object
+implements org.osgi.framework.SynchronousBundleListener</pre>
+<div class="block">Taken from Jersey 2. Utility class to deal with OSGi runtime specific behavior.
+ This is mainly to handle META-INF/services lookup
+ and generic/application class lookup issue in OSGi.
+ <p>
+ When OSGi runtime is detected by the <a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core"><code>ServiceFinder</code></a> class,
+ an instance of OsgiRegistry is created and associated with given
+ OSGi BundleContext. META-INF/services entries are then being accessed
+ via the OSGi Bundle API as direct ClassLoader#getResource() method invocation
+ does not work in this case within OSGi.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Jakub Podlesak (jakub.podlesak at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#bundleChanged(org.osgi.framework.BundleEvent)">bundleChanged</a></span>&#8203;(org.osgi.framework.BundleEvent&nbsp;event)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.Class&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#classForNameWithException(java.lang.String)">classForNameWithException</a></span>&#8203;(java.lang.String&nbsp;className)</code></th>
+<td class="colLast">
+<div class="block">Get the Class from the class name.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstance()">getInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an <code>OsgiRegistry</code> instance.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.util.Enumeration&lt;java.net.URL&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPackageResources(java.lang.String,java.lang.ClassLoader)">getPackageResources</a></span>&#8203;(java.lang.String&nbsp;packagePath,
+                   java.lang.ClassLoader&nbsp;classLoader)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.util.ResourceBundle</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResourceBundle(java.lang.String)">getResourceBundle</a></span>&#8203;(java.lang.String&nbsp;bundleName)</code></th>
+<td class="colLast">
+<div class="block">Tries to load resource bundle via OSGi means.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hookUp()">hookUp</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Will hook up this instance with the OSGi runtime.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getInstance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a>&nbsp;getInstance()</pre>
+<div class="block">Returns an <code>OsgiRegistry</code> instance. Call this method only if sure that the application is running in OSGi
+ environment, otherwise a call to this method can lead to an <code>ClassNotFoundException</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an <code>OsgiRegistry</code> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="bundleChanged(org.osgi.framework.BundleEvent)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bundleChanged</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;bundleChanged&#8203;(org.osgi.framework.BundleEvent&nbsp;event)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>bundleChanged</code>&nbsp;in interface&nbsp;<code>org.osgi.framework.BundleListener</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getPackageResources(java.lang.String,java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPackageResources</h4>
+<pre class="methodSignature">public&nbsp;java.util.Enumeration&lt;java.net.URL&gt;&nbsp;getPackageResources&#8203;(java.lang.String&nbsp;packagePath,
+                                                               java.lang.ClassLoader&nbsp;classLoader)</pre>
+</li>
+</ul>
+<a id="classForNameWithException(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>classForNameWithException</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Class&lt;?&gt;&nbsp;classForNameWithException&#8203;(java.lang.String&nbsp;className)
+                                             throws java.lang.ClassNotFoundException</pre>
+<div class="block">Get the Class from the class name.
+ <p>
+ The context class loader will be utilized if accessible and non-null.
+ Otherwise the defining class loader of this class will
+ be utilized.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>className</code> - the class name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Class, otherwise null if the class cannot be found.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.ClassNotFoundException</code> - if the class cannot be found.</dd>
+</dl>
+</li>
+</ul>
+<a id="getResourceBundle(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResourceBundle</h4>
+<pre class="methodSignature">public&nbsp;java.util.ResourceBundle&nbsp;getResourceBundle&#8203;(java.lang.String&nbsp;bundleName)</pre>
+<div class="block">Tries to load resource bundle via OSGi means. No caching involved here,
+ as localization properties are being cached in Localizer class already.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bundleName</code> - name of the resource bundle to load</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>resource bundle instance if found, null otherwise</dd>
+</dl>
+</li>
+</ul>
+<a id="hookUp()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hookUp</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;hookUp()</pre>
+<div class="block">Will hook up this instance with the OSGi runtime.
+ This is to actually update SPI provider lookup and class loading mechanisms in Jersey
+ to utilize OSGi features.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OsgiRegistry.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ProtocolException.html b/apidocs/1.20/org/glassfish/tyrus/core/ProtocolException.html
new file mode 100644
index 00000000..749110f5
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ProtocolException.html
@@ -0,0 +1,356 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ProtocolException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ProtocolException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProtocolException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ProtocolException" class="title">Class ProtocolException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Throwable</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Exception</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.RuntimeException</li>
+<li>
+<ul class="inheritance">
+<li><a href="WebSocketException.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.WebSocketException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ProtocolException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ProtocolException</span>
+extends <a href="WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a></pre>
+<div class="block">Represents issue with parsing or producing websocket frame.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.glassfish.tyrus.core.ProtocolException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">ProtocolException</a></span>&#8203;(java.lang.String&nbsp;reasonPhrase)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCloseReason()">getCloseReason</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get close reason.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
+<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ProtocolException</h4>
+<pre>public&nbsp;ProtocolException&#8203;(java.lang.String&nbsp;reasonPhrase)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getCloseReason()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCloseReason</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;getCloseReason()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="WebSocketException.html#getCloseReason()">WebSocketException</a></code></span></div>
+<div class="block">Get close reason.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="WebSocketException.html#getCloseReason()">getCloseReason</a></code>&nbsp;in class&nbsp;<code><a href="WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>close reason used when processing this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProtocolException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ProtocolHandler.html b/apidocs/1.20/org/glassfish/tyrus/core/ProtocolHandler.html
new file mode 100644
index 00000000..5390c29d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ProtocolHandler.html
@@ -0,0 +1,788 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ProtocolHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ProtocolHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":42,"i5":42,"i6":10,"i7":10,"i8":42,"i9":42,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":42,"i19":10,"i20":42,"i21":10,"i22":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProtocolHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ProtocolHandler" class="title">Class ProtocolHandler</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ProtocolHandler</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">ProtocolHandler</span>
+extends java.lang.Object</pre>
+<div class="block">Tyrus protocol handler.
+ <p>
+ Responsible for framing and unframing raw websocket frames. Tyrus creates exactly one instance per Session.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MASK_SIZE">MASK_SIZE</a></span></code></th>
+<td class="colLast">
+<div class="block">RFC 6455</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(int,java.lang.String)">close</a></span>&#8203;(int&nbsp;code,
+     java.lang.String&nbsp;reason)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handshake(org.glassfish.tyrus.core.TyrusEndpointWrapper,org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">handshake</a></span>&#8203;(<a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+         <a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+         <a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response,
+         <a href="extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;extensionContext)</code></th>
+<td class="colLast">
+<div class="block">Server side handshake processing.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasExtensions()">hasExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns true when current connection has some negotiated extension.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#process(org.glassfish.tyrus.core.frame.Frame,org.glassfish.tyrus.core.TyrusWebSocket)">process</a></span>&#8203;(<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+       <a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">
+<div class="block">TODO.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#send(byte%5B%5D)">send</a></span>&#8203;(byte[]&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#send(byte%5B%5D,javax.websocket.SendHandler)">send</a></span>&#8203;(byte[]&nbsp;data,
+    <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#send(byte%5B%5D,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">send</a></span>&#8203;(byte[]&nbsp;data,
+    <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+    <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#send(byte%5B%5D,org.glassfish.tyrus.spi.WriterInfo)">send</a></span>&#8203;(byte[]&nbsp;data,
+    <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#send(java.lang.String)">send</a></span>&#8203;(java.lang.String&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#send(java.lang.String,javax.websocket.SendHandler)">send</a></span>&#8203;(java.lang.String&nbsp;data,
+    <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#send(java.lang.String,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">send</a></span>&#8203;(java.lang.String&nbsp;data,
+    <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+    <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#send(java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">send</a></span>&#8203;(java.lang.String&nbsp;data,
+    <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendRawFrame(java.nio.ByteBuffer)">sendRawFrame</a></span>&#8203;(java.nio.ByteBuffer&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Raw frame is always whole (not partial).</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setExtensionContext(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">setExtensionContext</a></span>&#8203;(<a href="extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;extensionContext)</code></th>
+<td class="colLast">
+<div class="block">Client side.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setExtensions(java.util.List)">setExtensions</a></span>&#8203;(java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Client side.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMessageEventListener(org.glassfish.tyrus.core.monitoring.MessageEventListener)">setMessageEventListener</a></span>&#8203;(<a href="monitoring/MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a>&nbsp;messageEventListener)</code></th>
+<td class="colLast">
+<div class="block">Set message event listener.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setWebSocket(org.glassfish.tyrus.core.TyrusWebSocket)">setWebSocket</a></span>&#8203;(<a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;webSocket)</code></th>
+<td class="colLast">
+<div class="block">Client side.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setWriter(org.glassfish.tyrus.spi.Writer)">setWriter</a></span>&#8203;(<a href="../spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer)</code></th>
+<td class="colLast">
+<div class="block">Set <a href="../spi/Writer.html" title="class in org.glassfish.tyrus.spi"><code>Writer</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stream(boolean,byte%5B%5D,int,int)">stream</a></span>&#8203;(boolean&nbsp;last,
+      byte[]&nbsp;bytes,
+      int&nbsp;off,
+      int&nbsp;len)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stream(boolean,byte%5B%5D,int,int,org.glassfish.tyrus.spi.WriterInfo)">stream</a></span>&#8203;(boolean&nbsp;last,
+      byte[]&nbsp;bytes,
+      int&nbsp;off,
+      int&nbsp;len,
+      <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stream(boolean,java.lang.String)">stream</a></span>&#8203;(boolean&nbsp;last,
+      java.lang.String&nbsp;fragment)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stream(boolean,java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">stream</a></span>&#8203;(boolean&nbsp;last,
+      java.lang.String&nbsp;fragment,
+      <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unframe(java.nio.ByteBuffer)">unframe</a></span>&#8203;(java.nio.ByteBuffer&nbsp;buffer)</code></th>
+<td class="colLast">
+<div class="block">TODO!</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="MASK_SIZE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MASK_SIZE</h4>
+<pre>public static final&nbsp;int MASK_SIZE</pre>
+<div class="block">RFC 6455</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.core.ProtocolHandler.MASK_SIZE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="setWriter(org.glassfish.tyrus.spi.Writer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setWriter</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setWriter&#8203;(<a href="../spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer)</pre>
+<div class="block">Set <a href="../spi/Writer.html" title="class in org.glassfish.tyrus.spi"><code>Writer</code></a> instance.
+ <p>
+ The set instance is used for "sending" all outgoing WebSocket frames.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>writer</code> - <a href="../spi/Writer.html" title="class in org.glassfish.tyrus.spi"><code>Writer</code></a> to be set.</dd>
+</dl>
+</li>
+</ul>
+<a id="hasExtensions()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasExtensions</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;hasExtensions()</pre>
+<div class="block">Returns true when current connection has some negotiated extension.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if there is at least one negotiated extension associated to this connection, <code>false</code>
+ otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="handshake(org.glassfish.tyrus.core.TyrusEndpointWrapper,org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>handshake</h4>
+<pre class="methodSignature">public&nbsp;<a href="Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a>&nbsp;handshake&#8203;(<a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+                           <a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+                           <a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response,
+                           <a href="extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;extensionContext)
+                    throws <a href="HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></pre>
+<div class="block">Server side handshake processing.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointWrapper</code> - endpoint related to the handshake (path is already matched).</dd>
+<dd><code>request</code> - handshake request.</dd>
+<dd><code>response</code> - handshake response.</dd>
+<dd><code>extensionContext</code> - extension context.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>server handshake object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></code> - when there is problem with received <a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeRequest</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="setExtensions(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setExtensions</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setExtensions&#8203;(java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</pre>
+<div class="block">Client side. Set extensions negotiated for this WebSocket session/connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>extensions</code> - list of negotiated extensions. Can be <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="setWebSocket(org.glassfish.tyrus.core.TyrusWebSocket)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setWebSocket</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setWebSocket&#8203;(<a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;webSocket)</pre>
+<div class="block">Client side. Set WebSocket.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>webSocket</code> - client WebSocket connection.</dd>
+</dl>
+</li>
+</ul>
+<a id="setExtensionContext(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setExtensionContext</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setExtensionContext&#8203;(<a href="extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;extensionContext)</pre>
+<div class="block">Client side. Set extension context.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>extensionContext</code> - extension context.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMessageEventListener(org.glassfish.tyrus.core.monitoring.MessageEventListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMessageEventListener</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setMessageEventListener&#8203;(<a href="monitoring/MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a>&nbsp;messageEventListener)</pre>
+<div class="block">Set message event listener.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>messageEventListener</code> - message event listener.</dd>
+</dl>
+</li>
+</ul>
+<a id="send(byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>send</h4>
+<pre class="methodSignature">@Deprecated
+public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;send&#8203;(byte[]&nbsp;data)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</li>
+</ul>
+<a id="send(byte[],org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>send</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;send&#8203;(byte[]&nbsp;data,
+                                               <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+</li>
+</ul>
+<a id="send(byte[],javax.websocket.SendHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>send</h4>
+<pre class="methodSignature">@Deprecated
+public&nbsp;void&nbsp;send&#8203;(byte[]&nbsp;data,
+                 <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</li>
+</ul>
+<a id="send(byte[],javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>send</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;send&#8203;(byte[]&nbsp;data,
+                 <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+                 <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+</li>
+</ul>
+<a id="send(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>send</h4>
+<pre class="methodSignature">@Deprecated
+public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;send&#8203;(java.lang.String&nbsp;data)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</li>
+</ul>
+<a id="send(java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>send</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;send&#8203;(java.lang.String&nbsp;data,
+                                               <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+</li>
+</ul>
+<a id="send(java.lang.String,javax.websocket.SendHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>send</h4>
+<pre class="methodSignature">@Deprecated
+public&nbsp;void&nbsp;send&#8203;(java.lang.String&nbsp;data,
+                 <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</li>
+</ul>
+<a id="send(java.lang.String,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>send</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;send&#8203;(java.lang.String&nbsp;data,
+                 <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+                 <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+</li>
+</ul>
+<a id="sendRawFrame(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendRawFrame</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendRawFrame&#8203;(java.nio.ByteBuffer&nbsp;data)</pre>
+<div class="block">Raw frame is always whole (not partial).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - serialized frame.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>send future.</dd>
+</dl>
+</li>
+</ul>
+<a id="stream(boolean,byte[],int,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stream</h4>
+<pre class="methodSignature">@Deprecated
+public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;stream&#8203;(boolean&nbsp;last,
+                                                 byte[]&nbsp;bytes,
+                                                 int&nbsp;off,
+                                                 int&nbsp;len)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</li>
+</ul>
+<a id="stream(boolean,byte[],int,int,org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stream</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;stream&#8203;(boolean&nbsp;last,
+                                                 byte[]&nbsp;bytes,
+                                                 int&nbsp;off,
+                                                 int&nbsp;len,
+                                                 <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+</li>
+</ul>
+<a id="stream(boolean,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stream</h4>
+<pre class="methodSignature">@Deprecated
+public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;stream&#8203;(boolean&nbsp;last,
+                                                 java.lang.String&nbsp;fragment)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+</li>
+</ul>
+<a id="stream(boolean,java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stream</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;stream&#8203;(boolean&nbsp;last,
+                                                 java.lang.String&nbsp;fragment,
+                                                 <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+</li>
+</ul>
+<a id="close(int,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;close&#8203;(int&nbsp;code,
+                                                java.lang.String&nbsp;reason)</pre>
+</li>
+</ul>
+<a id="unframe(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unframe</h4>
+<pre class="methodSignature">public&nbsp;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;unframe&#8203;(java.nio.ByteBuffer&nbsp;buffer)</pre>
+<div class="block">TODO!</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>buffer</code> - TODO.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>TODO.</dd>
+</dl>
+</li>
+</ul>
+<a id="process(org.glassfish.tyrus.core.frame.Frame,org.glassfish.tyrus.core.TyrusWebSocket)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>process</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;process&#8203;(<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+                    <a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</pre>
+<div class="block">TODO.
+ <p>
+ called after Extension execution.
+ <p>
+ validates frame + processes its content</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - TODO.</dd>
+<dd><code>socket</code> - TODO.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProtocolHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html b/apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html
new file mode 100644
index 00000000..b88a713d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html
@@ -0,0 +1,352 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ReflectionHelper.ClassTypePair (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReflectionHelper.ClassTypePair (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReflectionHelper.ClassTypePair.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ReflectionHelper.ClassTypePair" class="title">Class ReflectionHelper.ClassTypePair</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ReflectionHelper.ClassTypePair</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">ReflectionHelper.ClassTypePair</span>
+extends java.lang.Object</pre>
+<div class="block">A tuple consisting of a class and type of the class.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#c">c</a></span></code></th>
+<td class="colLast">
+<div class="block">The class.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.reflect.Type</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#t">t</a></span></code></th>
+<td class="colLast">
+<div class="block">The type of the class.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Class)">ClassTypePair</a></span>&#8203;(java.lang.Class&nbsp;c)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Class,java.lang.reflect.Type)">ClassTypePair</a></span>&#8203;(java.lang.Class&nbsp;c,
+             java.lang.reflect.Type&nbsp;t)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="c">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>c</h4>
+<pre>public final&nbsp;java.lang.Class c</pre>
+<div class="block">The class.</div>
+</li>
+</ul>
+<a id="t">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>t</h4>
+<pre>public final&nbsp;java.lang.reflect.Type t</pre>
+<div class="block">The type of the class.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClassTypePair</h4>
+<pre>public&nbsp;ClassTypePair&#8203;(java.lang.Class&nbsp;c)</pre>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Class,java.lang.reflect.Type)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ClassTypePair</h4>
+<pre>public&nbsp;ClassTypePair&#8203;(java.lang.Class&nbsp;c,
+                     java.lang.reflect.Type&nbsp;t)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReflectionHelper.ClassTypePair.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html b/apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html
new file mode 100644
index 00000000..45fa650e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html
@@ -0,0 +1,305 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ReflectionHelper.DeclaringClassInterfacePair (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReflectionHelper.DeclaringClassInterfacePair (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReflectionHelper.DeclaringClassInterfacePair.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ReflectionHelper.DeclaringClassInterfacePair" class="title">Class ReflectionHelper.DeclaringClassInterfacePair</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">ReflectionHelper.DeclaringClassInterfacePair</span>
+extends java.lang.Object</pre>
+<div class="block">A tuple consisting of a concrete class, declaring class that declares a generic interface type.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#concreteClass">concreteClass</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.Class</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#declaringClass">declaringClass</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.reflect.Type</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#genericInterface">genericInterface</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="concreteClass">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>concreteClass</h4>
+<pre>public final&nbsp;java.lang.Class concreteClass</pre>
+</li>
+</ul>
+<a id="declaringClass">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>declaringClass</h4>
+<pre>public final&nbsp;java.lang.Class declaringClass</pre>
+</li>
+</ul>
+<a id="genericInterface">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>genericInterface</h4>
+<pre>public final&nbsp;java.lang.reflect.Type genericInterface</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReflectionHelper.DeclaringClassInterfacePair.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html b/apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html
new file mode 100644
index 00000000..1025f946
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html
@@ -0,0 +1,332 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ReflectionHelper.TypeClassPair (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReflectionHelper.TypeClassPair (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReflectionHelper.TypeClassPair.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ReflectionHelper.TypeClassPair" class="title">Class ReflectionHelper.TypeClassPair</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ReflectionHelper.TypeClassPair</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></dd>
+</dl>
+<hr>
+<pre>public static final class <span class="typeNameLabel">ReflectionHelper.TypeClassPair</span>
+extends java.lang.Object</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#c">c</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.lang.reflect.Type</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#t">t</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.reflect.Type,java.lang.Class)">TypeClassPair</a></span>&#8203;(java.lang.reflect.Type&nbsp;t,
+             java.lang.Class&nbsp;c)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="t">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>t</h4>
+<pre>public final&nbsp;java.lang.reflect.Type t</pre>
+</li>
+</ul>
+<a id="c">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>c</h4>
+<pre>public final&nbsp;java.lang.Class c</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.reflect.Type,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TypeClassPair</h4>
+<pre>public&nbsp;TypeClassPair&#8203;(java.lang.reflect.Type&nbsp;t,
+                     java.lang.Class&nbsp;c)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReflectionHelper.TypeClassPair.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.html b/apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.html
new file mode 100644
index 00000000..b5ed7b04
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.html
@@ -0,0 +1,1064 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ReflectionHelper (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReflectionHelper (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReflectionHelper.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ReflectionHelper" class="title">Class ReflectionHelper</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ReflectionHelper</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">ReflectionHelper</span>
+extends java.lang.Object</pre>
+<div class="block">Utility methods for Java reflection.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul.Sandoz@Sun.Com</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a></span></code></th>
+<td class="colLast">
+<div class="block">A tuple consisting of a class and type of the class.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a></span></code></th>
+<td class="colLast">
+<div class="block">A tuple consisting of a concrete class, declaring class that declares a generic interface type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ReflectionHelper</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static java.lang.Class</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#classForName(java.lang.String)">classForName</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get the Class from the class name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static java.lang.Class</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#classForName(java.lang.String,java.lang.ClassLoader)">classForName</a></span>&#8203;(java.lang.String&nbsp;name,
+            java.lang.ClassLoader&nbsp;cl)</code></th>
+<td class="colLast">
+<div class="block">Get the Class from the class name.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static java.lang.Class</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#classForNameWithException(java.lang.String)">classForNameWithException</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get the Class from the class name.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static java.lang.Class</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#classForNameWithException(java.lang.String,java.lang.ClassLoader)">classForNameWithException</a></span>&#8203;(java.lang.String&nbsp;name,
+                         java.lang.ClassLoader&nbsp;cl)</code></th>
+<td class="colLast">
+<div class="block">Get the Class from the class name.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;java.security.PrivilegedExceptionAction&lt;java.lang.Class&lt;T&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#classForNameWithExceptionPEA(java.lang.String)">classForNameWithExceptionPEA</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get privileged exception action to obtain Class from given class name.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;java.security.PrivilegedExceptionAction&lt;java.lang.Class&lt;T&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#classForNameWithExceptionPEA(java.lang.String,java.lang.ClassLoader)">classForNameWithExceptionPEA</a></span>&#8203;(java.lang.String&nbsp;name,
+                            java.lang.ClassLoader&nbsp;cl)</code></th>
+<td class="colLast">
+<div class="block">Get privileged exception action to obtain Class from given class name.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static java.lang.reflect.Method</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findMethodOnClass(java.lang.Class,java.lang.reflect.Method)">findMethodOnClass</a></span>&#8203;(java.lang.Class&nbsp;c,
+                 java.lang.reflect.Method&nbsp;m)</code></th>
+<td class="colLast">
+<div class="block">Find a method on a class given an existing method.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static java.lang.Class</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getArrayClass(java.lang.Class)">getArrayClass</a></span>&#8203;(java.lang.Class&nbsp;c)</code></th>
+<td class="colLast">
+<div class="block">Get Array class of component class.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClass(java.lang.Class,java.lang.Class)">getClass</a></span>&#8203;(java.lang.Class&nbsp;concrete,
+        java.lang.Class&nbsp;iface)</code></th>
+<td class="colLast">
+<div class="block">Find the declaring class that implements or extends an interface.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static java.lang.Class&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClassType(java.lang.Class,java.lang.Class)">getClassType</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;inspectedClass,
+            java.lang.Class&lt;?&gt;&nbsp;superClass)</code></th>
+<td class="colLast">
+<div class="block">Find a type of the class given it's Superclass.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static java.security.PrivilegedAction&lt;java.lang.ClassLoader&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContextClassLoaderPA()">getContextClassLoaderPA</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get privileged action to obtain context class loader.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static java.lang.Class</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDeclaringClass(java.lang.reflect.AccessibleObject)">getDeclaringClass</a></span>&#8203;(java.lang.reflect.AccessibleObject&nbsp;ao)</code></th>
+<td class="colLast">
+<div class="block">Get declaring class of provided field, method or constructor.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static java.lang.reflect.Method</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFromStringStringMethod(java.lang.Class)">getFromStringStringMethod</a></span>&#8203;(java.lang.Class&nbsp;c)</code></th>
+<td class="colLast">
+<div class="block">Get the static fromString(String ) method.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>static java.lang.Class</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGenericClass(java.lang.reflect.Type)">getGenericClass</a></span>&#8203;(java.lang.reflect.Type&nbsp;parameterizedType)</code></th>
+<td class="colLast">
+<div class="block">Get the class that is the type argument of a parameterized type.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstance(java.lang.Class)">getInstance</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;c)</code></th>
+<td class="colLast">
+<div class="block">Creates an instance of <code>Class</code> c using <code>Class.newInstance()</code>.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstance(java.lang.Class,org.glassfish.tyrus.core.ErrorCollector)">getInstance</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;c,
+           <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</code></th>
+<td class="colLast">
+<div class="block">Creates an instance of <code>Class</code> c using <code>Class.newInstance()</code>.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static <a href="OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOsgiRegistryInstance()">getOsgiRegistryInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an <a href="OsgiRegistry.html" title="class in org.glassfish.tyrus.core"><code>OsgiRegistry</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>static java.lang.Class[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameterizedClassArguments(org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair)">getParameterizedClassArguments</a></span>&#8203;(<a href="ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a>&nbsp;p)</code></th>
+<td class="colLast">
+<div class="block">Get the parameterized class arguments for a declaring class that declares a generic interface type.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>static java.lang.reflect.Type[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameterizedTypeArguments(org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair)">getParameterizedTypeArguments</a></span>&#8203;(<a href="ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a>&nbsp;p)</code></th>
+<td class="colLast">
+<div class="block">Get the parameterized type arguments for a declaring class that declares a generic interface type.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>static java.lang.reflect.Constructor</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStringConstructor(java.lang.Class)">getStringConstructor</a></span>&#8203;(java.lang.Class&nbsp;c)</code></th>
+<td class="colLast">
+<div class="block">Get the constructor that has a single parameter of String.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>static <a href="ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTypeArgumentAndClass(java.lang.reflect.Type)">getTypeArgumentAndClass</a></span>&#8203;(java.lang.reflect.Type&nbsp;parameterizedType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>static java.lang.reflect.Method</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValueOfStringMethod(java.lang.Class)">getValueOfStringMethod</a></span>&#8203;(java.lang.Class&nbsp;c)</code></th>
+<td class="colLast">
+<div class="block">Get the static valueOf(String ) method.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#methodInstanceToString(java.lang.Object,java.lang.reflect.Method)">methodInstanceToString</a></span>&#8203;(java.lang.Object&nbsp;o,
+                      java.lang.reflect.Method&nbsp;m)</code></th>
+<td class="colLast">
+<div class="block">Create a string representation of a method and an instance whose
+ class implements the method.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#objectToString(java.lang.Object)">objectToString</a></span>&#8203;(java.lang.Object&nbsp;o)</code></th>
+<td class="colLast">
+<div class="block">Create a string representation of an object.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>static <a href="ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTypeVariable(java.lang.Class,java.lang.Class,java.lang.reflect.TypeVariable)">resolveTypeVariable</a></span>&#8203;(java.lang.Class&nbsp;c,
+                   java.lang.Class&nbsp;dc,
+                   java.lang.reflect.TypeVariable&nbsp;tv)</code></th>
+<td class="colLast">
+<div class="block">Given a type variable resolve the Java class of that variable.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAccessibleMethod(java.lang.reflect.Method)">setAccessibleMethod</a></span>&#8203;(java.lang.reflect.Method&nbsp;m)</code></th>
+<td class="colLast">
+<div class="block">Set a method to be accessible.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReflectionHelper</h4>
+<pre>public&nbsp;ReflectionHelper()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getDeclaringClass(java.lang.reflect.AccessibleObject)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDeclaringClass</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.Class&nbsp;getDeclaringClass&#8203;(java.lang.reflect.AccessibleObject&nbsp;ao)</pre>
+<div class="block">Get declaring class of provided field, method or constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ao</code> - object for which the declared class will be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>declaring class of provided object.</dd>
+</dl>
+</li>
+</ul>
+<a id="objectToString(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>objectToString</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;objectToString&#8203;(java.lang.Object&nbsp;o)</pre>
+<div class="block">Create a string representation of an object.
+ <p>
+ Returns a string consisting of the name of the class of which the
+ object is an instance, the at-sign character '<code>@</code>', and
+ the unsigned hexadecimal representation of the hash code of the
+ object. In other words, this method returns a string equal to the
+ value of:
+ <blockquote>
+ <pre>
+ o.getClass().getName() + '@' + Integer.toHexString(o.hashCode())
+ </pre></blockquote></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - the object.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the string representation of the object.</dd>
+</dl>
+</li>
+</ul>
+<a id="methodInstanceToString(java.lang.Object,java.lang.reflect.Method)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>methodInstanceToString</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;methodInstanceToString&#8203;(java.lang.Object&nbsp;o,
+                                                      java.lang.reflect.Method&nbsp;m)</pre>
+<div class="block">Create a string representation of a method and an instance whose
+ class implements the method.
+ <p>
+ Returns a string consisting of the name of the class of which the object
+ is an instance, the at-sign character '<code>@</code>',
+ the unsigned hexadecimal representation of the hash code of the
+ object, the character '<code>.</code>', the name of the method,
+ the character '<code>(</code>', the list of method parameters, and
+ the character '<code>)</code>'. In other words, thos method returns a
+ string equal to the value of:
+ <blockquote>
+ <pre>
+ o.getClass().getName() + '@' + Integer.toHexString(o.hashCode()) +
+ '.' + m.getName() + '(' + &lt;parameters&gt; + ')'.
+ </pre></blockquote></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - the object whose class implements <code>m</code>.</dd>
+<dd><code>m</code> - the method.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the string representation of the method and instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="classForName(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>classForName</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.Class&nbsp;classForName&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Get the Class from the class name.
+ <p>
+ The context class loader will be utilized if accessible and non-null.
+ Otherwise the defining class loader of this class will
+ be utilized.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the class name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Class, otherwise null if the class cannot be found.</dd>
+</dl>
+</li>
+</ul>
+<a id="classForName(java.lang.String,java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>classForName</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.Class&nbsp;classForName&#8203;(java.lang.String&nbsp;name,
+                                           java.lang.ClassLoader&nbsp;cl)</pre>
+<div class="block">Get the Class from the class name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the class name.</dd>
+<dd><code>cl</code> - the class loader to use, if null then the defining class loader
+             of this class will be utilized.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Class, otherwise null if the class cannot be found.</dd>
+</dl>
+</li>
+</ul>
+<a id="classForNameWithException(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>classForNameWithException</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.Class&nbsp;classForNameWithException&#8203;(java.lang.String&nbsp;name)
+                                                 throws java.lang.ClassNotFoundException</pre>
+<div class="block">Get the Class from the class name.
+ <p>
+ The context class loader will be utilized if accessible and non-null.
+ Otherwise the defining class loader of this class will
+ be utilized.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the class name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Class, otherwise null if the class cannot be found.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.ClassNotFoundException</code> - if the class cannot be found.</dd>
+</dl>
+</li>
+</ul>
+<a id="classForNameWithException(java.lang.String,java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>classForNameWithException</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.Class&nbsp;classForNameWithException&#8203;(java.lang.String&nbsp;name,
+                                                        java.lang.ClassLoader&nbsp;cl)
+                                                 throws java.lang.ClassNotFoundException</pre>
+<div class="block">Get the Class from the class name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the class name.</dd>
+<dd><code>cl</code> - the class loader to use, if null then the defining class loader
+             of this class will be utilized.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Class, otherwise null if the class cannot be found.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.ClassNotFoundException</code> - if the class cannot be found.</dd>
+</dl>
+</li>
+</ul>
+<a id="classForNameWithExceptionPEA(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>classForNameWithExceptionPEA</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;java.security.PrivilegedExceptionAction&lt;java.lang.Class&lt;T&gt;&gt;&nbsp;classForNameWithExceptionPEA&#8203;(java.lang.String&nbsp;name)
+                                                                                                    throws java.lang.ClassNotFoundException</pre>
+<div class="block">Get privileged exception action to obtain Class from given class name.
+ If run using security manager, the returned privileged exception action
+ must be invoked within a doPrivileged block.
+ <p>
+ The actual context class loader will be utilized if accessible and non-null.
+ Otherwise the defining class loader of the calling class will be utilized.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - class type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - class name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>privileged exception action to obtain the Class.
+ The action could throw <code>ClassNotFoundException</code> or return <code>null</code> if the class cannot be found.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.ClassNotFoundException</code> - when provided string contains classname of unknown class.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><code>AccessController.doPrivileged(java.security.PrivilegedExceptionAction)</code></dd>
+</dl>
+</li>
+</ul>
+<a id="classForNameWithExceptionPEA(java.lang.String,java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>classForNameWithExceptionPEA</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;java.security.PrivilegedExceptionAction&lt;java.lang.Class&lt;T&gt;&gt;&nbsp;classForNameWithExceptionPEA&#8203;(java.lang.String&nbsp;name,
+                                                                                                           java.lang.ClassLoader&nbsp;cl)
+                                                                                                    throws java.lang.ClassNotFoundException</pre>
+<div class="block">Get privileged exception action to obtain Class from given class name.
+ If run using security manager, the returned privileged exception action
+ must be invoked within a doPrivileged block.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - class type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - class name.</dd>
+<dd><code>cl</code> - class loader to use, if <code>null</code> then the defining class loader
+             of the calling class will be utilized.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>privileged exception action to obtain the Class.
+ The action throws <code>ClassNotFoundException</code>
+ or returns <code>null</code> if the class cannot be found.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.ClassNotFoundException</code> - when provided string contains classname of unknown class.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><code>AccessController.doPrivileged(java.security.PrivilegedExceptionAction)</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getContextClassLoaderPA()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getContextClassLoaderPA</h4>
+<pre class="methodSignature">public static&nbsp;java.security.PrivilegedAction&lt;java.lang.ClassLoader&gt;&nbsp;getContextClassLoaderPA()</pre>
+<div class="block">Get privileged action to obtain context class loader.
+ If run using security manager, the returned privileged action
+ must be invoked within a doPrivileged block.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>privileged action to obtain the actual context class loader.
+ The action could return <code>null</code> if context class loader has not been set.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><code>AccessController.doPrivileged(java.security.PrivilegedAction)</code></dd>
+</dl>
+</li>
+</ul>
+<a id="setAccessibleMethod(java.lang.reflect.Method)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAccessibleMethod</h4>
+<pre class="methodSignature">public static&nbsp;void&nbsp;setAccessibleMethod&#8203;(java.lang.reflect.Method&nbsp;m)</pre>
+<div class="block">Set a method to be accessible.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>m</code> - the method to be set as accessible</dd>
+</dl>
+</li>
+</ul>
+<a id="getGenericClass(java.lang.reflect.Type)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGenericClass</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.Class&nbsp;getGenericClass&#8203;(java.lang.reflect.Type&nbsp;parameterizedType)
+                                       throws java.lang.IllegalArgumentException</pre>
+<div class="block">Get the class that is the type argument of a parameterized type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameterizedType</code> - must be an instance of ParameterizedType
+                          and have exactly one type argument.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the class of the actual type argument. If the type argument
+ is a class then the class is returned. If the type argument
+ is a generic array type and the generic component type is a
+ class then class of the array is returned. if the type argument
+ is a parameterized type and it's raw type is a class then
+ that class is returned.
+ If the parameterizedType is not an instance of ParameterizedType
+ or contains more than one type argument null is returned.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the single type argument is not of
+                                  a class, or a generic array type, or the generic component type
+                                  of the generic array type is not class, or not a parameterized
+                                  type with a raw type that is not a class.</dd>
+</dl>
+</li>
+</ul>
+<a id="getTypeArgumentAndClass(java.lang.reflect.Type)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTypeArgumentAndClass</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a>&nbsp;getTypeArgumentAndClass&#8203;(java.lang.reflect.Type&nbsp;parameterizedType)
+                                                              throws java.lang.IllegalArgumentException</pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getArrayClass(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getArrayClass</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.Class&nbsp;getArrayClass&#8203;(java.lang.Class&nbsp;c)</pre>
+<div class="block">Get Array class of component class.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - the component class of the array</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the array class.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValueOfStringMethod(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValueOfStringMethod</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.reflect.Method&nbsp;getValueOfStringMethod&#8203;(java.lang.Class&nbsp;c)</pre>
+<div class="block">Get the static valueOf(String ) method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - The class to obtain the method.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the method, otherwise null if the method is not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getFromStringStringMethod(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFromStringStringMethod</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.reflect.Method&nbsp;getFromStringStringMethod&#8203;(java.lang.Class&nbsp;c)</pre>
+<div class="block">Get the static fromString(String ) method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - The class to obtain the method.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the method, otherwise null if the method is not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getStringConstructor(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringConstructor</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.reflect.Constructor&nbsp;getStringConstructor&#8203;(java.lang.Class&nbsp;c)</pre>
+<div class="block">Get the constructor that has a single parameter of String.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - The class to obtain the constructor.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the constructor, otherwise null if the constructor is not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getParameterizedClassArguments(org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameterizedClassArguments</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.Class[]&nbsp;getParameterizedClassArguments&#8203;(<a href="ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a>&nbsp;p)</pre>
+<div class="block">Get the parameterized class arguments for a declaring class that declares a generic interface type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>p</code> - the declaring class</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the parameterized class arguments, or null if the generic interface type is not a parameterized type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getParameterizedTypeArguments(org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameterizedTypeArguments</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.reflect.Type[]&nbsp;getParameterizedTypeArguments&#8203;(<a href="ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a>&nbsp;p)</pre>
+<div class="block">Get the parameterized type arguments for a declaring class that declares a generic interface type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>p</code> - the declaring class</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the parameterized type arguments, or null if the generic interface type is not a parameterized type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getClass(java.lang.Class,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClass</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a>&nbsp;getClass&#8203;(java.lang.Class&nbsp;concrete,
+                                                                    java.lang.Class&nbsp;iface)</pre>
+<div class="block">Find the declaring class that implements or extends an interface.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>concrete</code> - the concrete class than directly or indirectly implements or extends an interface class.</dd>
+<dd><code>iface</code> - the interface class.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the tuple of the declaring class and the generic interface type.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTypeVariable(java.lang.Class,java.lang.Class,java.lang.reflect.TypeVariable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTypeVariable</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a>&nbsp;resolveTypeVariable&#8203;(java.lang.Class&nbsp;c,
+                                                                 java.lang.Class&nbsp;dc,
+                                                                 java.lang.reflect.TypeVariable&nbsp;tv)</pre>
+<div class="block">Given a type variable resolve the Java class of that variable.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - the concrete class from which all type variables are resolved</dd>
+<dd><code>dc</code> - the declaring class where the type variable was defined</dd>
+<dd><code>tv</code> - the type variable</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the resolved Java class and type, otherwise null if the type variable could not be resolved</dd>
+</dl>
+</li>
+</ul>
+<a id="findMethodOnClass(java.lang.Class,java.lang.reflect.Method)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findMethodOnClass</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.reflect.Method&nbsp;findMethodOnClass&#8203;(java.lang.Class&nbsp;c,
+                                                         java.lang.reflect.Method&nbsp;m)</pre>
+<div class="block">Find a method on a class given an existing method.
+ <p>
+ If there exists a public method on the class that has the same name
+ and parameters as the existing method then that public method is
+ returned.
+ <p>
+ Otherwise, if there exists a public method on the class that has
+ the same name and the same number of parameters as the existing method,
+ and each generic parameter type, in order, of the public method is equal
+ to the generic parameter type, in the same order, of the existing method
+ or is an instance of <code>TypeVariable</code> then that public method is
+ returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - the class to search for a public method</dd>
+<dd><code>m</code> - the method to find</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the found public method.</dd>
+</dl>
+</li>
+</ul>
+<a id="getClassType(java.lang.Class,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClassType</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.Class&lt;?&gt;&nbsp;getClassType&#8203;(java.lang.Class&lt;?&gt;&nbsp;inspectedClass,
+                                              java.lang.Class&lt;?&gt;&nbsp;superClass)</pre>
+<div class="block">Find a type of the class given it's Superclass.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>inspectedClass</code> - Class whose type is searched for.</dd>
+<dd><code>superClass</code> - Class relatively to which the search is performed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>type of the class.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOsgiRegistryInstance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOsgiRegistryInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a>&nbsp;getOsgiRegistryInstance()</pre>
+<div class="block">Returns an <a href="OsgiRegistry.html" title="class in org.glassfish.tyrus.core"><code>OsgiRegistry</code></a> instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an <a href="OsgiRegistry.html" title="class in org.glassfish.tyrus.core"><code>OsgiRegistry</code></a> instance or <code>null</code> if the class cannot be instantiated (not in OSGi
+ environment).</dd>
+</dl>
+</li>
+</ul>
+<a id="getInstance(java.lang.Class,org.glassfish.tyrus.core.ErrorCollector)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInstance</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;T&nbsp;getInstance&#8203;(java.lang.Class&lt;T&gt;&nbsp;c,
+                                <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</pre>
+<div class="block">Creates an instance of <code>Class</code> c using <code>Class.newInstance()</code>. Exceptions are logged to <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core"><code>ErrorCollector</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - <code>Class</code> whose instance is going to be created</dd>
+<dd><code>collector</code> - <a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core"><code>ErrorCollector</code></a> which collects the <code>Exception</code>s.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new instance of <code>Class</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getInstance(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getInstance</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;T&nbsp;getInstance&#8203;(java.lang.Class&lt;T&gt;&nbsp;c)
+                         throws java.lang.IllegalAccessException,
+                                java.lang.InstantiationException</pre>
+<div class="block">Creates an instance of <code>Class</code> c using <code>Class.newInstance()</code>.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - <code>Class</code> whose instance is going to be created</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new instance of <code>Class</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalAccessException</code> - if the class or its nullary
+                                constructor is not accessible.</dd>
+<dd><code>java.lang.InstantiationException</code> - if this <code>Class</code> represents an abstract class,
+                                an interface, an array class, a primitive type, or void;
+                                or if the class has no nullary constructor;
+                                or if the instantiation fails for some other reason.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReflectionHelper.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html b/apidocs/1.20/org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html
new file mode 100644
index 00000000..99364c1a
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RequestContext.Builder.IsUserInRoleDelegate (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RequestContext.Builder.IsUserInRoleDelegate (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RequestContext.Builder.IsUserInRoleDelegate.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Interface RequestContext.Builder.IsUserInRoleDelegate" class="title">Interface RequestContext.Builder.IsUserInRoleDelegate</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">RequestContext.Builder.IsUserInRoleDelegate</span></pre>
+<div class="block">Is user in role delegate.
+ <p>
+ Cannot easily query ServletContext or HttpServletRequest for this information, since it is stored only as
+ object.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isUserInRole(java.lang.String)">isUserInRole</a></span>&#8203;(java.lang.String&nbsp;role)</code></th>
+<td class="colLast">
+<div class="block">Returns a boolean indicating whether the authenticated user is included in the specified logical "role".</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isUserInRole(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isUserInRole</h4>
+<pre class="methodSignature">boolean&nbsp;isUserInRole&#8203;(java.lang.String&nbsp;role)</pre>
+<div class="block">Returns a boolean indicating whether the authenticated user is included in the specified logical "role".
+ Roles and role membership can be defined using deployment descriptors. If the user has not been
+ authenticated, the method returns false.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>role</code> - a String specifying the name of the role.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a boolean indicating whether the user making this request belongs to a given role; false if the
+ user has not been authenticated.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RequestContext.Builder.IsUserInRoleDelegate.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/RequestContext.Builder.html b/apidocs/1.20/org/glassfish/tyrus/core/RequestContext.Builder.html
new file mode 100644
index 00000000..4f585a55
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/RequestContext.Builder.html
@@ -0,0 +1,573 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RequestContext.Builder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RequestContext.Builder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":9,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RequestContext.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class RequestContext.Builder" class="title">Class RequestContext.Builder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.RequestContext.Builder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></dd>
+</dl>
+<hr>
+<pre>public static final class <span class="typeNameLabel">RequestContext.Builder</span>
+extends java.lang.Object</pre>
+<div class="block"><a href="RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a> builder.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core">RequestContext.Builder.IsUserInRoleDelegate</a></span></code></th>
+<td class="colLast">
+<div class="block">Is user in role delegate.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Builder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build <a href="RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a> from given properties.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create()">create</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create empty builder.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(org.glassfish.tyrus.core.RequestContext)">create</a></span>&#8203;(<a href="RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a>&nbsp;requestContext)</code></th>
+<td class="colLast">
+<div class="block">Create builder instance based on provided <a href="RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#httpSession(java.lang.Object)">httpSession</a></span>&#8203;(java.lang.Object&nbsp;httpSession)</code></th>
+<td class="colLast">
+<div class="block">Set http session.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isUserInRoleDelegate(org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate)">isUserInRoleDelegate</a></span>&#8203;(<a href="RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core">RequestContext.Builder.IsUserInRoleDelegate</a>&nbsp;isUserInRoleDelegate)</code></th>
+<td class="colLast">
+<div class="block">Set delegate for <a href="RequestContext.html#isUserInRole(java.lang.String)"><code>RequestContext.isUserInRole(String)</code></a> method.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parameterMap(java.util.Map)">parameterMap</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.String[]&gt;&nbsp;parameterMap)</code></th>
+<td class="colLast">
+<div class="block">Set parameter map.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#queryString(java.lang.String)">queryString</a></span>&#8203;(java.lang.String&nbsp;queryString)</code></th>
+<td class="colLast">
+<div class="block">Set query string.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#remoteAddr(java.lang.String)">remoteAddr</a></span>&#8203;(java.lang.String&nbsp;remoteAddr)</code></th>
+<td class="colLast">
+<div class="block">Set remote address.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#requestURI(java.net.URI)">requestURI</a></span>&#8203;(java.net.URI&nbsp;requestURI)</code></th>
+<td class="colLast">
+<div class="block">Set request URI.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#secure(boolean)">secure</a></span>&#8203;(boolean&nbsp;secure)</code></th>
+<td class="colLast">
+<div class="block">Set secure state.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#userPrincipal(java.security.Principal)">userPrincipal</a></span>&#8203;(java.security.Principal&nbsp;principal)</code></th>
+<td class="colLast">
+<div class="block">Set <code>Principal</code>.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Builder</h4>
+<pre>public&nbsp;Builder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="create()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">public static&nbsp;<a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a>&nbsp;create()</pre>
+<div class="block">Create empty builder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>empty builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="create(org.glassfish.tyrus.core.RequestContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">public static&nbsp;<a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a>&nbsp;create&#8203;(<a href="RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a>&nbsp;requestContext)</pre>
+<div class="block">Create builder instance based on provided <a href="RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestContext</code> - request context.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="requestURI(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>requestURI</h4>
+<pre class="methodSignature">public&nbsp;<a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a>&nbsp;requestURI&#8203;(java.net.URI&nbsp;requestURI)</pre>
+<div class="block">Set request URI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestURI</code> - request URI to be set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core"><code>RequestContext.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="queryString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>queryString</h4>
+<pre class="methodSignature">public&nbsp;<a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a>&nbsp;queryString&#8203;(java.lang.String&nbsp;queryString)</pre>
+<div class="block">Set query string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>queryString</code> - query string to be set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core"><code>RequestContext.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="httpSession(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>httpSession</h4>
+<pre class="methodSignature">public&nbsp;<a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a>&nbsp;httpSession&#8203;(java.lang.Object&nbsp;httpSession)</pre>
+<div class="block">Set http session.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>httpSession</code> - <code>javax.servlet.http.HttpSession</code> session to be set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core"><code>RequestContext.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="secure(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>secure</h4>
+<pre class="methodSignature">public&nbsp;<a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a>&nbsp;secure&#8203;(boolean&nbsp;secure)</pre>
+<div class="block">Set secure state.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>secure</code> - secure state to be set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core"><code>RequestContext.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="userPrincipal(java.security.Principal)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>userPrincipal</h4>
+<pre class="methodSignature">public&nbsp;<a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a>&nbsp;userPrincipal&#8203;(java.security.Principal&nbsp;principal)</pre>
+<div class="block">Set <code>Principal</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>principal</code> - principal to be set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core"><code>RequestContext.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="isUserInRoleDelegate(org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isUserInRoleDelegate</h4>
+<pre class="methodSignature">public&nbsp;<a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a>&nbsp;isUserInRoleDelegate&#8203;(<a href="RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core">RequestContext.Builder.IsUserInRoleDelegate</a>&nbsp;isUserInRoleDelegate)</pre>
+<div class="block">Set delegate for <a href="RequestContext.html#isUserInRole(java.lang.String)"><code>RequestContext.isUserInRole(String)</code></a> method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>isUserInRoleDelegate</code> - delegate for <a href="RequestContext.html#isUserInRole(java.lang.String)"><code>RequestContext.isUserInRole(String)</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core"><code>RequestContext.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="parameterMap(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parameterMap</h4>
+<pre class="methodSignature">public&nbsp;<a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a>&nbsp;parameterMap&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.String[]&gt;&nbsp;parameterMap)</pre>
+<div class="block">Set parameter map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameterMap</code> - parameter map. Takes map returned from ServletRequest#getParameterMap.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core"><code>RequestContext.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="remoteAddr(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remoteAddr</h4>
+<pre class="methodSignature">public&nbsp;<a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a>&nbsp;remoteAddr&#8203;(java.lang.String&nbsp;remoteAddr)</pre>
+<div class="block">Set remote address.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>remoteAddr</code> - remote address to be set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core"><code>RequestContext.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public&nbsp;<a href="RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a>&nbsp;build()</pre>
+<div class="block">Build <a href="RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a> from given properties.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>created <a href="RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RequestContext.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/RequestContext.html b/apidocs/1.20/org/glassfish/tyrus/core/RequestContext.html
new file mode 100644
index 00000000..82eb99f2
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/RequestContext.html
@@ -0,0 +1,601 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RequestContext (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RequestContext (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RequestContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class RequestContext" class="title">Class RequestContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">org.glassfish.tyrus.spi.UpgradeRequest</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.RequestContext</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></code></dd>
+</dl>
+<hr>
+<pre>public final class <span class="typeNameLabel">RequestContext</span>
+extends <a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></pre>
+<div class="block">Implementation of all possible request interfaces. Should be the only point of truth.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a> builder.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.spi.UpgradeRequest">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.spi.<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></h3>
+<code><a href="../spi/UpgradeRequest.html#AUTHORIZATION">AUTHORIZATION</a>, <a href="../spi/UpgradeRequest.html#CLUSTER_CONNECTION_ID_HEADER">CLUSTER_CONNECTION_ID_HEADER</a>, <a href="../spi/UpgradeRequest.html#CONNECTION">CONNECTION</a>, <a href="../spi/UpgradeRequest.html#ENABLE_TRACING_HEADER">ENABLE_TRACING_HEADER</a>, <a href="../spi/UpgradeRequest.html#HOST">HOST</a>, <a href="../spi/UpgradeRequest.html#ORIGIN_HEADER">ORIGIN_HEADER</a>, <a href="../spi/UpgradeRequest.html#RESPONSE_CODE_MESSAGE">RESPONSE_CODE_MESSAGE</a>, <a href="../spi/UpgradeRequest.html#SEC_WS_ORIGIN_HEADER">SEC_WS_ORIGIN_HEADER</a>, <a href="../spi/UpgradeRequest.html#SERVER_KEY_HASH">SERVER_KEY_HASH</a>, <a href="../spi/UpgradeRequest.html#TRACING_THRESHOLD">TRACING_THRESHOLD</a>, <a href="../spi/UpgradeRequest.html#UPGRADE">UPGRADE</a>, <a href="../spi/UpgradeRequest.html#WEBSOCKET">WEBSOCKET</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.javax.websocket.server.HandshakeRequest">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;javax.websocket.server.<a href="../../../../javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></h3>
+<code><a href="../../../../javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_EXTENSIONS">SEC_WEBSOCKET_EXTENSIONS</a>, <a href="../../../../javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_KEY">SEC_WEBSOCKET_KEY</a>, <a href="../../../../javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_PROTOCOL">SEC_WEBSOCKET_PROTOCOL</a>, <a href="../../../../javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_VERSION">SEC_WEBSOCKET_VERSION</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeader(java.lang.String)">getHeader</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the header value corresponding to the name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get headers.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.Object</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHttpSession()">getHttpSession</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a reference to the HttpSession that the web socket handshake that 
+ started this conversation was part of, if the implementation
+ is part of a Java EE web container.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameterMap()">getParameterMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the request parameters associated with the request.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueryString()">getQueryString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the query string associated with the request.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteAddr()">getRemoteAddr</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the Internet Protocol (IP) address of the client or last proxy that sent the request.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestUri()">getRequestUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the undecoded request uri (up to the query string) of underlying
+ HTTP handshake request.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>java.net.URI</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestURI()">getRequestURI</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the request URI of the handshake request.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>java.security.Principal</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUserPrincipal()">getUserPrincipal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the authenticated user or <code>null</code> if no user is authenticated 
+ for this handshake.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSecure()">isSecure</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Indicates whether this request was made using a secure channel
+ (such as HTTPS).</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isUserInRole(java.lang.String)">isUserInRole</a></span>&#8203;(java.lang.String&nbsp;role)</code></th>
+<td class="colLast">
+<div class="block">Checks whether the current user is in the given role.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lock()">lock</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Make headers and parameter map read-only.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get headers.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>headers map. List items are corresponding to header declaration in HTTP request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeader(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeader</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getHeader&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the header value corresponding to the name.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/UpgradeRequest.html#getHeader(java.lang.String)">getHeader</a></code>&nbsp;in class&nbsp;<code><a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - header name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>List</code> of header values iff found, <code>null</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="lock()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lock</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;lock()</pre>
+<div class="block">Make headers and parameter map read-only.</div>
+</li>
+</ul>
+<a id="getUserPrincipal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPrincipal</h4>
+<pre class="methodSignature">public&nbsp;java.security.Principal&nbsp;getUserPrincipal()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/server/HandshakeRequest.html#getUserPrincipal()">HandshakeRequest</a></code></span></div>
+<div class="block">Return the authenticated user or <code>null</code> if no user is authenticated 
+ for this handshake.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the user principal.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestURI()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestURI</h4>
+<pre class="methodSignature">public&nbsp;java.net.URI&nbsp;getRequestURI()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/server/HandshakeRequest.html#getRequestURI()">HandshakeRequest</a></code></span></div>
+<div class="block">Return the request URI of the handshake request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the request uri of the handshake request.</dd>
+</dl>
+</li>
+</ul>
+<a id="isUserInRole(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isUserInRole</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isUserInRole&#8203;(java.lang.String&nbsp;role)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/server/HandshakeRequest.html#isUserInRole(java.lang.String)">HandshakeRequest</a></code></span></div>
+<div class="block">Checks whether the current user is in the given role.  Roles and role 
+ membership can be defined using deployment descriptors of the containing
+ WAR file, if running in a Java EE web container. If the user has 
+ not been authenticated, the method returns <code>false</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>role</code> - the role being checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether the authenticated user is in the role, or false if the user has not
+ been authenticated.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHttpSession()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHttpSession</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Object&nbsp;getHttpSession()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/server/HandshakeRequest.html#getHttpSession()">HandshakeRequest</a></code></span></div>
+<div class="block">Return a reference to the HttpSession that the web socket handshake that 
+ started this conversation was part of, if the implementation
+ is part of a Java EE web container.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the http session or <code>null</code> if either the websocket
+ implementation is not part of a Java EE web container, or there is
+ no HttpSession associated with the opening handshake request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getParameterMap()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameterMap</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;&nbsp;getParameterMap()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/server/HandshakeRequest.html#getParameterMap()">HandshakeRequest</a></code></span></div>
+<div class="block">Return the request parameters associated with the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the unmodifiable map of the request parameters.</dd>
+</dl>
+</li>
+</ul>
+<a id="getQueryString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getQueryString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getQueryString()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/server/HandshakeRequest.html#getQueryString()">HandshakeRequest</a></code></span></div>
+<div class="block">Return the query string associated with the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the query string.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestUri</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getRequestUri()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../spi/UpgradeRequest.html#getRequestUri()">UpgradeRequest</a></code></span></div>
+<div class="block">Get the undecoded request uri (up to the query string) of underlying
+ HTTP handshake request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/UpgradeRequest.html#getRequestUri()">getRequestUri</a></code>&nbsp;in class&nbsp;<code><a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>request uri.</dd>
+</dl>
+</li>
+</ul>
+<a id="isSecure()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSecure</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isSecure()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../spi/UpgradeRequest.html#isSecure()">UpgradeRequest</a></code></span></div>
+<div class="block">Indicates whether this request was made using a secure channel
+ (such as HTTPS).</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/UpgradeRequest.html#isSecure()">isSecure</a></code>&nbsp;in class&nbsp;<code><a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the request was made using secure channel,
+ false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRemoteAddr()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getRemoteAddr</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getRemoteAddr()</pre>
+<div class="block">Get the Internet Protocol (IP) address of the client or last proxy that sent the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a <code>String</code> containing the IP address of the client that sent the request or <code>null</code> when
+ method is called on client-side.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RequestContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ServiceConfigurationError.html b/apidocs/1.20/org/glassfish/tyrus/core/ServiceConfigurationError.html
new file mode 100644
index 00000000..518006ce
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ServiceConfigurationError.html
@@ -0,0 +1,332 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServiceConfigurationError (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServiceConfigurationError (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServiceConfigurationError.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ServiceConfigurationError" class="title">Class ServiceConfigurationError</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Throwable</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Error</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ServiceConfigurationError</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ServiceConfigurationError</span>
+extends java.lang.Error</pre>
+<div class="block">Taken from Jersey 2. Error thrown when something goes wrong while looking up service providers.
+ In particular, this error will be thrown in the following situations:
+ <ul>
+ <li> A concrete provider class cannot be found,
+ <li> A concrete provider class cannot be instantiated,
+ <li> The format of a provider-configuration file is illegal, or
+ <li> An IOException occurs while reading a provider-configuration file.
+ </ul></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Mark Reinhold, Marek Potociar (marek.potociar at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.glassfish.tyrus.core.ServiceConfigurationError">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">ServiceConfigurationError</a></span>&#8203;(java.lang.String&nbsp;msg)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new instance with the specified detail string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">ServiceConfigurationError</a></span>&#8203;(java.lang.Throwable&nbsp;x)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new instance that wraps the specified throwable.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
+<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceConfigurationError</h4>
+<pre>public&nbsp;ServiceConfigurationError&#8203;(java.lang.String&nbsp;msg)</pre>
+<div class="block">Constructs a new instance with the specified detail string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>msg</code> - the detail string</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ServiceConfigurationError</h4>
+<pre>public&nbsp;ServiceConfigurationError&#8203;(java.lang.Throwable&nbsp;x)</pre>
+<div class="block">Constructs a new instance that wraps the specified throwable.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>x</code> - the throwable to be wrapped</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServiceConfigurationError.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html b/apidocs/1.20/org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html
new file mode 100644
index 00000000..9c86efef
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServiceFinder.DefaultServiceIteratorProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServiceFinder.DefaultServiceIteratorProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServiceFinder.DefaultServiceIteratorProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ServiceFinder.DefaultServiceIteratorProvider" class="title">Class ServiceFinder.DefaultServiceIteratorProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ServiceFinder.DefaultServiceIteratorProvider</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;<a href="ServiceFinder.html" title="type parameter in ServiceFinder">T</a>&gt;</dd>
+</dl>
+<hr>
+<pre>public static final class <span class="typeNameLabel">ServiceFinder.DefaultServiceIteratorProvider</span>
+extends <a href="ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a></pre>
+<div class="block">The default service iterator provider that looks up provider classes in
+ META-INF/services files.
+ <p>
+ This class may utilized if a <a href="ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core"><code>ServiceFinder.ServiceIteratorProvider</code></a> needs to
+ reuse the default implementation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DefaultServiceIteratorProvider</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;java.util.Iterator&lt;java.lang.Class&lt;T&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createClassIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">createClassIterator</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+                   java.lang.String&nbsp;serviceName,
+                   java.lang.ClassLoader&nbsp;loader,
+                   boolean&nbsp;ignoreOnClassNotFound)</code></th>
+<td class="colLast">
+<div class="block">Iterate over provider classes of a service.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;java.util.Iterator&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">createIterator</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+              java.lang.String&nbsp;serviceName,
+              java.lang.ClassLoader&nbsp;loader,
+              boolean&nbsp;ignoreOnClassNotFound)</code></th>
+<td class="colLast">
+<div class="block">Iterate over provider instances of a service.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DefaultServiceIteratorProvider</h4>
+<pre>public&nbsp;DefaultServiceIteratorProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="createIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;java.util.Iterator&lt;T&gt;&nbsp;createIterator&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+                                                java.lang.String&nbsp;serviceName,
+                                                java.lang.ClassLoader&nbsp;loader,
+                                                boolean&nbsp;ignoreOnClassNotFound)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="ServiceFinder.ServiceIteratorProvider.html#createIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">ServiceFinder.ServiceIteratorProvider</a></code></span></div>
+<div class="block">Iterate over provider instances of a service.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="ServiceFinder.ServiceIteratorProvider.html#createIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">createIterator</a></code>&nbsp;in class&nbsp;<code><a href="ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the service.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>service</code> - the service class.</dd>
+<dd><code>serviceName</code> - the service name.</dd>
+<dd><code>loader</code> - the class loader to utilize when loading provider
+                              classes.</dd>
+<dd><code>ignoreOnClassNotFound</code> - if true ignore an instance if the
+                              corresponding provider class if cannot be found,
+                              otherwise throw a <code>ClassNotFoundException</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the provider instance iterator.</dd>
+</dl>
+</li>
+</ul>
+<a id="createClassIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createClassIterator</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;java.util.Iterator&lt;java.lang.Class&lt;T&gt;&gt;&nbsp;createClassIterator&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+                                                                      java.lang.String&nbsp;serviceName,
+                                                                      java.lang.ClassLoader&nbsp;loader,
+                                                                      boolean&nbsp;ignoreOnClassNotFound)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="ServiceFinder.ServiceIteratorProvider.html#createClassIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">ServiceFinder.ServiceIteratorProvider</a></code></span></div>
+<div class="block">Iterate over provider classes of a service.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="ServiceFinder.ServiceIteratorProvider.html#createClassIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">createClassIterator</a></code>&nbsp;in class&nbsp;<code><a href="ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the service.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>service</code> - the service class.</dd>
+<dd><code>serviceName</code> - the service name.</dd>
+<dd><code>loader</code> - the class loader to utilize when loading provider
+                              classes.</dd>
+<dd><code>ignoreOnClassNotFound</code> - if true ignore the provider class if
+                              cannot be found,
+                              otherwise throw a <code>ClassNotFoundException</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the provider class iterator.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServiceFinder.DefaultServiceIteratorProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html b/apidocs/1.20/org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html
new file mode 100644
index 00000000..44ff1c3a
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html
@@ -0,0 +1,382 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServiceFinder.ServiceIteratorProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServiceFinder.ServiceIteratorProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServiceFinder.ServiceIteratorProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ServiceFinder.ServiceIteratorProvider" class="title">Class ServiceFinder.ServiceIteratorProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.DefaultServiceIteratorProvider</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;<a href="ServiceFinder.html" title="type parameter in ServiceFinder">T</a>&gt;</dd>
+</dl>
+<hr>
+<pre>public abstract static class <span class="typeNameLabel">ServiceFinder.ServiceIteratorProvider</span>
+extends java.lang.Object</pre>
+<div class="block">Supports iteration of provider instances or classes.
+ <p>
+ The default implementation looks up provider classes from META-INF/services
+ files, see <a href="ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core"><code>ServiceFinder.DefaultServiceIteratorProvider</code></a>.
+ This implementation may be overridden by invoking
+ <a href="ServiceFinder.html#setIteratorProvider(org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider)"><code>ServiceFinder.setIteratorProvider(ServiceIteratorProvider)</code></a></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ServiceIteratorProvider</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;java.util.Iterator&lt;java.lang.Class&lt;T&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createClassIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">createClassIterator</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+                   java.lang.String&nbsp;serviceName,
+                   java.lang.ClassLoader&nbsp;loader,
+                   boolean&nbsp;ignoreOnClassNotFound)</code></th>
+<td class="colLast">
+<div class="block">Iterate over provider classes of a service.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;java.util.Iterator&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">createIterator</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+              java.lang.String&nbsp;serviceName,
+              java.lang.ClassLoader&nbsp;loader,
+              boolean&nbsp;ignoreOnClassNotFound)</code></th>
+<td class="colLast">
+<div class="block">Iterate over provider instances of a service.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ServiceIteratorProvider</h4>
+<pre>public&nbsp;ServiceIteratorProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="createIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;java.util.Iterator&lt;T&gt;&nbsp;createIterator&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+                                                         java.lang.String&nbsp;serviceName,
+                                                         java.lang.ClassLoader&nbsp;loader,
+                                                         boolean&nbsp;ignoreOnClassNotFound)</pre>
+<div class="block">Iterate over provider instances of a service.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the service.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>service</code> - the service class.</dd>
+<dd><code>serviceName</code> - the service name.</dd>
+<dd><code>loader</code> - the class loader to utilize when loading provider
+                              classes.</dd>
+<dd><code>ignoreOnClassNotFound</code> - if true ignore an instance if the
+                              corresponding provider class if cannot be found,
+                              otherwise throw a <code>ClassNotFoundException</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the provider instance iterator.</dd>
+</dl>
+</li>
+</ul>
+<a id="createClassIterator(java.lang.Class,java.lang.String,java.lang.ClassLoader,boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createClassIterator</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;java.util.Iterator&lt;java.lang.Class&lt;T&gt;&gt;&nbsp;createClassIterator&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+                                                                               java.lang.String&nbsp;serviceName,
+                                                                               java.lang.ClassLoader&nbsp;loader,
+                                                                               boolean&nbsp;ignoreOnClassNotFound)</pre>
+<div class="block">Iterate over provider classes of a service.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the service.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>service</code> - the service class.</dd>
+<dd><code>serviceName</code> - the service name.</dd>
+<dd><code>loader</code> - the class loader to utilize when loading provider
+                              classes.</dd>
+<dd><code>ignoreOnClassNotFound</code> - if true ignore the provider class if
+                              cannot be found,
+                              otherwise throw a <code>ClassNotFoundException</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the provider class iterator.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServiceFinder.ServiceIteratorProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/ServiceFinder.html b/apidocs/1.20/org/glassfish/tyrus/core/ServiceFinder.html
new file mode 100644
index 00000000..fd606111
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/ServiceFinder.html
@@ -0,0 +1,715 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServiceFinder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServiceFinder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":10,"i6":9,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServiceFinder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class ServiceFinder" class="title">Class ServiceFinder&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.ServiceFinder&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the service instance.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.lang.Iterable&lt;T&gt;</code></dd>
+</dl>
+<hr>
+<pre>public final class <span class="typeNameLabel">ServiceFinder&lt;T&gt;</span>
+extends java.lang.Object
+implements java.lang.Iterable&lt;T&gt;</pre>
+<div class="block">A simple service-provider lookup mechanism.  A <i>service</i> is a
+ well-known set of interfaces and (usually abstract) classes.  A <i>service
+ provider</i> is a specific implementation of a service.  The classes in a
+ provider typically implement the interfaces and subclass the classes defined
+ in the service itself.  Service providers may be installed in an
+ implementation of the Java platform in the form of extensions, that is, jar
+ files placed into any of the usual extension directories.  Providers may
+ also be made available by adding them to the applet or application class
+ path or by some other platform-specific means.
+ <p>
+ In this lookup mechanism a service is represented by an interface or an
+ abstract class.  (A concrete class may be used, but this is not
+ recommended.)  A provider of a given service contains one or more concrete
+ classes that extend this <i>service class</i> with data and code specific to
+ the provider.  This <i>provider class</i> will typically not be the entire
+ provider itself but rather a proxy that contains enough information to
+ decide whether the provider is able to satisfy a particular request together
+ with code that can create the actual provider on demand.  The details of
+ provider classes tend to be highly service-specific; no single class or
+ interface could possibly unify them, so no such class has been defined.  The
+ only requirement enforced here is that provider classes must have a
+ zero-argument constructor so that they may be instantiated during lookup.
+ <p>
+ The default service provider registration/lookup mechanism based
+ on <tt>META-INF/services</tt> files is described below.
+ For environments, where the basic mechanism is not suitable, clients
+ can enforce a different approach by setting their custom <tt>ServiceIteratorProvider</tt>
+ by calling <tt>setIteratorProvider</tt>. The call must be made prior to any lookup attempts.
+ <p>
+ A service provider identifies itself by placing a provider-configuration
+ file in the resource directory <tt>META-INF/services</tt>.  The file's name
+ should consist of the fully-qualified name of the abstract service class.
+ The file should contain a list of fully-qualified concrete provider-class
+ names, one per line.  Space and tab characters surrounding each name, as
+ well as blank lines, are ignored.  The comment character is <tt>'#'</tt>
+ (<tt>0x23</tt>); on each line all characters following the first comment
+ character are ignored.  The file must be encoded in UTF-8.
+ <p>
+ If a particular concrete provider class is named in more than one
+ configuration file, or is named in the same configuration file more than
+ once, then the duplicates will be ignored.  The configuration file naming a
+ particular provider need not be in the same jar file or other distribution
+ unit as the provider itself.  The provider must be accessible from the same
+ class loader that was initially queried to locate the configuration file;
+ note that this is not necessarily the class loader that found the file.
+ <p>
+ <b>Example:</b> Suppose we have a service class named
+ <tt>java.io.spi.CharCodec</tt>.  It has two abstract methods:
+ <pre>
+   public abstract CharEncoder getEncoder(String encodingName);
+   public abstract CharDecoder getDecoder(String encodingName);
+ </pre>
+ <p>
+ Each method returns an appropriate object or <tt>null</tt> if it cannot
+ translate the given encoding.  Typical <tt>CharCodec</tt> providers will
+ support more than one encoding.
+ <p>
+ If <tt>sun.io.StandardCodec</tt> is a provider of the <tt>CharCodec</tt>
+ service then its jar file would contain the file
+ <tt>META-INF/services/java.io.spi.CharCodec</tt>.  This file would contain
+ the single line:
+ <pre>
+   sun.io.StandardCodec    # Standard codecs for the platform
+ </pre>
+ <p>
+ To locate an codec for a given encoding name, the internal I/O code would
+ do something like this:
+ <pre>
+   CharEncoder getEncoder(String encodingName) {
+       for( CharCodec cc : ServiceFinder.find(CharCodec.class) ) {
+           CharEncoder ce = cc.getEncoder(encodingName);
+           if (ce != null)
+               return ce;
+       }
+       return null;
+   }
+ </pre>
+ <p>
+ The provider-lookup mechanism always executes in the security context of the
+ caller.  Trusted system code should typically invoke the methods in this
+ class from within a privileged security context.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Mark Reinhold, Jakub Podlesak, Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.DefaultServiceIteratorProvider</a></span></code></th>
+<td class="colLast">
+<div class="block">The default service iterator provider that looks up provider classes in
+ META-INF/services files.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a></span></code></th>
+<td class="colLast">
+<div class="block">Supports iteration of provider instances or classes.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#find(java.lang.Class)">find</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the context class loader.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#find(java.lang.Class,boolean)">find</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+    boolean&nbsp;ignoreOnClassNotFound)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the context class loader.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#find(java.lang.Class,java.lang.ClassLoader)">find</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+    java.lang.ClassLoader&nbsp;loader)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the given class loader.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#find(java.lang.Class,java.lang.ClassLoader,boolean)">find</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+    java.lang.ClassLoader&nbsp;loader,
+    boolean&nbsp;ignoreOnClassNotFound)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the given class loader.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#find(java.lang.String)">find</a></span>&#8203;(java.lang.String&nbsp;serviceName)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available classes of a given
+ service file using the context class loader.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>java.util.Iterator&lt;<a href="ServiceFinder.html" title="type parameter in ServiceFinder">T</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#iterator()">iterator</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns discovered objects incrementally.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIteratorProvider(org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider)">setIteratorProvider</a></span>&#8203;(<a href="ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a>&nbsp;sip)</code></th>
+<td class="colLast">
+<div class="block">Register the service iterator provider to iterate on provider instances
+ or classes.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="ServiceFinder.html" title="type parameter in ServiceFinder">T</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toArray()">toArray</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns discovered objects all at once.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;<a href="ServiceFinder.html" title="type parameter in ServiceFinder">T</a>&gt;[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toClassArray()">toClassArray</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns discovered classes all at once.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Iterable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.lang.Iterable</h3>
+<code>forEach, spliterator</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="find(java.lang.Class,java.lang.ClassLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>find</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;&nbsp;find&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+                                        java.lang.ClassLoader&nbsp;loader)
+                                 throws <a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></pre>
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the given class loader.
+ <p>
+ This method transforms the name of the given service class into a
+ provider-configuration filename as described above and then uses the
+ <tt>getResources</tt> method of the given class loader to find all
+ available files with that name.  These files are then read and parsed to
+ produce a list of provider-class names.  The iterator that is returned
+ uses the given class loader to lookup and then instantiate each element
+ of the list.
+ <p>
+ Because it is possible for extensions to be installed into a running
+ Java virtual machine, this method may return different results each time
+ it is invoked.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the service instance.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>service</code> - The service's abstract service class</dd>
+<dd><code>loader</code> - The class loader to be used to load provider-configuration files
+                and instantiate provider classes, or <tt>null</tt> if the system
+                class loader (or, failing that the bootstrap class loader) is to
+                be used</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the service finder</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></code> - If a provider-configuration file violates the specified format
+                                   or names a provider class that cannot be found and instantiated</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#find(java.lang.Class)"><code>find(Class)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="find(java.lang.Class,java.lang.ClassLoader,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>find</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;&nbsp;find&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+                                        java.lang.ClassLoader&nbsp;loader,
+                                        boolean&nbsp;ignoreOnClassNotFound)
+                                 throws <a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></pre>
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the given class loader.
+ <p>
+ This method transforms the name of the given service class into a
+ provider-configuration filename as described above and then uses the
+ <tt>getResources</tt> method of the given class loader to find all
+ available files with that name.  These files are then read and parsed to
+ produce a list of provider-class names.  The iterator that is returned
+ uses the given class loader to lookup and then instantiate each element
+ of the list.
+ <p>
+ Because it is possible for extensions to be installed into a running
+ Java virtual machine, this method may return different results each time
+ it is invoked.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the service instance.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>service</code> - The service's abstract service class</dd>
+<dd><code>loader</code> - The class loader to be used to load provider-configuration files
+                              and instantiate provider classes, or <tt>null</tt> if the system
+                              class loader (or, failing that the bootstrap class loader) is to
+                              be used</dd>
+<dd><code>ignoreOnClassNotFound</code> - If a provider cannot be loaded by the class loader
+                              then move on to the next available provider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the service finder</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></code> - If a provider-configuration file violates the specified format
+                                   or names a provider class that cannot be found and instantiated</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#find(java.lang.Class)"><code>find(Class)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="find(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>find</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;&nbsp;find&#8203;(java.lang.Class&lt;T&gt;&nbsp;service)
+                                 throws <a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></pre>
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the context class loader.  This convenience method
+ is equivalent to
+ <pre>
+   ClassLoader cl = Thread.currentThread().getContextClassLoader();
+   return Service.providers(service, cl, false);
+ </pre></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the service instance.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>service</code> - The service's abstract service class</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the service finder</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></code> - If a provider-configuration file violates the specified format
+                                   or names a provider class that cannot be found and instantiated</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#find(java.lang.Class,java.lang.ClassLoader)"><code>find(Class, ClassLoader)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="find(java.lang.Class,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>find</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;&nbsp;find&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+                                        boolean&nbsp;ignoreOnClassNotFound)
+                                 throws <a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></pre>
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the context class loader.  This convenience method
+ is equivalent to
+ <pre>
+   ClassLoader cl = Thread.currentThread().getContextClassLoader();
+   boolean ingore = ...
+   return Service.providers(service, cl, ignore);
+ </pre></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the service instance.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>service</code> - The service's abstract service class</dd>
+<dd><code>ignoreOnClassNotFound</code> - If a provider cannot be loaded by the class loader
+                              then move on to the next available provider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the service finder</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></code> - If a provider-configuration file violates the specified format
+                                   or names a provider class that cannot be found and instantiated</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#find(java.lang.Class,java.lang.ClassLoader)"><code>find(Class, ClassLoader)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="find(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>find</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;?&gt;&nbsp;find&#8203;(java.lang.String&nbsp;serviceName)
+                             throws <a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></pre>
+<div class="block">Locates and incrementally instantiates the available classes of a given
+ service file using the context class loader.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serviceName</code> - the service name correspond to a file in
+                    META-INF/services that contains a list of fully qualified class
+                    names</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the service finder</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></code> - If a service file violates the specified format
+                                   or names a provider class that cannot be found and instantiated</dd>
+</dl>
+</li>
+</ul>
+<a id="setIteratorProvider(org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIteratorProvider</h4>
+<pre class="methodSignature">public static&nbsp;void&nbsp;setIteratorProvider&#8203;(<a href="ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a>&nbsp;sip)
+                                throws java.lang.SecurityException</pre>
+<div class="block">Register the service iterator provider to iterate on provider instances
+ or classes.
+ <p>
+ The default implementation registered, <a href="ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core"><code>ServiceFinder.DefaultServiceIteratorProvider</code></a>,
+ looks up provider classes in META-INF/service files.
+ <p>
+ This method must be called prior to any attempts to obtain provider
+ instances or classes.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sip</code> - the service iterator provider.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.SecurityException</code> - if the provider cannot be registered.</dd>
+</dl>
+</li>
+</ul>
+<a id="iterator()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iterator</h4>
+<pre class="methodSignature">public&nbsp;java.util.Iterator&lt;<a href="ServiceFinder.html" title="type parameter in ServiceFinder">T</a>&gt;&nbsp;iterator()</pre>
+<div class="block">Returns discovered objects incrementally.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.lang.Iterable&lt;<a href="ServiceFinder.html" title="type parameter in ServiceFinder">T</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An <tt>Iterator</tt> that yields provider objects for the given
+ service, in some arbitrary order.  The iterator will throw a
+ <tt>ServiceConfigurationError</tt> if a provider-configuration
+ file violates the specified format or if a provider class cannot
+ be found and instantiated.</dd>
+</dl>
+</li>
+</ul>
+<a id="toArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toArray</h4>
+<pre class="methodSignature">public&nbsp;<a href="ServiceFinder.html" title="type parameter in ServiceFinder">T</a>[]&nbsp;toArray()
+            throws <a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></pre>
+<div class="block">Returns discovered objects all at once.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>can be empty but never null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></code> - If a provider-configuration file violates the specified format
+                                   or names a provider class that cannot be found and instantiated</dd>
+</dl>
+</li>
+</ul>
+<a id="toClassArray()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toClassArray</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Class&lt;<a href="ServiceFinder.html" title="type parameter in ServiceFinder">T</a>&gt;[]&nbsp;toClassArray()
+                                  throws <a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></pre>
+<div class="block">Returns discovered classes all at once.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>can be empty but never null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></code> - If a provider-configuration file violates the specified format
+                                   or names a provider class that cannot be found</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServiceFinder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/StrictUtf8.Parser.html b/apidocs/1.20/org/glassfish/tyrus/core/StrictUtf8.Parser.html
new file mode 100644
index 00000000..04a94b44
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/StrictUtf8.Parser.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>StrictUtf8.Parser (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StrictUtf8.Parser (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StrictUtf8.Parser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class StrictUtf8.Parser" class="title">Class StrictUtf8.Parser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.StrictUtf8.Parser</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="StrictUtf8.html" title="class in org.glassfish.tyrus.core">StrictUtf8</a></dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">StrictUtf8.Parser</span>
+extends java.lang.Object</pre>
+<div class="block">Surrogate parsing support.  Charset implementations may use instances of this class to handle the details of
+ parsing UTF-16 surrogate pairs.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Parser</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.nio.charset.CoderResult</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#error()">error</a></span>()</code></th>
+<td class="colLast">
+<div class="block">If the previous parse operation detected an error, return the object describing that error.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parse(char,char%5B%5D,int,int)">parse</a></span>&#8203;(char&nbsp;c,
+     char[]&nbsp;ia,
+     int&nbsp;ip,
+     int&nbsp;il)</code></th>
+<td class="colLast">
+<div class="block">Parses a UCS-4 character from the given source buffer, handling surrogates.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parse(char,java.nio.CharBuffer)">parse</a></span>&#8203;(char&nbsp;c,
+     java.nio.CharBuffer&nbsp;in)</code></th>
+<td class="colLast">
+<div class="block">Parses a UCS-4 character from the given source buffer, handling surrogates.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Parser</h4>
+<pre>public&nbsp;Parser()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="error()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>error</h4>
+<pre class="methodSignature">public&nbsp;java.nio.charset.CoderResult&nbsp;error()</pre>
+<div class="block">If the previous parse operation detected an error, return the object describing that error.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>object describing encountered parse error.</dd>
+</dl>
+</li>
+</ul>
+<a id="parse(char,java.nio.CharBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parse</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;parse&#8203;(char&nbsp;c,
+                 java.nio.CharBuffer&nbsp;in)</pre>
+<div class="block">Parses a UCS-4 character from the given source buffer, handling surrogates.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - The first character</dd>
+<dd><code>in</code> - The source buffer, from which one more character will be consumed if c is a high surrogate</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Either a parsed UCS-4 character, in which case the isPair() and increment() methods will return
+ meaningful values, or -1, in which case error() will return a descriptive result object</dd>
+</dl>
+</li>
+</ul>
+<a id="parse(char,char[],int,int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;parse&#8203;(char&nbsp;c,
+                 char[]&nbsp;ia,
+                 int&nbsp;ip,
+                 int&nbsp;il)</pre>
+<div class="block">Parses a UCS-4 character from the given source buffer, handling surrogates.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - The first character</dd>
+<dd><code>ia</code> - The input array, from which one more character will be consumed if c is a high surrogate</dd>
+<dd><code>ip</code> - The input index</dd>
+<dd><code>il</code> - The input limit</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Either a parsed UCS-4 character, in which case the isPair() and increment() methods will return
+ meaningful values, or -1, in which case error() will return a descriptive result object</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StrictUtf8.Parser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/StrictUtf8.html b/apidocs/1.20/org/glassfish/tyrus/core/StrictUtf8.html
new file mode 100644
index 00000000..2e4af7f8
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/StrictUtf8.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>StrictUtf8 (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StrictUtf8 (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StrictUtf8.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class StrictUtf8" class="title">Class StrictUtf8</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.nio.charset.Charset</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.StrictUtf8</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.lang.Comparable&lt;java.nio.charset.Charset&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">StrictUtf8</span>
+extends java.nio.charset.Charset</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="StrictUtf8.Parser.html" title="class in org.glassfish.tyrus.core">StrictUtf8.Parser</a></span></code></th>
+<td class="colLast">
+<div class="block">Surrogate parsing support.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">StrictUtf8</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contains(java.nio.charset.Charset)">contains</a></span>&#8203;(java.nio.charset.Charset&nbsp;cs)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.nio.charset.CharsetDecoder</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newDecoder()">newDecoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.nio.charset.CharsetEncoder</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newEncoder()">newEncoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.nio.charset.Charset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.nio.charset.Charset</h3>
+<code>aliases, availableCharsets, canEncode, compareTo, decode, defaultCharset, displayName, displayName, encode, encode, equals, forName, hashCode, isRegistered, isSupported, name, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>StrictUtf8</h4>
+<pre>public&nbsp;StrictUtf8()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="newDecoder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newDecoder</h4>
+<pre class="methodSignature">public&nbsp;java.nio.charset.CharsetDecoder&nbsp;newDecoder()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>newDecoder</code>&nbsp;in class&nbsp;<code>java.nio.charset.Charset</code></dd>
+</dl>
+</li>
+</ul>
+<a id="newEncoder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newEncoder</h4>
+<pre class="methodSignature">public&nbsp;java.nio.charset.CharsetEncoder&nbsp;newEncoder()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>newEncoder</code>&nbsp;in class&nbsp;<code>java.nio.charset.Charset</code></dd>
+</dl>
+</li>
+</ul>
+<a id="contains(java.nio.charset.Charset)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>contains</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;contains&#8203;(java.nio.charset.Charset&nbsp;cs)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>contains</code>&nbsp;in class&nbsp;<code>java.nio.charset.Charset</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StrictUtf8.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html
new file mode 100644
index 00000000..9515e6ad
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html
@@ -0,0 +1,407 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusEndpointWrapper.SessionListener.OnOpenResult (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusEndpointWrapper.SessionListener.OnOpenResult (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusEndpointWrapper.SessionListener.OnOpenResult.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Enum TyrusEndpointWrapper.SessionListener.OnOpenResult" class="title">Enum TyrusEndpointWrapper.SessionListener.OnOpenResult</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener.OnOpenResult</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">TyrusEndpointWrapper.SessionListener.OnOpenResult</span>
+extends java.lang.Enum&lt;<a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a>&gt;</pre>
+<div class="block">Result of <a href="TyrusEndpointWrapper.SessionListener.html#onOpen(org.glassfish.tyrus.core.TyrusSession)"><code>TyrusEndpointWrapper.SessionListener.onOpen(TyrusSession)</code></a>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#MAX_SESSIONS_PER_APP_EXCEEDED">MAX_SESSIONS_PER_APP_EXCEEDED</a></span></code></th>
+<td class="colLast">
+<div class="block">Session cannot be opened - the maximal number of open session per application exceeded.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#MAX_SESSIONS_PER_REMOTE_ADDR_EXCEEDED">MAX_SESSIONS_PER_REMOTE_ADDR_EXCEEDED</a></span></code></th>
+<td class="colLast">
+<div class="block">Session cannot be opened - the maximal number of open session per remote address exceeded.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SESSION_ALLOWED">SESSION_ALLOWED</a></span></code></th>
+<td class="colLast">
+<div class="block">Session can be opened.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="SESSION_ALLOWED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SESSION_ALLOWED</h4>
+<pre>public static final&nbsp;<a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a> SESSION_ALLOWED</pre>
+<div class="block">Session can be opened.</div>
+</li>
+</ul>
+<a id="MAX_SESSIONS_PER_APP_EXCEEDED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MAX_SESSIONS_PER_APP_EXCEEDED</h4>
+<pre>public static final&nbsp;<a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a> MAX_SESSIONS_PER_APP_EXCEEDED</pre>
+<div class="block">Session cannot be opened - the maximal number of open session per application exceeded.</div>
+</li>
+</ul>
+<a id="MAX_SESSIONS_PER_REMOTE_ADDR_EXCEEDED">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MAX_SESSIONS_PER_REMOTE_ADDR_EXCEEDED</h4>
+<pre>public static final&nbsp;<a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a> MAX_SESSIONS_PER_REMOTE_ADDR_EXCEEDED</pre>
+<div class="block">Session cannot be opened - the maximal number of open session per remote address exceeded.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (TyrusEndpointWrapper.SessionListener.OnOpenResult c : TyrusEndpointWrapper.SessionListener.OnOpenResult.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusEndpointWrapper.SessionListener.OnOpenResult.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html
new file mode 100644
index 00000000..d5de310d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusEndpointWrapper.SessionListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusEndpointWrapper.SessionListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusEndpointWrapper.SessionListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class TyrusEndpointWrapper.SessionListener" class="title">Class TyrusEndpointWrapper.SessionListener</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></dd>
+</dl>
+<hr>
+<pre>public abstract static class <span class="typeNameLabel">TyrusEndpointWrapper.SessionListener</span>
+extends java.lang.Object</pre>
+<div class="block">Session listener.
+ <p>
+ TODO: rename/consolidate with <a href="monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><code>EndpointEventListener</code></a>?</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></span></code></th>
+<td class="colLast">
+<div class="block">Result of <a href="#onOpen(org.glassfish.tyrus.core.TyrusSession)"><code>onOpen(TyrusSession)</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">SessionListener</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onClose(org.glassfish.tyrus.core.TyrusSession,javax.websocket.CloseReason)">onClose</a></span>&#8203;(<a href="TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a>&nbsp;session,
+       <a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Invoked after <a href="../../../../javax/websocket/OnClose.html" title="annotation in javax.websocket"><code>OnClose</code></a> annotated method
+ or <a href="../../../../javax/websocket/Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)"><code>Endpoint.onClose(javax.websocket.Session, javax.websocket.CloseReason)</code></a> execution.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onOpen(org.glassfish.tyrus.core.TyrusSession)">onOpen</a></span>&#8203;(<a href="TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Invoked before <a href="../../../../javax/websocket/OnOpen.html" title="annotation in javax.websocket"><code>OnOpen</code></a> annotated method
+ or <a href="../../../../javax/websocket/Endpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)"><code>Endpoint.onOpen(javax.websocket.Session, javax.websocket.EndpointConfig)</code></a> is invoked.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SessionListener</h4>
+<pre>public&nbsp;SessionListener()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onOpen(org.glassfish.tyrus.core.TyrusSession)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onOpen</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a>&nbsp;onOpen&#8203;(<a href="TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a>&nbsp;session)</pre>
+<div class="block">Invoked before <a href="../../../../javax/websocket/OnOpen.html" title="annotation in javax.websocket"><code>OnOpen</code></a> annotated method
+ or <a href="../../../../javax/websocket/Endpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)"><code>Endpoint.onOpen(javax.websocket.Session, javax.websocket.EndpointConfig)</code></a> is invoked.
+ <p>
+ Default implementation always returns <a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html#SESSION_ALLOWED"><code>TyrusEndpointWrapper.SessionListener.OnOpenResult.SESSION_ALLOWED</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - session to be opened.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html#SESSION_ALLOWED"><code>TyrusEndpointWrapper.SessionListener.OnOpenResult.SESSION_ALLOWED</code></a>
+ if session can be opened or reason why not.</dd>
+</dl>
+</li>
+</ul>
+<a id="onClose(org.glassfish.tyrus.core.TyrusSession,javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onClose</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onClose&#8203;(<a href="TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a>&nbsp;session,
+                    <a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</pre>
+<div class="block">Invoked after <a href="../../../../javax/websocket/OnClose.html" title="annotation in javax.websocket"><code>OnClose</code></a> annotated method
+ or <a href="../../../../javax/websocket/Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)"><code>Endpoint.onClose(javax.websocket.Session, javax.websocket.CloseReason)</code></a> execution.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - closed session.</dd>
+<dd><code>closeReason</code> - close reason.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusEndpointWrapper.SessionListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusEndpointWrapper.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusEndpointWrapper.html
new file mode 100644
index 00000000..55490fd9
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusEndpointWrapper.html
@@ -0,0 +1,528 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusEndpointWrapper (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusEndpointWrapper (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusEndpointWrapper.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class TyrusEndpointWrapper" class="title">Class TyrusEndpointWrapper</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusEndpointWrapper</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">TyrusEndpointWrapper</span>
+extends java.lang.Object</pre>
+<div class="block">Wraps the registered application class.
+ <p>
+ There is one <a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for each application class, which handles all the methods.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Danny Coward, Stepan Kopriva, Martin Matula, Pavel Bucek</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a></span></code></th>
+<td class="colLast">
+<div class="block">Session listener.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Class,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for class that extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.websocket.Endpoint,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(<a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpoint,
+                    <a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> instance or <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createSessionForRemoteEndpoint(org.glassfish.tyrus.core.TyrusWebSocket,java.lang.String,java.util.List,org.glassfish.tyrus.core.DebugContext)">createSessionForRemoteEndpoint</a></span>&#8203;(<a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket,
+                              java.lang.String&nbsp;subprotocol,
+                              java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions,
+                              <a href="DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a Session based on the <a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a>, subprotocols and extensions.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.Object</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doEncode(javax.websocket.Session,java.lang.Object)">doEncode</a></span>&#8203;(<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+        java.lang.Object&nbsp;message)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEndpointConfig()">getEndpointConfig</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Endpoint configuration.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEndpointPath()">getEndpointPath</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Server-side; Get Endpoint absolute path.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.Class,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TyrusEndpointWrapper</h4>
+<pre>public&nbsp;TyrusEndpointWrapper&#8203;(java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                            <a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                            <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                            <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                            java.lang.String&nbsp;contextPath,
+                            <a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                            <a href="TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                            <a href="cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                            <a href="monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                            java.lang.Boolean&nbsp;parallelBroadcastEnabled)
+                     throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Create <a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for class that extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - endpoint class for which the wrapper is created.</dd>
+<dd><code>configuration</code> - endpoint configuration.</dd>
+<dd><code>componentProvider</code> - component provider.</dd>
+<dd><code>container</code> - container where the wrapper is running.</dd>
+<dd><code>contextPath</code> - context path of the application.</dd>
+<dd><code>configurator</code> - endpoint configurator.</dd>
+<dd><code>sessionListener</code> - session listener.</dd>
+<dd><code>clusterContext</code> - cluster context instance. <code>null</code> indicates standalone mode.</dd>
+<dd><code>endpointEventListener</code> - endpoint event listener.</dd>
+<dd><code>parallelBroadcastEnabled</code> - <code>true</code> if parallel broadcast should be enabled, <code>true</code> is default.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - when the endpoint is not valid.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.websocket.Endpoint,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TyrusEndpointWrapper</h4>
+<pre>public&nbsp;TyrusEndpointWrapper&#8203;(<a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpoint,
+                            <a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                            <a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                            <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                            java.lang.String&nbsp;contextPath,
+                            <a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                            <a href="TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                            <a href="cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                            <a href="monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                            java.lang.Boolean&nbsp;parallelBroadcastEnabled)
+                     throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Create <a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> instance or <a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpoint</code> - endpoint instance for which the wrapper is created.</dd>
+<dd><code>configuration</code> - endpoint configuration.</dd>
+<dd><code>componentProvider</code> - component provider.</dd>
+<dd><code>container</code> - container where the wrapper is running.</dd>
+<dd><code>contextPath</code> - context path of the application.</dd>
+<dd><code>configurator</code> - endpoint configurator.</dd>
+<dd><code>sessionListener</code> - session listener.</dd>
+<dd><code>clusterContext</code> - cluster context instance. <code>null</code> indicates standalone mode.</dd>
+<dd><code>endpointEventListener</code> - endpoint event listener.</dd>
+<dd><code>parallelBroadcastEnabled</code> - <code>true</code> if parallel broadcast should be enabled, <code>true</code> is default.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - when the endpoint is not valid.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="doEncode(javax.websocket.Session,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doEncode</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Object&nbsp;doEncode&#8203;(<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+                                 java.lang.Object&nbsp;message)
+                          throws <a href="../../../../javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a>,
+                                 java.io.IOException</pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></code></dd>
+<dd><code>java.io.IOException</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getEndpointPath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEndpointPath</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getEndpointPath()</pre>
+<div class="block">Server-side; Get Endpoint absolute path.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>endpoint absolute path.</dd>
+</dl>
+</li>
+</ul>
+<a id="createSessionForRemoteEndpoint(org.glassfish.tyrus.core.TyrusWebSocket,java.lang.String,java.util.List,org.glassfish.tyrus.core.DebugContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createSessionForRemoteEndpoint</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;createSessionForRemoteEndpoint&#8203;(<a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket,
+                                              java.lang.String&nbsp;subprotocol,
+                                              java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions,
+                                              <a href="DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</pre>
+<div class="block">Creates a Session based on the <a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a>, subprotocols and extensions.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - the other end of the connection.</dd>
+<dd><code>subprotocol</code> - used.</dd>
+<dd><code>extensions</code> - extensions used.</dd>
+<dd><code>debugContext</code> - debug context.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a> representing the connection.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEndpointConfig()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEndpointConfig</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;getEndpointConfig()</pre>
+<div class="block">Get Endpoint configuration.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>configuration.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusEndpointWrapper.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html
new file mode 100644
index 00000000..6d396bc5
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html
@@ -0,0 +1,384 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusExtension.TyrusParameter (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusExtension.TyrusParameter (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusExtension.TyrusParameter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class TyrusExtension.TyrusParameter" class="title">Class TyrusExtension.TyrusParameter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusExtension.TyrusParameter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code><a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">TyrusExtension.TyrusParameter</span>
+extends java.lang.Object
+implements <a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>, java.io.Serializable</pre>
+<div class="block">WebSocket <a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket"><code>Extension.Parameter</code></a> implementation.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.glassfish.tyrus.core.TyrusExtension.TyrusParameter">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String)">TyrusParameter</a></span>&#8203;(java.lang.String&nbsp;name,
+              java.lang.String&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket"><code>Extension.Parameter</code></a> with name and value.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the name of the extension parameter.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValue()">getValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the value of the extension parameter.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TyrusParameter</h4>
+<pre>public&nbsp;TyrusParameter&#8203;(java.lang.String&nbsp;name,
+                      java.lang.String&nbsp;value)</pre>
+<div class="block">Create <a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket"><code>Extension.Parameter</code></a> with name and value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - parameter name.</dd>
+<dd><code>value</code> - parameter value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Extension.Parameter.html#getName()">Extension.Parameter</a></code></span></div>
+<div class="block">Return the name of the extension parameter.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Extension.Parameter.html#getName()">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the name of the parameter.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getValue()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Extension.Parameter.html#getValue()">Extension.Parameter</a></code></span></div>
+<div class="block">Return the value of the extension parameter.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Extension.Parameter.html#getValue()">getValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value of the parameter.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusExtension.TyrusParameter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusExtension.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusExtension.html
new file mode 100644
index 00000000..20bceed2
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusExtension.html
@@ -0,0 +1,520 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusExtension (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusExtension (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":9,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusExtension.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class TyrusExtension" class="title">Class TyrusExtension</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusExtension</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code><a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">TyrusExtension</span>
+extends java.lang.Object
+implements <a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>, java.io.Serializable</pre>
+<div class="block">WebSocket <a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a> implementation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.glassfish.tyrus.core.TyrusExtension">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core">TyrusExtension.TyrusParameter</a></span></code></th>
+<td class="colLast">
+<div class="block">WebSocket <a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket"><code>Extension.Parameter</code></a> implementation.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Extension">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a></h3>
+<code><a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">TyrusExtension</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a> with specific name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.util.List)">TyrusExtension</a></span>&#8203;(java.lang.String&nbsp;name,
+              java.util.List&lt;<a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;parameters)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a> with name and parameters.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(java.lang.Object&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromHeaders(java.util.List)">fromHeaders</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;extensionHeaders)</code></th>
+<td class="colLast">
+<div class="block">Parse <a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a> from headers (represented as <code>List</code> of strings).</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromString(java.util.List)">fromString</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Parsing of one <a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The name of the extension.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameters()">getParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The extension parameters for this extension in the order
+ they appear in the http headers.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TyrusExtension</h4>
+<pre>public&nbsp;TyrusExtension&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Create <a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a> with specific name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - extension name.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - when name is null or empty string.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TyrusExtension</h4>
+<pre>public&nbsp;TyrusExtension&#8203;(java.lang.String&nbsp;name,
+                      java.util.List&lt;<a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;parameters)</pre>
+<div class="block">Create <a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a> with name and parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - extension name.</dd>
+<dd><code>parameters</code> - extension parameters.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Extension.html#getName()">Extension</a></code></span></div>
+<div class="block">The name of the extension.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Extension.html#getName()">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the name of the extension.</dd>
+</dl>
+</li>
+</ul>
+<a id="getParameters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;getParameters()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Extension.html#getParameters()">Extension</a></code></span></div>
+<div class="block">The extension parameters for this extension in the order
+ they appear in the http headers.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Extension.html#getParameters()">getParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The read-only Map of extension parameters belonging to this extension.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(java.lang.Object&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>equals</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>hashCode</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="fromString(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromString</h4>
+<pre class="methodSignature">public static&nbsp;java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;fromString&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;s)</pre>
+<div class="block">Parsing of one <a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - <code>List</code> of <code>String</code> containing <a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extensions</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>List of extensions represented as <a href="TyrusExtension.html" title="class in org.glassfish.tyrus.core"><code>TyrusExtension</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromHeaders(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>fromHeaders</h4>
+<pre class="methodSignature">public static&nbsp;java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;fromHeaders&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;extensionHeaders)</pre>
+<div class="block">Parse <a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a> from headers (represented as <code>List</code> of strings).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>extensionHeaders</code> - Http Extension headers.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>list of parsed <a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extensions</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusExtension.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusFuture.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusFuture.html
new file mode 100644
index 00000000..1d791b13
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusFuture.html
@@ -0,0 +1,452 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusFuture (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusFuture (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusFuture.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class TyrusFuture" class="title">Class TyrusFuture&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusFuture&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.util.concurrent.Future&lt;T&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">TyrusFuture&lt;T&gt;</span>
+extends java.lang.Object
+implements java.util.concurrent.Future&lt;T&gt;</pre>
+<div class="block">Simple <code>Future</code> implementation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">TyrusFuture</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cancel(boolean)">cancel</a></span>&#8203;(boolean&nbsp;mayInterruptIfRunning)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="TyrusFuture.html" title="type parameter in TyrusFuture">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get()">get</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="TyrusFuture.html" title="type parameter in TyrusFuture">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(long,java.util.concurrent.TimeUnit)">get</a></span>&#8203;(long&nbsp;timeout,
+   java.util.concurrent.TimeUnit&nbsp;unit)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCancelled()">isCancelled</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDone()">isDone</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setFailure(java.lang.Throwable)">setFailure</a></span>&#8203;(java.lang.Throwable&nbsp;throwable)</code></th>
+<td class="colLast">
+<div class="block">Sets the failure result of message writing process.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setResult(T)">setResult</a></span>&#8203;(<a href="TyrusFuture.html" title="type parameter in TyrusFuture">T</a>&nbsp;result)</code></th>
+<td class="colLast">
+<div class="block">Sets the result of the message writing process.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TyrusFuture</h4>
+<pre>public&nbsp;TyrusFuture()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="cancel(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cancel</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;cancel&#8203;(boolean&nbsp;mayInterruptIfRunning)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>cancel</code>&nbsp;in interface&nbsp;<code>java.util.concurrent.Future&lt;<a href="TyrusFuture.html" title="type parameter in TyrusFuture">T</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="isCancelled()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isCancelled</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isCancelled()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>isCancelled</code>&nbsp;in interface&nbsp;<code>java.util.concurrent.Future&lt;<a href="TyrusFuture.html" title="type parameter in TyrusFuture">T</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="isDone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDone</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isDone()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>isDone</code>&nbsp;in interface&nbsp;<code>java.util.concurrent.Future&lt;<a href="TyrusFuture.html" title="type parameter in TyrusFuture">T</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusFuture.html" title="type parameter in TyrusFuture">T</a>&nbsp;get()
+      throws java.lang.InterruptedException,
+             java.util.concurrent.ExecutionException</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>get</code>&nbsp;in interface&nbsp;<code>java.util.concurrent.Future&lt;<a href="TyrusFuture.html" title="type parameter in TyrusFuture">T</a>&gt;</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.InterruptedException</code></dd>
+<dd><code>java.util.concurrent.ExecutionException</code></dd>
+</dl>
+</li>
+</ul>
+<a id="get(long,java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusFuture.html" title="type parameter in TyrusFuture">T</a>&nbsp;get&#8203;(long&nbsp;timeout,
+             java.util.concurrent.TimeUnit&nbsp;unit)
+      throws java.lang.InterruptedException,
+             java.util.concurrent.ExecutionException,
+             java.util.concurrent.TimeoutException</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>get</code>&nbsp;in interface&nbsp;<code>java.util.concurrent.Future&lt;<a href="TyrusFuture.html" title="type parameter in TyrusFuture">T</a>&gt;</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.InterruptedException</code></dd>
+<dd><code>java.util.concurrent.ExecutionException</code></dd>
+<dd><code>java.util.concurrent.TimeoutException</code></dd>
+</dl>
+</li>
+</ul>
+<a id="setResult(java.lang.Object)">
+<!--   -->
+</a><a id="setResult(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setResult</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setResult&#8203;(<a href="TyrusFuture.html" title="type parameter in TyrusFuture">T</a>&nbsp;result)</pre>
+<div class="block">Sets the result of the message writing process.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>result</code> - result</dd>
+</dl>
+</li>
+</ul>
+<a id="setFailure(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setFailure</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setFailure&#8203;(java.lang.Throwable&nbsp;throwable)</pre>
+<div class="block">Sets the failure result of message writing process.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>throwable</code> - throwable.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusFuture.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusRemoteEndpoint.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusRemoteEndpoint.html
new file mode 100644
index 00000000..c8aa3d4d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusRemoteEndpoint.html
@@ -0,0 +1,447 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusRemoteEndpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusRemoteEndpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusRemoteEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class TyrusRemoteEndpoint" class="title">Class TyrusRemoteEndpoint</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusRemoteEndpoint</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">TyrusRemoteEndpoint</span>
+extends java.lang.Object
+implements <a href="../../../../javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></pre>
+<div class="block">Wraps the <a href="../../../../javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket"><code>RemoteEndpoint</code></a> and represents the other side of the websocket connection.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Danny Coward (danny.coward at oracle.com), Martin Matula (martin.matula at oracle.com), Stepan Kopriva (stepan.kopriva at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;cr)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flushBatch()">flushBatch</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method is only used when batching is allowed for this RemoteEndpint.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBatchingAllowed()">getBatchingAllowed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return whether the implementation is allowed to batch outgoing messages
+ before sending.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendPing(java.nio.ByteBuffer)">sendPing</a></span>&#8203;(java.nio.ByteBuffer&nbsp;applicationData)</code></th>
+<td class="colLast">
+<div class="block">Send a Ping message containing the given application data to the remote endpoint.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendPong(java.nio.ByteBuffer)">sendPong</a></span>&#8203;(java.nio.ByteBuffer&nbsp;applicationData)</code></th>
+<td class="colLast">
+<div class="block">Allows the developer to send an unsolicited Pong message containing the given application
+ data in order to serve as a unidirectional
+ heartbeat for the session.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setBatchingAllowed(boolean)">setBatchingAllowed</a></span>&#8203;(boolean&nbsp;allowed)</code></th>
+<td class="colLast">
+<div class="block">Indicate to the implementation that it is allowed to batch outgoing messages
+ before sending.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="sendPing(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendPing</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;sendPing&#8203;(java.nio.ByteBuffer&nbsp;applicationData)
+              throws java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/RemoteEndpoint.html#sendPing(java.nio.ByteBuffer)">RemoteEndpoint</a></code></span></div>
+<div class="block">Send a Ping message containing the given application data to the remote endpoint. The corresponding Pong message may be picked
+ up using the MessageHandler.Pong handler.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/RemoteEndpoint.html#sendPing(java.nio.ByteBuffer)">sendPing</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>applicationData</code> - the data to be carried in the ping request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if the ping failed to be sent</dd>
+</dl>
+</li>
+</ul>
+<a id="sendPong(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendPong</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;sendPong&#8203;(java.nio.ByteBuffer&nbsp;applicationData)
+              throws java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/RemoteEndpoint.html#sendPong(java.nio.ByteBuffer)">RemoteEndpoint</a></code></span></div>
+<div class="block">Allows the developer to send an unsolicited Pong message containing the given application
+ data in order to serve as a unidirectional
+ heartbeat for the session.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/RemoteEndpoint.html#sendPong(java.nio.ByteBuffer)">sendPong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>applicationData</code> - the application data to be carried in the pong response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if the pong failed to be sent</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="setBatchingAllowed(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBatchingAllowed</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setBatchingAllowed&#8203;(boolean&nbsp;allowed)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/RemoteEndpoint.html#setBatchingAllowed(boolean)">RemoteEndpoint</a></code></span></div>
+<div class="block">Indicate to the implementation that it is allowed to batch outgoing messages
+ before sending. Not all implementations support batching of outgoing messages.
+ The default mode for RemoteEndpoints is false. If the developer
+ has indicated that batching of outgoing
+ messages is permitted, then the developer must call flushBatch() in order to be
+ sure that all the messages passed into the send methods of this RemoteEndpoint
+ are sent. 
+ When batching is allowed, the implementations send operations are considered
+ to have completed if the message has been written to the local batch, in 
+ the case when there is still room in the batch for the message, and are considered
+ to have completed if the batch has been send to the peer and the remainder
+ written to the new batch, in the case when
+ writing the message causes the batch to need to be sent. The blocking
+ and asynchronous send methods use this notion of completion in order
+ to complete blocking calls, notify SendHandlers and complete Futures respectively.
+ When batching is allowed, if the developer has called send methods
+ on this RemoteEndpoint without calling flushBatch(), then the implementation
+ may not have sent all the messages the developer has asked to be sent. If
+ the parameter value is false and the implementation has a batch of unsent messages,
+ then the implementation must immediately send the batch of unsent messages.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/RemoteEndpoint.html#setBatchingAllowed(boolean)">setBatchingAllowed</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>allowed</code> - whether the implementation is allowed to batch messages.</dd>
+</dl>
+</li>
+</ul>
+<a id="getBatchingAllowed()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBatchingAllowed</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;getBatchingAllowed()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/RemoteEndpoint.html#getBatchingAllowed()">RemoteEndpoint</a></code></span></div>
+<div class="block">Return whether the implementation is allowed to batch outgoing messages
+ before sending. The default mode for RemoteEndpoints is false. The value
+ may be changed by calling <a href="../../../../javax/websocket/RemoteEndpoint.html#setBatchingAllowed(boolean)"><code>setBatchingAllowed</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/RemoteEndpoint.html#getBatchingAllowed()">getBatchingAllowed</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="flushBatch()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flushBatch</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;flushBatch()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/RemoteEndpoint.html#flushBatch()">RemoteEndpoint</a></code></span></div>
+<div class="block">This method is only used when batching is allowed for this RemoteEndpint. Calling
+ this method forces the implementation to send any unsent messages it has been batching.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/RemoteEndpoint.html#flushBatch()">flushBatch</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="close(javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;close&#8203;(<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;cr)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusRemoteEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html
new file mode 100644
index 00000000..c6526705
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html
@@ -0,0 +1,477 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusServerEndpointConfig.Builder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusServerEndpointConfig.Builder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusServerEndpointConfig.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class TyrusServerEndpointConfig.Builder" class="title">Class TyrusServerEndpointConfig.Builder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusServerEndpointConfig.Builder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a></dd>
+</dl>
+<hr>
+<pre>public static final class <span class="typeNameLabel">TyrusServerEndpointConfig.Builder</span>
+extends java.lang.Object</pre>
+<div class="block">The TyrusServerEndpointConfig.Builder is a class used for creating
+ <a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core"><code>TyrusServerEndpointConfig.Builder</code></a> objects for the purposes of
+ deploying a server endpoint.
+ <p>
+ Here are some examples:
+ <p>
+ Building a plain configuration for an endpoint with just a path.
+ <p>
+ <code>ServerEndpointConfig config = TyrusServerEndpointConfig.Builder.create(ProgrammaticEndpoint.class,
+ "/foo").build();</code>
+ <p>
+ Building a configuration with no subprotocols, limited number of sessions (100) and a custom configurator.
+ <pre><code>
+ ServerEndpointConfig config = TyrusServerEndpointConfig.Builder.create(ProgrammaticEndpoint.class, "/bar")
+         .subprotocols(subprotocols)
+         .maxSessions(100)
+         .configurator(new MyServerConfigurator())
+         .build();
+ </code></pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builds the configuration object using the current attributes
+ that have been set on this builder object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configurator(javax.websocket.server.ServerEndpointConfig.Configurator)">configurator</a></span>&#8203;(<a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;serverEndpointConfigurator)</code></th>
+<td class="colLast">
+<div class="block">Sets the custom configurator to use on the configuration
+ object built by this builder.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(java.lang.Class,java.lang.String)">create</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass,
+      java.lang.String&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Creates the builder with the mandatory information of the endpoint class
+ (programmatic or annotated), the relative URI or URI-template to use,
+ and with no subprotocols, extensions, encoders, decoders or custom
+ configurator.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decoders(java.util.List)">decoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoders)</code></th>
+<td class="colLast">
+<div class="block">Sets the decoder implementation classes to use in the configuration.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encoders(java.util.List)">encoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;&nbsp;encoders)</code></th>
+<td class="colLast">
+<div class="block">Sets the list of encoder implementation classes for this builder.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#extensions(java.util.List)">extensions</a></span>&#8203;(java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Sets the extensions to use in the configuration.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maxSessions(int)">maxSessions</a></span>&#8203;(int&nbsp;maxSessions)</code></th>
+<td class="colLast">
+<div class="block">Sets maximal number of open sessions.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#subprotocols(java.util.List)">subprotocols</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;subprotocols)</code></th>
+<td class="colLast">
+<div class="block">Sets the subprotocols to use in the configuration.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="create(java.lang.Class,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">public static&nbsp;<a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a>&nbsp;create&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass,
+                                                       java.lang.String&nbsp;path)</pre>
+<div class="block">Creates the builder with the mandatory information of the endpoint class
+ (programmatic or annotated), the relative URI or URI-template to use,
+ and with no subprotocols, extensions, encoders, decoders or custom
+ configurator.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - the class of the endpoint to configure</dd>
+<dd><code>path</code> - The URI or URI template where the endpoint will be deployed.
+                      A trailing "/" will be ignored and the path must begin with /.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new instance of TyrusServerEndpointConfig.Builder .</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a>&nbsp;build()</pre>
+<div class="block">Builds the configuration object using the current attributes
+ that have been set on this builder object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new TyrusServerEndpointConfig object.</dd>
+</dl>
+</li>
+</ul>
+<a id="encoders(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encoders</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a>&nbsp;encoders&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;&nbsp;encoders)</pre>
+<div class="block">Sets the list of encoder implementation classes for this builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>encoders</code> - the encoders.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="decoders(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decoders</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a>&nbsp;decoders&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoders)</pre>
+<div class="block">Sets the decoder implementation classes to use in the configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decoders</code> - the decoders.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="subprotocols(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>subprotocols</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a>&nbsp;subprotocols&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;subprotocols)</pre>
+<div class="block">Sets the subprotocols to use in the configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>subprotocols</code> - the subprotocols.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="extensions(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>extensions</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a>&nbsp;extensions&#8203;(java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</pre>
+<div class="block">Sets the extensions to use in the configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>extensions</code> - the extensions to use.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="configurator(javax.websocket.server.ServerEndpointConfig.Configurator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>configurator</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a>&nbsp;configurator&#8203;(<a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;serverEndpointConfigurator)</pre>
+<div class="block">Sets the custom configurator to use on the configuration
+ object built by this builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serverEndpointConfigurator</code> - the configurator.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder instance</dd>
+</dl>
+</li>
+</ul>
+<a id="maxSessions(int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>maxSessions</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a>&nbsp;maxSessions&#8203;(int&nbsp;maxSessions)</pre>
+<div class="block">Sets maximal number of open sessions.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>maxSessions</code> - maximal number of open session.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>this builder instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusServerEndpointConfig.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusServerEndpointConfig.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusServerEndpointConfig.html
new file mode 100644
index 00000000..5baf3e7a
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusServerEndpointConfig.html
@@ -0,0 +1,322 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusServerEndpointConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusServerEndpointConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusServerEndpointConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Interface TyrusServerEndpointConfig" class="title">Interface TyrusServerEndpointConfig</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></code>, <code><a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">TyrusServerEndpointConfig</span>
+extends <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></pre>
+<div class="block">Configuration <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> enhanced
+ to offer tyrus specific attributes like maxSessions.
+ Declarative way to define maxSessions is also available using
+ annotation <a href="MaxSessions.html" title="annotation in org.glassfish.tyrus.core"><code>MaxSessions</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Ondrej Kosatka (ondrej.kosatka at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="MaxSessions.html" title="annotation in org.glassfish.tyrus.core"><code>MaxSessions</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">The TyrusServerEndpointConfig.Builder is a class used for creating
+ <a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core"><code>TyrusServerEndpointConfig.Builder</code></a> objects for the purposes of
+ deploying a server endpoint.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.server.ServerEndpointConfig">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.server.<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></h3>
+<code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxSessions()">getMaxSessions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns configured maximal number of open sessions.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.EndpointConfig">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a></h3>
+<code><a href="../../../../javax/websocket/EndpointConfig.html#getDecoders()">getDecoders</a>, <a href="../../../../javax/websocket/EndpointConfig.html#getEncoders()">getEncoders</a>, <a href="../../../../javax/websocket/EndpointConfig.html#getUserProperties()">getUserProperties</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.server.ServerEndpointConfig">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.server.<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a></h3>
+<code><a href="../../../../javax/websocket/server/ServerEndpointConfig.html#getConfigurator()">getConfigurator</a>, <a href="../../../../javax/websocket/server/ServerEndpointConfig.html#getEndpointClass()">getEndpointClass</a>, <a href="../../../../javax/websocket/server/ServerEndpointConfig.html#getExtensions()">getExtensions</a>, <a href="../../../../javax/websocket/server/ServerEndpointConfig.html#getPath()">getPath</a>, <a href="../../../../javax/websocket/server/ServerEndpointConfig.html#getSubprotocols()">getSubprotocols</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getMaxSessions()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMaxSessions</h4>
+<pre class="methodSignature">int&nbsp;getMaxSessions()</pre>
+<div class="block">Returns configured maximal number of open sessions.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>tne maximal number of open sessions.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusServerEndpointConfig.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html
new file mode 100644
index 00000000..84b267cc
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html
@@ -0,0 +1,503 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusServerEndpointConfigurator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusServerEndpointConfigurator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusServerEndpointConfigurator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class TyrusServerEndpointConfigurator" class="title">Class TyrusServerEndpointConfigurator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">javax.websocket.server.ServerEndpointConfig.Configurator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusServerEndpointConfigurator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">TyrusServerEndpointConfigurator</span>
+extends <a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></pre>
+<div class="block">Tyrus' implementation of <a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Configurator</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">TyrusServerEndpointConfigurator</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkOrigin(java.lang.String)">checkOrigin</a></span>&#8203;(java.lang.String&nbsp;originHeaderValue)</code></th>
+<td class="colLast">
+<div class="block">Check the value of the Origin header (<a href="http://tools.ietf.org/html/rfc6454">See Origin Header</a>) the client passed during the opening
+ handshake.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEndpointInstance(java.lang.Class)">getEndpointInstance</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;endpointClass)</code></th>
+<td class="colLast">
+<div class="block">This method is called by the container each time a new client
+ connects to the logical endpoint this configurator configures.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNegotiatedExtensions(java.util.List,java.util.List)">getNegotiatedExtensions</a></span>&#8203;(java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;installed,
+                       java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;requested)</code></th>
+<td class="colLast">
+<div class="block">Return the ordered list of extensions that t server endpoint will support 
+ given the requested extension list passed in, the empty list if none.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNegotiatedSubprotocol(java.util.List,java.util.List)">getNegotiatedSubprotocol</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;supported,
+                        java.util.List&lt;java.lang.String&gt;&nbsp;requested)</code></th>
+<td class="colLast">
+<div class="block">Return the subprotocol the server endpoint has chosen from the requested
+ list supplied by a client who wishes to connect, or none if there wasn't one
+ this server endpoint liked.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">modifyHandshake</a></span>&#8203;(<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;sec,
+               <a href="../../../../javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a>&nbsp;request,
+               <a href="../../../../javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Called by the container after it has formulated a handshake response resulting from
+ a well-formed handshake request.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TyrusServerEndpointConfigurator</h4>
+<pre>public&nbsp;TyrusServerEndpointConfigurator()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getNegotiatedSubprotocol(java.util.List,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNegotiatedSubprotocol</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getNegotiatedSubprotocol&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;supported,
+                                                 java.util.List&lt;java.lang.String&gt;&nbsp;requested)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html#getNegotiatedSubprotocol(java.util.List,java.util.List)">ServerEndpointConfig.Configurator</a></code></span></div>
+<div class="block">Return the subprotocol the server endpoint has chosen from the requested
+ list supplied by a client who wishes to connect, or none if there wasn't one
+ this server endpoint liked. See
+ <a href="http://tools.ietf.org/html/rfc6455#section-4.2.2">Sending the 
+ Server's Opening Handshake</a>. Subclasses may provide custom algorithms 
+ based on other factors.
+
+ <p>The default platform implementation of this method returns the first
+ subprotocol in the list sent by the client that the server supports, 
+ or the empty string if there isn't one.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html#getNegotiatedSubprotocol(java.util.List,java.util.List)">getNegotiatedSubprotocol</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>supported</code> - the subprotocols supported by the server endpoint</dd>
+<dd><code>requested</code> - the requested subprotocols from the client endpoint</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the negotiated subprotocol or the empty string if there isn't one.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNegotiatedExtensions(java.util.List,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNegotiatedExtensions</h4>
+<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;getNegotiatedExtensions&#8203;(java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;installed,
+                                                         java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;requested)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html#getNegotiatedExtensions(java.util.List,java.util.List)">ServerEndpointConfig.Configurator</a></code></span></div>
+<div class="block">Return the ordered list of extensions that t server endpoint will support 
+ given the requested extension list passed in, the empty list if none. See 
+ <a href="http://tools.ietf.org/html/rfc6455#section-9.1">Negotiating Extensions</a>
+
+ <p>The default platform implementation of this method returns a list
+ containing all of the requested extensions passed to this method that 
+ it supports, using the order in the requested extensions, the empty 
+ list if none.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html#getNegotiatedExtensions(java.util.List,java.util.List)">getNegotiatedExtensions</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>installed</code> - the installed extensions on the implementation.</dd>
+<dd><code>requested</code> - the requested extensions, in the order they were 
+ requested by the client</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list of extensions negotiated, the empty list if none.</dd>
+</dl>
+</li>
+</ul>
+<a id="checkOrigin(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkOrigin</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;checkOrigin&#8203;(java.lang.String&nbsp;originHeaderValue)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html#checkOrigin(java.lang.String)">ServerEndpointConfig.Configurator</a></code></span></div>
+<div class="block">Check the value of the Origin header (<a href="http://tools.ietf.org/html/rfc6454">See Origin Header</a>) the client passed during the opening
+ handshake.
+
+ <p>The platform default implementation of this method makes a check of the
+ validity of the Origin header sent along with 
+ the opening handshake following the recommendation at: 
+ <a href="http://tools.ietf.org/html/rfc6455#section-4.2">Sending 
+ the Server's Opening Handshake</a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html#checkOrigin(java.lang.String)">checkOrigin</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>originHeaderValue</code> - the value of the origin header passed
+ by the client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether the check passed or not</dd>
+</dl>
+</li>
+</ul>
+<a id="modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>modifyHandshake</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;modifyHandshake&#8203;(<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;sec,
+                            <a href="../../../../javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a>&nbsp;request,
+                            <a href="../../../../javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>&nbsp;response)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html#modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">ServerEndpointConfig.Configurator</a></code></span></div>
+<div class="block">Called by the container after it has formulated a handshake response resulting from
+ a well-formed handshake request. The container has already 
+ checked that this configuration has a matching URI, determined the 
+ validity of the origin using the checkOrigin method, and filled
+ out the negotiated subprotocols and extensions based on this configuration.
+ Custom configurations may override this method in order to inspect
+ the request parameters and modify the handshake response that the server has formulated.
+ and the URI checking also.
+
+ <p>If the developer does not override this method, no further
+ modification of the request and response are made by the implementation.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html#modifyHandshake(javax.websocket.server.ServerEndpointConfig,javax.websocket.server.HandshakeRequest,javax.websocket.HandshakeResponse)">modifyHandshake</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sec</code> - the configuration object involved in the handshake</dd>
+<dd><code>request</code> - the opening handshake request.</dd>
+<dd><code>response</code> - the proposed opening handshake response</dd>
+</dl>
+</li>
+</ul>
+<a id="getEndpointInstance(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEndpointInstance</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;getEndpointInstance&#8203;(java.lang.Class&lt;T&gt;&nbsp;endpointClass)
+                          throws java.lang.InstantiationException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html#getEndpointInstance(java.lang.Class)">ServerEndpointConfig.Configurator</a></code></span></div>
+<div class="block">This method is called by the container each time a new client
+ connects to the logical endpoint this configurator configures.
+ Developers may override this method to control instantiation of
+ endpoint instances in order to customize the initialization
+ of the endpoint instance, or manage them in some other way.
+ If the developer overrides this method, services like
+ dependency injection that are otherwise supported, for example, when
+ the implementation is part of the Java EE platform
+ may not be available. 
+ The platform default implementation of this method returns a new
+ endpoint instance per call, thereby ensuring that there is one
+ endpoint instance per client, the default deployment cardinality.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html#getEndpointInstance(java.lang.Class)">getEndpointInstance</a></code>&nbsp;in class&nbsp;<code><a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the endpoint</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - the class of the endpoint</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an instance of the endpoint that will handle all
+ interactions from a new client.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.InstantiationException</code> - if there was an error producing the
+ endpoint instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusServerEndpointConfigurator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusSession.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusSession.html
new file mode 100644
index 00000000..01b99063
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusSession.html
@@ -0,0 +1,1281 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusSession (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusSession (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":42,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusSession.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class TyrusSession" class="title">Class TyrusSession</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusSession</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Closeable</code>, <code>java.lang.AutoCloseable</code>, <code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code>, <code><a href="cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">TyrusSession</span>
+extends java.lang.Object
+implements <a href="cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></pre>
+<div class="block">Implementation of the <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Danny Coward (danny.coward at oracle.com), Stepan Kopriva (stepan.kopriva at oracle.com), Martin Matula (martin.matula at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../../../../javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../../../../javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Register to handle to incoming messages in this conversation.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler</a></span>&#8203;(<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)"><code>addMessageHandler(Class, javax.websocket.MessageHandler.Whole)</code></a> or <a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)"><code>addMessageHandler(Class, javax.websocket.MessageHandler.Partial)</code></a></div>
+</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.util.Map&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>,&#8203;java.util.concurrent.Future&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#broadcast(java.lang.String)">broadcast</a></span>&#8203;(java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Broadcasts text message to all connected clients.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>,&#8203;java.util.concurrent.Future&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#broadcast(java.nio.ByteBuffer)">broadcast</a></span>&#8203;(java.nio.ByteBuffer&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Broadcasts binary message to all connected clients, including remote sessions (if any).</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Close the current conversation with a normal status code and no reason phrase.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Close the current conversation, giving a reason for the closure.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAllSessions()">getAllSessions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get set of all sessions opened to the same endpoint.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAsyncRemote()">getAsyncRemote</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a reference a RemoteEndpoint object representing the peer of this conversation
+ that is able to send messages asynchronously to the peer.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBasicRemote()">getBasicRemote</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a reference a RemoteEndpoint object representing the peer of this conversation
+ that is able to send messages synchronously to the peer.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContainer()">getContainer</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the container that this session is part of.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDistributedProperties()">getDistributedProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get distributed properties.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeartbeatInterval()">getHeartbeatInterval</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return an interval in milliseconds between scheduled periodic Pong messages.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getId()">getId</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a string containing the unique identifier assigned to this session.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxBinaryMessageBufferSize()">getMaxBinaryMessageBufferSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The maximum length of incoming binary messages that this Session can buffer.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxIdleTimeout()">getMaxIdleTimeout</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the number of milliseconds before this conversation may be closed by the
+ container if it is inactive, i.e.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxTextMessageBufferSize()">getMaxTextMessageBufferSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The maximum length of incoming text messages that this Session can buffer.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMessageHandlers()">getMessageHandlers</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return an unmodifiable copy of the set of MessageHandlers for this Session.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNegotiatedExtensions()">getNegotiatedExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the list of extensions currently in use for this conversation.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNegotiatedSubprotocol()">getNegotiatedSubprotocol</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the sub protocol agreed during the websocket handshake for this conversation.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOpenSessions()">getOpenSessions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a copy of the Set of all the open web socket sessions that represent
+ connections to the same endpoint to which this session represents a connection.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPathParameters()">getPathParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return a map of the path parameter names and values used associated with the
+ request this session was opened under.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProtocolVersion()">getProtocolVersion</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the version of the websocket protocol currently being used.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueryString()">getQueryString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the query string associated with the request this session
+ was opened under.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteAddr()">getRemoteAddr</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the Internet Protocol (IP) address of the client or last proxy that sent the request.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteSessions()">getRemoteSessions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get set of remote sessions.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestParameterMap()">getRequestParameterMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the request parameters associated with the request this session
+ was opened under.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>java.net.URI</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestURI()">getRequestURI</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the URI under which this session was opened, including
+ the query string if there is one.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>java.security.Principal</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUserPrincipal()">getUserPrincipal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the authenticated user for this Session or <code>null</code> if no user is authenticated for this session.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUserProperties()">getUserProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">While the session is open, this method returns a Map that the developer may
+ use to store application specific information relating to this session
+ instance.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isOpen()">isOpen</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return true if and only if the underlying socket is open.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSecure()">isSecure</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return true if and only if the underlying socket is using a secure transport.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler</a></span>&#8203;(<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Remove the given MessageHandler from the set belonging to this session.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setHeartbeatInterval(long)">setHeartbeatInterval</a></span>&#8203;(long&nbsp;heartbeatInterval)</code></th>
+<td class="colLast">
+<div class="block">Set an interval in milliseconds between scheduled periodic Pong messages.</div>
+</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxBinaryMessageBufferSize(int)">setMaxBinaryMessageBufferSize</a></span>&#8203;(int&nbsp;maxBinaryMessageBufferSize)</code></th>
+<td class="colLast">
+<div class="block">Sets the maximum length of incoming binary messages that this Session can buffer.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxIdleTimeout(long)">setMaxIdleTimeout</a></span>&#8203;(long&nbsp;maxIdleTimeout)</code></th>
+<td class="colLast">
+<div class="block">Set the non-zero number of milliseconds before this session will be closed by the
+ container if it is inactive, ie no messages are either sent or received.</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxTextMessageBufferSize(int)">setMaxTextMessageBufferSize</a></span>&#8203;(int&nbsp;maxTextMessageBufferSize)</code></th>
+<td class="colLast">
+<div class="block">Sets the maximum length of incoming text messages that this Session can buffer.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getProtocolVersion()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocolVersion</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getProtocolVersion()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getProtocolVersion()">Session</a></code></span></div>
+<div class="block">Returns the version of the websocket protocol currently being used. This is taken
+ as the value of the Sec-WebSocket-Version header used in the opening handshake. i.e. "13".</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getProtocolVersion()">getProtocolVersion</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the protocol version.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNegotiatedSubprotocol()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNegotiatedSubprotocol</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getNegotiatedSubprotocol()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getNegotiatedSubprotocol()">Session</a></code></span></div>
+<div class="block">Return the sub protocol agreed during the websocket handshake for this conversation.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getNegotiatedSubprotocol()">getNegotiatedSubprotocol</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the negotiated subprotocol, or the empty string if there isn't one.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAsyncRemote()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAsyncRemote</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a>&nbsp;getAsyncRemote()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getAsyncRemote()">Session</a></code></span></div>
+<div class="block">Return a reference a RemoteEndpoint object representing the peer of this conversation
+ that is able to send messages asynchronously to the peer.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getAsyncRemote()">getAsyncRemote</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the remote endpoint.</dd>
+</dl>
+</li>
+</ul>
+<a id="getBasicRemote()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBasicRemote</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a>&nbsp;getBasicRemote()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getBasicRemote()">Session</a></code></span></div>
+<div class="block">Return a reference a RemoteEndpoint object representing the peer of this conversation
+ that is able to send messages synchronously to the peer.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getBasicRemote()">getBasicRemote</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the remote endpoint.</dd>
+</dl>
+</li>
+</ul>
+<a id="isOpen()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#isOpen()">Session</a></code></span></div>
+<div class="block">Return true if and only if the underlying socket is open.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#isOpen()">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether the session is active.</dd>
+</dl>
+</li>
+</ul>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;close()
+           throws java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#close()">Session</a></code></span></div>
+<div class="block">Close the current conversation with a normal status code and no reason phrase.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.lang.AutoCloseable</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.io.Closeable</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#close()">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there was a connection error closing the connection.</dd>
+</dl>
+</li>
+</ul>
+<a id="close(javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;close&#8203;(<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)
+           throws java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#close(javax.websocket.CloseReason)">Session</a></code></span></div>
+<div class="block">Close the current conversation, giving a reason for the closure. The close
+ call causes the implementation to attempt notify the client of the close as
+ soon as it can. This may cause the sending of unsent messages immediately
+ prior to the close notification. After the close notification has been sent
+ the implementation notifies the endpoint's onClose method. Note the websocket
+ specification defines the
+ acceptable uses of status codes and reason phrases. If the application cannot
+ determine a suitable close code to use for the closeReason, it is recommended
+ to use <a href="../../../../javax/websocket/CloseReason.CloseCodes.html#NO_STATUS_CODE"><code>CloseReason.CloseCodes.NO_STATUS_CODE</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#close(javax.websocket.CloseReason)">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>closeReason</code> - the reason for the closure.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there was a connection error closing the connection</dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxBinaryMessageBufferSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxBinaryMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getMaxBinaryMessageBufferSize()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getMaxBinaryMessageBufferSize()">Session</a></code></span></div>
+<div class="block">The maximum length of incoming binary messages that this Session can buffer. If
+ the implementation receives a binary message that it cannot buffer because it
+ is too large, it must close the session with a close code of <a href="../../../../javax/websocket/CloseReason.CloseCodes.html#TOO_BIG"><code>CloseReason.CloseCodes.TOO_BIG</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getMaxBinaryMessageBufferSize()">getMaxBinaryMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum binary message size that can be buffered.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMaxBinaryMessageBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxBinaryMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setMaxBinaryMessageBufferSize&#8203;(int&nbsp;maxBinaryMessageBufferSize)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#setMaxBinaryMessageBufferSize(int)">Session</a></code></span></div>
+<div class="block">Sets the maximum length of incoming binary messages that this Session can buffer.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#setMaxBinaryMessageBufferSize(int)">setMaxBinaryMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>maxBinaryMessageBufferSize</code> - the maximum length.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxTextMessageBufferSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxTextMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getMaxTextMessageBufferSize()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getMaxTextMessageBufferSize()">Session</a></code></span></div>
+<div class="block">The maximum length of incoming text messages that this Session can buffer. If
+ the implementation receives a text message that it cannot buffer because it
+ is too large, it must close the session with a close code of <a href="../../../../javax/websocket/CloseReason.CloseCodes.html#TOO_BIG"><code>CloseReason.CloseCodes.TOO_BIG</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getMaxTextMessageBufferSize()">getMaxTextMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum text message size that can be buffered.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMaxTextMessageBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxTextMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setMaxTextMessageBufferSize&#8203;(int&nbsp;maxTextMessageBufferSize)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#setMaxTextMessageBufferSize(int)">Session</a></code></span></div>
+<div class="block">Sets the maximum length of incoming text messages that this Session can buffer.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#setMaxTextMessageBufferSize(int)">setMaxTextMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>maxTextMessageBufferSize</code> - the maximum length.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOpenSessions()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOpenSessions</h4>
+<pre class="methodSignature">public&nbsp;java.util.Set&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;&nbsp;getOpenSessions()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getOpenSessions()">Session</a></code></span></div>
+<div class="block">Return a copy of the Set of all the open web socket sessions that represent
+ connections to the same endpoint to which this session represents a connection.
+ The Set includes the session this method is called on. These
+ sessions may not still be open at any point after the return of this method. For
+ example, iterating over the set at a later time may yield one or more closed sessions. Developers
+ should use session.isOpen() to check.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getOpenSessions()">getOpenSessions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the set of sessions, open at the time of return.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRemoteSessions()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteSessions</h4>
+<pre class="methodSignature">public&nbsp;java.util.Set&lt;<a href="cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a>&gt;&nbsp;getRemoteSessions()</pre>
+<div class="block">Get set of remote sessions.
+ <p>
+ Remote sessions are websocket sessions which are bound to another node in the cluster.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>set of remote sessions or empty set, when not running in cluster environment.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAllSessions()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAllSessions</h4>
+<pre class="methodSignature">public&nbsp;java.util.Set&lt;<a href="cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a>&gt;&nbsp;getAllSessions()</pre>
+<div class="block">Get set of all sessions opened to the same endpoint.
+ <p>
+ Set returned from this method contains all "local" and <a href="cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>remote</code></a> sessions (if any).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>set of distributed sessions.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getNegotiatedExtensions()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNegotiatedExtensions</h4>
+<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;getNegotiatedExtensions()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getNegotiatedExtensions()">Session</a></code></span></div>
+<div class="block">Return the list of extensions currently in use for this conversation.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getNegotiatedExtensions()">getNegotiatedExtensions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the negotiated extensions.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxIdleTimeout()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxIdleTimeout</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;getMaxIdleTimeout()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getMaxIdleTimeout()">Session</a></code></span></div>
+<div class="block">Return the number of milliseconds before this conversation may be closed by the
+ container if it is inactive, i.e. no messages are either sent or received in that time.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getMaxIdleTimeout()">getMaxIdleTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the timeout in milliseconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMaxIdleTimeout(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxIdleTimeout</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setMaxIdleTimeout&#8203;(long&nbsp;maxIdleTimeout)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#setMaxIdleTimeout(long)">Session</a></code></span></div>
+<div class="block">Set the non-zero number of milliseconds before this session will be closed by the
+ container if it is inactive, ie no messages are either sent or received. A value that is
+ 0 or negative indicates the session will never timeout due to inactivity.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#setMaxIdleTimeout(long)">setMaxIdleTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>maxIdleTimeout</code> - the number of milliseconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="isSecure()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSecure</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isSecure()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#isSecure()">Session</a></code></span></div>
+<div class="block">Return true if and only if the underlying socket is using a secure transport.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#isSecure()">isSecure</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether its using a secure transport.</dd>
+</dl>
+</li>
+</ul>
+<a id="getContainer()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getContainer</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;getContainer()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getContainer()">Session</a></code></span></div>
+<div class="block">Return the container that this session is part of.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getContainer()">getContainer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the container.</dd>
+</dl>
+</li>
+</ul>
+<a id="addMessageHandler(javax.websocket.MessageHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMessageHandler</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;addMessageHandler&#8203;(<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)"><code>addMessageHandler(Class, javax.websocket.MessageHandler.Whole)</code></a> or <a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)"><code>addMessageHandler(Class, javax.websocket.MessageHandler.Partial)</code></a></div>
+</div>
+<div class="block">Register to handle to incoming messages in this conversation. A maximum of one message handler per
+ native websocket message type (text, binary, pong) may be added to each Session. I.e. a maximum
+ of one message handler to handle incoming text messages a maximum of one message handler for
+ handling incoming binary messages, and a maximum of one for handling incoming pong
+ messages. For further details of which message handlers handle which of the native websocket
+ message types please see <a href="../../../../javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket"><code>MessageHandler.Whole</code></a> and <a href="../../../../javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket"><code>MessageHandler.Partial</code></a>.
+ Adding more than one of any one type will result in a runtime exception.
+ <p>
+ This method is not safe to use unless you are providing an anonymous class derived directly
+ from <a href="../../../../javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket"><code>MessageHandler.Whole</code></a> or <a href="../../../../javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket"><code>MessageHandler.Partial</code></a>.
+ In all other cases (Lambda Expressions, more complex inheritance or generic type arrangements),
+ one of the following methods have to be used:
+ <a href="../../../../javax/websocket/Session.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)"><code>Session.addMessageHandler(Class, javax.websocket.MessageHandler.Whole)</code></a> or
+ <a href="../../../../javax/websocket/Session.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)"><code>Session.addMessageHandler(Class, javax.websocket.MessageHandler.Partial)</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>handler</code> - the MessageHandler to be added.</dd>
+</dl>
+</li>
+</ul>
+<a id="addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMessageHandler</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;void&nbsp;addMessageHandler&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                                  <a href="../../../../javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;&nbsp;handler)</pre>
+<div class="block">Register to handle to incoming messages in this conversation. A maximum of one message handler per
+ native websocket message type (text, binary, pong) may be added to each Session. I.e. a maximum
+ of one message handler to handle incoming text messages a maximum of one message handler for
+ handling incoming binary messages, and a maximum of one for handling incoming pong
+ messages. For further details of which message handlers handle which of the native websocket
+ message types please see <a href="../../../../javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket"><code>MessageHandler.Whole</code></a> and <a href="../../../../javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket"><code>MessageHandler.Partial</code></a>.
+ Adding more than one of any one type will result in a runtime exception.
+ <p>
+ See <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> for a usage example.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - type of the message processed by message handler to be registered.</dd>
+<dd><code>handler</code> - the MessageHandler to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalStateException</code> - if there is already a MessageHandler registered for the same native
+                               websocket message type as this handler.</dd>
+</dl>
+</li>
+</ul>
+<a id="addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMessageHandler</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;void&nbsp;addMessageHandler&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                                  <a href="../../../../javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;&nbsp;handler)</pre>
+<div class="block">Register to handle to incoming messages in this conversation. A maximum of one message handler per
+ native websocket message type (text, binary, pong) may be added to each Session. I.e. a maximum
+ of one message handler to handle incoming text messages a maximum of one message handler for
+ handling incoming binary messages, and a maximum of one for handling incoming pong
+ messages. For further details of which message handlers handle which of the native websocket
+ message types please see <a href="../../../../javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket"><code>MessageHandler.Whole</code></a> and <a href="../../../../javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket"><code>MessageHandler.Partial</code></a>.
+ Adding more than one of any one type will result in a runtime exception.
+ <p>
+ See <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> for a usage example.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - type of the message processed by message handler to be registered.</dd>
+<dd><code>handler</code> - the MessageHandler to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalStateException</code> - if there is already a MessageHandler registered for the same native
+                               websocket message type as this handler.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMessageHandlers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMessageHandlers</h4>
+<pre class="methodSignature">public&nbsp;java.util.Set&lt;<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;&nbsp;getMessageHandlers()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getMessageHandlers()">Session</a></code></span></div>
+<div class="block">Return an unmodifiable copy of the set of MessageHandlers for this Session.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getMessageHandlers()">getMessageHandlers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the set of message handlers.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeMessageHandler(javax.websocket.MessageHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeMessageHandler</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;removeMessageHandler&#8203;(<a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#removeMessageHandler(javax.websocket.MessageHandler)">Session</a></code></span></div>
+<div class="block">Remove the given MessageHandler from the set belonging to this session. This method may block
+ if the given handler is processing a message until it is no longer in use.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>handler</code> - the handler to be removed.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestURI()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestURI</h4>
+<pre class="methodSignature">public&nbsp;java.net.URI&nbsp;getRequestURI()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getRequestURI()">Session</a></code></span></div>
+<div class="block">Return the URI under which this session was opened, including
+ the query string if there is one.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getRequestURI()">getRequestURI</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the request URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestParameterMap()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestParameterMap</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;&nbsp;getRequestParameterMap()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getRequestParameterMap()">Session</a></code></span></div>
+<div class="block">Return the request parameters associated with the request this session
+ was opened under.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getRequestParameterMap()">getRequestParameterMap</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the unmodifiable map of the request parameters.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPathParameters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPathParameters</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;getPathParameters()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getPathParameters()">Session</a></code></span></div>
+<div class="block">Return a map of the path parameter names and values used associated with the
+ request this session was opened under.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getPathParameters()">getPathParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the unmodifiable map of path parameters. The key of the map is the parameter name,
+ the values in the map are the parameter values.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUserProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserProperties</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;getUserProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getUserProperties()">Session</a></code></span></div>
+<div class="block">While the session is open, this method returns a Map that the developer may
+ use to store application specific information relating to this session
+ instance. The developer may retrieve information from this Map at any time
+ between the opening of the session and during the onClose() method. But outside
+ that time, any information stored using this Map may no longer be kept by the
+ container. Web socket applications running on distributed implementations of
+ the web container should make any application specific objects stored here
+ java.io.Serializable, or the object may not be recreated after a failover.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getUserProperties()">getUserProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an editable Map of application data.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDistributedProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDistributedProperties</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;getDistributedProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="cluster/DistributedSession.html#getDistributedProperties()">DistributedSession</a></code></span></div>
+<div class="block">Get distributed properties.
+ <p>
+ Values put into this map must be <code>Serializable</code> or serializable by other, implementation-dependent
+ alternative.
+ <p>
+ Content of this map is synchronized among all cluster nodes, so putting an entry on any of the nodes will be
+ visible on all other nodes which have reference to current session (in form of <a href="TyrusSession.html" title="class in org.glassfish.tyrus.core"><code>TyrusSession</code></a> or <a href="cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>).
+ <p>
+ Please note that when not running in the distributed environment, this map behaves similarly to <a href="../../../../javax/websocket/Session.html#getUserProperties()"><code>Session.getUserProperties()</code></a>, so no serialization or deserialization is performed when values are read from or stored to
+ the returned map.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="cluster/DistributedSession.html#getDistributedProperties()">getDistributedProperties</a></code>&nbsp;in interface&nbsp;<code><a href="cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of distributed properties.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="TyrusSession.html" title="class in org.glassfish.tyrus.core"><code>TyrusSession</code></a>, 
+<a href="cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getQueryString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getQueryString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getQueryString()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getQueryString()">Session</a></code></span></div>
+<div class="block">Return the query string associated with the request this session
+ was opened under.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getQueryString()">getQueryString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the query string</dd>
+</dl>
+</li>
+</ul>
+<a id="getId()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getId</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getId()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getId()">Session</a></code></span></div>
+<div class="block">Returns a string containing the unique identifier assigned to this session.
+ The identifier is assigned by the web socket implementation and is implementation dependent.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getId()">getId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the unique identifier for this session instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUserPrincipal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPrincipal</h4>
+<pre class="methodSignature">public&nbsp;java.security.Principal&nbsp;getUserPrincipal()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/Session.html#getUserPrincipal()">Session</a></code></span></div>
+<div class="block">Return the authenticated user for this Session or <code>null</code> if no user is authenticated for this session.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/Session.html#getUserPrincipal()">getUserPrincipal</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the user principal.</dd>
+</dl>
+</li>
+</ul>
+<a id="broadcast(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>broadcast</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>,&#8203;java.util.concurrent.Future&lt;?&gt;&gt;&nbsp;broadcast&#8203;(java.lang.String&nbsp;message)</pre>
+<div class="block">Broadcasts text message to all connected clients.
+ <p>
+ The broadcast can be executed in parallel, which can be enabled by setting
+ <a href="TyrusWebSocketEngine.html#PARALLEL_BROADCAST_ENABLED"><code>TyrusWebSocketEngine.PARALLEL_BROADCAST_ENABLED</code></a>
+ to <code>true</code> in server properties.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - message to be broadcasted.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of local sessions and futures for user to get the information about status of the message.</dd>
+</dl>
+</li>
+</ul>
+<a id="broadcast(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>broadcast</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>,&#8203;java.util.concurrent.Future&lt;?&gt;&gt;&nbsp;broadcast&#8203;(java.nio.ByteBuffer&nbsp;message)</pre>
+<div class="block">Broadcasts binary message to all connected clients, including remote sessions (if any).
+ <p>
+ The broadcast can be executed in parallel, which can be enabled by setting
+ <a href="TyrusWebSocketEngine.html#PARALLEL_BROADCAST_ENABLED"><code>TyrusWebSocketEngine.PARALLEL_BROADCAST_ENABLED</code></a>
+ to <code>true</code> in server properties.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - message to be broadcasted.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of local sessions and futures for user to get the information about status of the message.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeartbeatInterval()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeartbeatInterval</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;getHeartbeatInterval()</pre>
+<div class="block">Return an interval in milliseconds between scheduled periodic Pong messages.
+ A negative value or 0 means that sending of periodic Pong messages is not turned on.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>heartbeatInterval interval between periodic pong messages in milliseconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="setHeartbeatInterval(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setHeartbeatInterval</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setHeartbeatInterval&#8203;(long&nbsp;heartbeatInterval)</pre>
+<div class="block">Set an interval in milliseconds between scheduled periodic Pong messages.
+ Setting the interval to a negative value or 0 will cancel sending of periodic Pong messages.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>heartbeatInterval</code> - interval between periodic Pong messages in milliseconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getRemoteAddr()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getRemoteAddr</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getRemoteAddr()</pre>
+<div class="block">Get the Internet Protocol (IP) address of the client or last proxy that sent the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a <code>String</code> containing the IP address of the client that sent the request or <code>null</code> when
+ method is called on client-side.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusSession.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusUpgradeResponse.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusUpgradeResponse.html
new file mode 100644
index 00000000..f55d9e93
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusUpgradeResponse.html
@@ -0,0 +1,450 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusUpgradeResponse (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusUpgradeResponse (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusUpgradeResponse.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class TyrusUpgradeResponse" class="title">Class TyrusUpgradeResponse</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">org.glassfish.tyrus.spi.UpgradeResponse</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusUpgradeResponse</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">TyrusUpgradeResponse</span>
+extends <a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></pre>
+<div class="block">HTTP response representation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.spi.UpgradeResponse">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.spi.<a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></h3>
+<code><a href="../spi/UpgradeResponse.html#LOCATION">LOCATION</a>, <a href="../spi/UpgradeResponse.html#RETRY_AFTER">RETRY_AFTER</a>, <a href="../spi/UpgradeResponse.html#TRACING_HEADER_PREFIX">TRACING_HEADER_PREFIX</a>, <a href="../spi/UpgradeResponse.html#WWW_AUTHENTICATE">WWW_AUTHENTICATE</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.javax.websocket.HandshakeResponse">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;javax.websocket.<a href="../../../../javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></h3>
+<code><a href="../../../../javax/websocket/HandshakeResponse.html#SEC_WEBSOCKET_ACCEPT">SEC_WEBSOCKET_ACCEPT</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">TyrusUpgradeResponse</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get HTTP headers.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReasonPhrase()">getReasonPhrase</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get HTTP reason phrase.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatus()">getStatus</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get HTTP status.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setReasonPhrase(java.lang.String)">setReasonPhrase</a></span>&#8203;(java.lang.String&nbsp;reasonPhrase)</code></th>
+<td class="colLast">
+<div class="block">Set HTTP reason phrase.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStatus(int)">setStatus</a></span>&#8203;(int&nbsp;statusCode)</code></th>
+<td class="colLast">
+<div class="block">Set HTTP status.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.spi.UpgradeResponse">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.spi.<a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></h3>
+<code><a href="../spi/UpgradeResponse.html#getFirstHeaderValue(java.lang.String)">getFirstHeaderValue</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TyrusUpgradeResponse</h4>
+<pre>public&nbsp;TyrusUpgradeResponse()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getStatus()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getStatus()</pre>
+<div class="block">Get HTTP status.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/UpgradeResponse.html#getStatus()">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>HTTP status.</dd>
+</dl>
+</li>
+</ul>
+<a id="getReasonPhrase()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReasonPhrase</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getReasonPhrase()</pre>
+<div class="block">Get HTTP reason phrase.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>reason phrase.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get HTTP headers.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>HTTP headers.</dd>
+</dl>
+</li>
+</ul>
+<a id="setStatus(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStatus</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setStatus&#8203;(int&nbsp;statusCode)</pre>
+<div class="block">Set HTTP status.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/UpgradeResponse.html#setStatus(int)">setStatus</a></code>&nbsp;in class&nbsp;<code><a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>statusCode</code> - status code to be set.</dd>
+</dl>
+</li>
+</ul>
+<a id="setReasonPhrase(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setReasonPhrase</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setReasonPhrase&#8203;(java.lang.String&nbsp;reasonPhrase)</pre>
+<div class="block">Set HTTP reason phrase.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/UpgradeResponse.html#setReasonPhrase(java.lang.String)">setReasonPhrase</a></code>&nbsp;in class&nbsp;<code><a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>reasonPhrase</code> - reason phrase to be set.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusUpgradeResponse.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusWebSocket.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusWebSocket.html
new file mode 100644
index 00000000..3125066b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusWebSocket.html
@@ -0,0 +1,1076 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusWebSocket (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusWebSocket (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":42,"i13":42,"i14":10,"i15":42,"i16":10,"i17":42,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":42,"i24":42,"i25":10,"i26":42,"i27":10,"i28":10,"i29":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusWebSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class TyrusWebSocket" class="title">Class TyrusWebSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusWebSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">TyrusWebSocket</span>
+extends java.lang.Object</pre>
+<div class="block">Tyrus representation of web socket connection.
+ <p>
+ Instance of this class represents one bi-directional websocket connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.ProtocolHandler,org.glassfish.tyrus.core.TyrusEndpointWrapper)">TyrusWebSocket</a></span>&#8203;(<a href="ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a>&nbsp;protocolHandler,
+              <a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper)</code></th>
+<td class="colLast">
+<div class="block">Create new instance, set <a href="ProtocolHandler.html" title="class in org.glassfish.tyrus.core"><code>ProtocolHandler</code></a> and register <a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Closes this <a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(int,java.lang.String)">close</a></span>&#8203;(int&nbsp;code,
+     java.lang.String&nbsp;reason)</code></th>
+<td class="colLast">
+<div class="block">Closes this <a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a> using the specified status code and
+ reason.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Closes this <a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a> using the <a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket"><code>CloseReason</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isConnected()">isConnected</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convenience method to determine if this <a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a> instance is connected.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onClose(org.glassfish.tyrus.core.frame.CloseFrame)">onClose</a></span>&#8203;(<a href="frame/CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when the remote endpoint sent a closing frame.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onConnect(org.glassfish.tyrus.spi.UpgradeRequest,java.lang.String,java.util.List,java.lang.String,org.glassfish.tyrus.core.DebugContext)">onConnect</a></span>&#8203;(<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;upgradeRequest,
+         java.lang.String&nbsp;subProtocol,
+         java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions,
+         java.lang.String&nbsp;connectionId,
+         <a href="DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when the opening handshake between both
+ endpoints has been completed.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onFragment(org.glassfish.tyrus.core.frame.BinaryFrame,boolean)">onFragment</a></span>&#8203;(<a href="frame/BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a>&nbsp;frame,
+          boolean&nbsp;last)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when a fragmented binary message has
+ been received.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onFragment(org.glassfish.tyrus.core.frame.TextFrame,boolean)">onFragment</a></span>&#8203;(<a href="frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a>&nbsp;frame,
+          boolean&nbsp;last)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when a fragmented textual message has
+ been received.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onMessage(org.glassfish.tyrus.core.frame.BinaryFrame)">onMessage</a></span>&#8203;(<a href="frame/BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when a binary message has been received.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onMessage(org.glassfish.tyrus.core.frame.TextFrame)">onMessage</a></span>&#8203;(<a href="frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when a text message has been received.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onPing(org.glassfish.tyrus.core.frame.PingFrame)">onPing</a></span>&#8203;(<a href="frame/PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when the remote endpoint has sent a ping frame.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onPong(org.glassfish.tyrus.core.frame.PongFrame)">onPong</a></span>&#8203;(<a href="frame/PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when the remote endpoint has sent a pong
+ frame.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(byte%5B%5D)">sendBinary</a></span>&#8203;(byte[]&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(byte%5B%5D,boolean)">sendBinary</a></span>&#8203;(byte[]&nbsp;bytes,
+          boolean&nbsp;last)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(byte%5B%5D,boolean,org.glassfish.tyrus.spi.WriterInfo)">sendBinary</a></span>&#8203;(byte[]&nbsp;bytes,
+          boolean&nbsp;last,
+          <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Sends a fragment of a complete message.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(byte%5B%5D,int,int,boolean)">sendBinary</a></span>&#8203;(byte[]&nbsp;bytes,
+          int&nbsp;off,
+          int&nbsp;len,
+          boolean&nbsp;last)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(byte%5B%5D,int,int,boolean,org.glassfish.tyrus.spi.WriterInfo)">sendBinary</a></span>&#8203;(byte[]&nbsp;bytes,
+          int&nbsp;off,
+          int&nbsp;len,
+          boolean&nbsp;last,
+          <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Sends a fragment of a complete message.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(byte%5B%5D,javax.websocket.SendHandler)">sendBinary</a></span>&#8203;(byte[]&nbsp;data,
+          <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(byte%5B%5D,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">sendBinary</a></span>&#8203;(byte[]&nbsp;data,
+          <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+          <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Send a binary frame to the remote endpoint.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(byte%5B%5D,org.glassfish.tyrus.spi.WriterInfo)">sendBinary</a></span>&#8203;(byte[]&nbsp;data,
+          <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Send a binary frame to the remote endpoint.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendPing(byte%5B%5D)">sendPing</a></span>&#8203;(byte[]&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Sends a <code>ping</code> frame with the specified payload (if any).</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendPong(byte%5B%5D)">sendPong</a></span>&#8203;(byte[]&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Sends a <code>ping</code> frame with the specified payload (if any).</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendRawFrame(java.nio.ByteBuffer)">sendRawFrame</a></span>&#8203;(java.nio.ByteBuffer&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Send a frame to the remote endpoint.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendText(java.lang.String)">sendText</a></span>&#8203;(java.lang.String&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendText(java.lang.String,boolean)">sendText</a></span>&#8203;(java.lang.String&nbsp;fragment,
+        boolean&nbsp;last)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendText(java.lang.String,boolean,org.glassfish.tyrus.spi.WriterInfo)">sendText</a></span>&#8203;(java.lang.String&nbsp;fragment,
+        boolean&nbsp;last,
+        <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Sends a fragment of a complete message.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendText(java.lang.String,javax.websocket.SendHandler)">sendText</a></span>&#8203;(java.lang.String&nbsp;data,
+        <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendText(java.lang.String,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">sendText</a></span>&#8203;(java.lang.String&nbsp;data,
+        <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+        <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Send a text frame to the remote endpoint.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendText(java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">sendText</a></span>&#8203;(java.lang.String&nbsp;data,
+        <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Send a text frame to the remote endpoint.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setWriteTimeout(long)">setWriteTimeout</a></span>&#8203;(long&nbsp;timeoutMs)</code></th>
+<td class="colLast">
+<div class="block">Sets the timeout for the writing operation.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.ProtocolHandler,org.glassfish.tyrus.core.TyrusEndpointWrapper)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TyrusWebSocket</h4>
+<pre>public&nbsp;TyrusWebSocket&#8203;(<a href="ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a>&nbsp;protocolHandler,
+                      <a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper)</pre>
+<div class="block">Create new instance, set <a href="ProtocolHandler.html" title="class in org.glassfish.tyrus.core"><code>ProtocolHandler</code></a> and register <a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>protocolHandler</code> - used for writing data (sending).</dd>
+<dd><code>endpointWrapper</code> - notifies registered endpoints about incoming events.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="setWriteTimeout(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setWriteTimeout</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setWriteTimeout&#8203;(long&nbsp;timeoutMs)</pre>
+<div class="block">Sets the timeout for the writing operation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeoutMs</code> - timeout in milliseconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="isConnected()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isConnected</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isConnected()</pre>
+<div class="block">Convenience method to determine if this <a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a> instance is connected.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the <a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a> is connected, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="onClose(org.glassfish.tyrus.core.frame.CloseFrame)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onClose</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onClose&#8203;(<a href="frame/CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a>&nbsp;frame)</pre>
+<div class="block">This callback will be invoked when the remote endpoint sent a closing frame.
+ <p>
+ The execution of this method is synchronized using <a href="ProtocolHandler.html" title="class in org.glassfish.tyrus.core"><code>ProtocolHandler</code></a> instance; see TYRUS-385. Prevents
+ multiple invocations, especially from container/user code.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - the close frame from the remote endpoint.</dd>
+</dl>
+</li>
+</ul>
+<a id="onConnect(org.glassfish.tyrus.spi.UpgradeRequest,java.lang.String,java.util.List,java.lang.String,org.glassfish.tyrus.core.DebugContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onConnect</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onConnect&#8203;(<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;upgradeRequest,
+                      java.lang.String&nbsp;subProtocol,
+                      java.util.List&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions,
+                      java.lang.String&nbsp;connectionId,
+                      <a href="DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</pre>
+<div class="block">This callback will be invoked when the opening handshake between both
+ endpoints has been completed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>upgradeRequest</code> - request associated with this socket.</dd>
+<dd><code>subProtocol</code> - negotiated subprotocol.</dd>
+<dd><code>extensions</code> - negotiated extensions.</dd>
+<dd><code>connectionId</code> - connection id.</dd>
+<dd><code>debugContext</code> - debug context.</dd>
+</dl>
+</li>
+</ul>
+<a id="onFragment(org.glassfish.tyrus.core.frame.BinaryFrame,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onFragment</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onFragment&#8203;(<a href="frame/BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a>&nbsp;frame,
+                       boolean&nbsp;last)</pre>
+<div class="block">This callback will be invoked when a fragmented binary message has
+ been received.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - the binary data received from the remote endpoint.</dd>
+<dd><code>last</code> - flag indicating whether or not the payload received is the final fragment of a message.</dd>
+</dl>
+</li>
+</ul>
+<a id="onFragment(org.glassfish.tyrus.core.frame.TextFrame,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onFragment</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onFragment&#8203;(<a href="frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a>&nbsp;frame,
+                       boolean&nbsp;last)</pre>
+<div class="block">This callback will be invoked when a fragmented textual message has
+ been received.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - the text received from the remote endpoint.</dd>
+<dd><code>last</code> - flag indicating whether or not the payload received is the final fragment of a message.</dd>
+</dl>
+</li>
+</ul>
+<a id="onMessage(org.glassfish.tyrus.core.frame.BinaryFrame)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onMessage</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onMessage&#8203;(<a href="frame/BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a>&nbsp;frame)</pre>
+<div class="block">This callback will be invoked when a binary message has been received.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - the binary data received from the remote endpoint.</dd>
+</dl>
+</li>
+</ul>
+<a id="onMessage(org.glassfish.tyrus.core.frame.TextFrame)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onMessage</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onMessage&#8203;(<a href="frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a>&nbsp;frame)</pre>
+<div class="block">This callback will be invoked when a text message has been received.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - the text received from the remote endpoint.</dd>
+</dl>
+</li>
+</ul>
+<a id="onPing(org.glassfish.tyrus.core.frame.PingFrame)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onPing</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onPing&#8203;(<a href="frame/PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a>&nbsp;frame)</pre>
+<div class="block">This callback will be invoked when the remote endpoint has sent a ping frame.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - the ping frame from the remote endpoint.</dd>
+</dl>
+</li>
+</ul>
+<a id="onPong(org.glassfish.tyrus.core.frame.PongFrame)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onPong</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onPong&#8203;(<a href="frame/PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a>&nbsp;frame)</pre>
+<div class="block">This callback will be invoked when the remote endpoint has sent a pong
+ frame.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - the pong frame from the remote endpoint.</dd>
+</dl>
+</li>
+</ul>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;close()</pre>
+<div class="block">Closes this <a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a>.</div>
+</li>
+</ul>
+<a id="close(int,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;close&#8203;(int&nbsp;code,
+                  java.lang.String&nbsp;reason)</pre>
+<div class="block">Closes this <a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a> using the specified status code and
+ reason.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>code</code> - the closing status code.</dd>
+<dd><code>reason</code> - the reason, if any.</dd>
+</dl>
+</li>
+</ul>
+<a id="close(javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;close&#8203;(<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</pre>
+<div class="block">Closes this <a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a> using the <a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket"><code>CloseReason</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>closeReason</code> - the close reason.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">@Deprecated
+public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendBinary&#8203;(byte[]&nbsp;data)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Send a binary frame to the remote endpoint.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - data to be sent.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Future</code> which could be used to control/check the sending completion state.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(byte[],org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendBinary&#8203;(byte[]&nbsp;data,
+                                                     <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+<div class="block">Send a binary frame to the remote endpoint.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - data to be sent.</dd>
+<dd><code>writerInfo</code> - information about the outbound message.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Future</code> which could be used to control/check the sending completion state.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(byte[],javax.websocket.SendHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">@Deprecated
+public&nbsp;void&nbsp;sendBinary&#8203;(byte[]&nbsp;data,
+                       <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Send a binary frame to the remote endpoint.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - data to be sent.</dd>
+<dd><code>handler</code> - <a href="../../../../javax/websocket/SendHandler.html#onResult(javax.websocket.SendResult)"><code>SendHandler.onResult(javax.websocket.SendResult)</code></a> will be called when sending is complete.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(byte[],javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;sendBinary&#8203;(byte[]&nbsp;data,
+                       <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+                       <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+<div class="block">Send a binary frame to the remote endpoint.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - data to be sent.</dd>
+<dd><code>writerInfo</code> - information about the outbound message.</dd>
+<dd><code>handler</code> - <a href="../../../../javax/websocket/SendHandler.html#onResult(javax.websocket.SendResult)"><code>SendHandler.onResult(javax.websocket.SendResult)</code></a> will be called when sending is complete.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendText(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendText</h4>
+<pre class="methodSignature">@Deprecated
+public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendText&#8203;(java.lang.String&nbsp;data)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Send a text frame to the remote endpoint.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - data to be sent.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Future</code> which could be used to control/check the sending completion state.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendText(java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendText</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendText&#8203;(java.lang.String&nbsp;data,
+                                                   <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+<div class="block">Send a text frame to the remote endpoint.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - data to be sent.</dd>
+<dd><code>writerInfo</code> - information about the outbound message.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Future</code> which could be used to control/check the sending completion state.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendText(java.lang.String,javax.websocket.SendHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendText</h4>
+<pre class="methodSignature">@Deprecated
+public&nbsp;void&nbsp;sendText&#8203;(java.lang.String&nbsp;data,
+                     <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Send a text frame to the remote endpoint.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - data to be sent.</dd>
+<dd><code>handler</code> - <a href="../../../../javax/websocket/SendHandler.html#onResult(javax.websocket.SendResult)"><code>SendHandler.onResult(javax.websocket.SendResult)</code></a> will be called when sending is complete.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendText(java.lang.String,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendText</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;sendText&#8203;(java.lang.String&nbsp;data,
+                     <a href="../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+                     <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+<div class="block">Send a text frame to the remote endpoint.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - data to be sent.</dd>
+<dd><code>writerInfo</code> - information about the outbound message.</dd>
+<dd><code>handler</code> - <a href="../../../../javax/websocket/SendHandler.html#onResult(javax.websocket.SendResult)"><code>SendHandler.onResult(javax.websocket.SendResult)</code></a> will be called when sending is complete.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendRawFrame(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendRawFrame</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendRawFrame&#8203;(java.nio.ByteBuffer&nbsp;data)</pre>
+<div class="block">Send a frame to the remote endpoint.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - complete data frame.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Future</code> which could be used to control/check the sending completion state.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendPing(byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendPing</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendPing&#8203;(byte[]&nbsp;data)</pre>
+<div class="block">Sends a <code>ping</code> frame with the specified payload (if any).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - optional payload.  Note that payload length is restricted to 125 bytes or less.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Future</code> which could be used to control/check the sending completion state.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendPong(byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendPong</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendPong&#8203;(byte[]&nbsp;data)</pre>
+<div class="block">Sends a <code>ping</code> frame with the specified payload (if any).
+ <p>
+ It may seem odd to send a pong frame, however, RFC-6455 states:
+ "A Pong frame MAY be sent unsolicited.  This serves as a
+ unidirectional heartbeat.  A response to an unsolicited Pong frame is
+ not expected."</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - optional payload.  Note that payload length is restricted
+             to 125 bytes or less.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Future</code> which could be used to control/check the sending completion state.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendText(java.lang.String,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendText</h4>
+<pre class="methodSignature">@Deprecated
+public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendText&#8203;(java.lang.String&nbsp;fragment,
+                                                   boolean&nbsp;last)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Sends a fragment of a complete message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fragment</code> - the textual fragment to send.</dd>
+<dd><code>last</code> - boolean indicating if this message fragment is the last.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Future</code> which could be used to control/check the sending completion state.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendText(java.lang.String,boolean,org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendText</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendText&#8203;(java.lang.String&nbsp;fragment,
+                                                   boolean&nbsp;last,
+                                                   <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+<div class="block">Sends a fragment of a complete message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fragment</code> - the textual fragment to send.</dd>
+<dd><code>last</code> - boolean indicating if this message fragment is the last.</dd>
+<dd><code>writerInfo</code> - information about the outbound message.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Future</code> which could be used to control/check the sending completion state.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(byte[],boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">@Deprecated
+public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendBinary&#8203;(byte[]&nbsp;bytes,
+                                                     boolean&nbsp;last)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Sends a fragment of a complete message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the binary fragment to send.</dd>
+<dd><code>last</code> - boolean indicating if this message fragment is the last.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Future</code> which could be used to control/check the sending completion state.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(byte[],boolean,org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendBinary&#8203;(byte[]&nbsp;bytes,
+                                                     boolean&nbsp;last,
+                                                     <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+<div class="block">Sends a fragment of a complete message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the binary fragment to send.</dd>
+<dd><code>last</code> - boolean indicating if this message fragment is the last.</dd>
+<dd><code>writerInfo</code> - information about the outbound message.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Future</code> which could be used to control/check the sending completion state.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(byte[],int,int,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">@Deprecated
+public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendBinary&#8203;(byte[]&nbsp;bytes,
+                                                     int&nbsp;off,
+                                                     int&nbsp;len,
+                                                     boolean&nbsp;last)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Sends a fragment of a complete message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the binary fragment to send.</dd>
+<dd><code>off</code> - the offset within the fragment to send.</dd>
+<dd><code>len</code> - the number of bytes of the fragment to send.</dd>
+<dd><code>last</code> - boolean indicating if this message fragment is the last.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Future</code> which could be used to control/check the sending completion state.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(byte[],int,int,boolean,org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;&nbsp;sendBinary&#8203;(byte[]&nbsp;bytes,
+                                                     int&nbsp;off,
+                                                     int&nbsp;len,
+                                                     boolean&nbsp;last,
+                                                     <a href="../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+<div class="block">Sends a fragment of a complete message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the binary fragment to send.</dd>
+<dd><code>off</code> - the offset within the fragment to send.</dd>
+<dd><code>len</code> - the number of bytes of the fragment to send.</dd>
+<dd><code>last</code> - boolean indicating if this message fragment is the last.</dd>
+<dd><code>writerInfo</code> - information about the outbound message.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Future</code> which could be used to control/check the sending completion state.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusWebSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html
new file mode 100644
index 00000000..e4963051
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html
@@ -0,0 +1,462 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusWebSocketEngine.TyrusWebSocketEngineBuilder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class TyrusWebSocketEngine.TyrusWebSocketEngineBuilder" class="title">Class TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</span>
+extends java.lang.Object</pre>
+<div class="block"><a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> builder.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#applicationEventListener(org.glassfish.tyrus.core.monitoring.ApplicationEventListener)">applicationEventListener</a></span>&#8203;(<a href="monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a>&nbsp;applicationEventListener)</code></th>
+<td class="colLast">
+<div class="block">Set <a href="monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><code>ApplicationEventListener</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> instance with current set of parameters.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clusterContext(org.glassfish.tyrus.core.cluster.ClusterContext)">clusterContext</a></span>&#8203;(<a href="cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext)</code></th>
+<td class="colLast">
+<div class="block">Set <a href="cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster"><code>ClusterContext</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#incomingBufferSize(java.lang.Integer)">incomingBufferSize</a></span>&#8203;(java.lang.Integer&nbsp;incomingBufferSize)</code></th>
+<td class="colLast">
+<div class="block">Set incoming buffer size.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maxSessionsPerApp(java.lang.Integer)">maxSessionsPerApp</a></span>&#8203;(java.lang.Integer&nbsp;maxSessionsPerApp)</code></th>
+<td class="colLast">
+<div class="block">Set maximal number of open sessions per server application.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maxSessionsPerRemoteAddr(java.lang.Integer)">maxSessionsPerRemoteAddr</a></span>&#8203;(java.lang.Integer&nbsp;maxSessionsPerRemoteAddr)</code></th>
+<td class="colLast">
+<div class="block">Set maximal number of open sessions from remote address.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parallelBroadcastEnabled(java.lang.Boolean)">parallelBroadcastEnabled</a></span>&#8203;(java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tracingThreshold(org.glassfish.tyrus.core.DebugContext.TracingThreshold)">tracingThreshold</a></span>&#8203;(<a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>&nbsp;tracingThreshold)</code></th>
+<td class="colLast">
+<div class="block">Set tracing threshold.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tracingType(org.glassfish.tyrus.core.DebugContext.TracingType)">tracingType</a></span>&#8203;(<a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a>&nbsp;tracingType)</code></th>
+<td class="colLast">
+<div class="block">Set type of tracing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a>&nbsp;build()</pre>
+<div class="block">Create new <a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> instance with current set of parameters.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="applicationEventListener(org.glassfish.tyrus.core.monitoring.ApplicationEventListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>applicationEventListener</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a>&nbsp;applicationEventListener&#8203;(<a href="monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a>&nbsp;applicationEventListener)</pre>
+<div class="block">Set <a href="monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><code>ApplicationEventListener</code></a>.
+ <p>
+ Listener can be used for monitoring various events and properties, such as deployed endpoints, ongoing
+ sessions etc...</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>applicationEventListener</code> - listener instance used for building <a href="package-summary.html"><code>.TyrusWebSocketEngine</code></a>. Can be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="incomingBufferSize(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>incomingBufferSize</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a>&nbsp;incomingBufferSize&#8203;(java.lang.Integer&nbsp;incomingBufferSize)</pre>
+<div class="block">Set incoming buffer size.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>incomingBufferSize</code> - maximal incoming buffer size (this engine won't be able to process messages bigger
+                           than this number. If <code>null</code>, default value will be used).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="clusterContext(org.glassfish.tyrus.core.cluster.ClusterContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clusterContext</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a>&nbsp;clusterContext&#8203;(<a href="cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext)</pre>
+<div class="block">Set <a href="cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster"><code>ClusterContext</code></a>.
+ <p>
+ ClusterContext provides clustering functionality.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clusterContext</code> - cluster context instance. <code>null</code> indicates standalone mode.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="maxSessionsPerApp(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxSessionsPerApp</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a>&nbsp;maxSessionsPerApp&#8203;(java.lang.Integer&nbsp;maxSessionsPerApp)</pre>
+<div class="block">Set maximal number of open sessions per server application.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>maxSessionsPerApp</code> - maximal number of open sessions. If <code>null</code>, no limit is applied.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="maxSessionsPerRemoteAddr(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxSessionsPerRemoteAddr</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a>&nbsp;maxSessionsPerRemoteAddr&#8203;(java.lang.Integer&nbsp;maxSessionsPerRemoteAddr)</pre>
+<div class="block">Set maximal number of open sessions from remote address.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>maxSessionsPerRemoteAddr</code> - maximal number of open sessions from remote address. If <code>null</code>, no
+                                 limit is applied.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="tracingType(org.glassfish.tyrus.core.DebugContext.TracingType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tracingType</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a>&nbsp;tracingType&#8203;(<a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a>&nbsp;tracingType)</pre>
+<div class="block">Set type of tracing.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tracingType</code> - tracing type.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="tracingThreshold(org.glassfish.tyrus.core.DebugContext.TracingThreshold)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tracingThreshold</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a>&nbsp;tracingThreshold&#8203;(<a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>&nbsp;tracingThreshold)</pre>
+<div class="block">Set tracing threshold.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tracingThreshold</code> - tracing threshold.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="parallelBroadcastEnabled(java.lang.Boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parallelBroadcastEnabled</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a>&nbsp;parallelBroadcastEnabled&#8203;(java.lang.Boolean&nbsp;parallelBroadcastEnabled)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/TyrusWebSocketEngine.html b/apidocs/1.20/org/glassfish/tyrus/core/TyrusWebSocketEngine.html
new file mode 100644
index 00000000..7f0ac694
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/TyrusWebSocketEngine.html
@@ -0,0 +1,720 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusWebSocketEngine (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusWebSocketEngine (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":42,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusWebSocketEngine.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class TyrusWebSocketEngine" class="title">Class TyrusWebSocketEngine</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.TyrusWebSocketEngine</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">TyrusWebSocketEngine</span>
+extends java.lang.Object
+implements <a href="../spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></pre>
+<div class="block"><a href="../spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi"><code>WebSocketEngine</code></a> implementation, which handles server-side handshake, validation and data processing.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Alexey Stashok, Pavel Bucek (pavel.bucek at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a>, 
+<a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> builder.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.spi.WebSocketEngine">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.glassfish.tyrus.spi.<a href="../spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></h3>
+<code><a href="../spi/WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a>, <a href="../spi/WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#INCOMING_BUFFER_SIZE">INCOMING_BUFFER_SIZE</a></span></code></th>
+<td class="colLast">
+<div class="block">Maximum size of incoming buffer in bytes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MAX_SESSIONS_PER_APP">MAX_SESSIONS_PER_APP</a></span></code></th>
+<td class="colLast">
+<div class="block">Maximum number of open sessions per server application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MAX_SESSIONS_PER_REMOTE_ADDR">MAX_SESSIONS_PER_REMOTE_ADDR</a></span></code></th>
+<td class="colLast">
+<div class="block">Maximum number of open sessions per unique remote address.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PARALLEL_BROADCAST_ENABLED">PARALLEL_BROADCAST_ENABLED</a></span></code></th>
+<td class="colLast">
+<div class="block">Parallel broadcast support.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TRACING_THRESHOLD">TRACING_THRESHOLD</a></span></code></th>
+<td class="colLast">
+<div class="block">Property used for configuring tracing threshold.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TRACING_TYPE">TRACING_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">Property used for configuring the type of tracing supported by the server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WSADL_SUPPORT">WSADL_SUPPORT</a></span></code></th>
+<td class="colLast">
+<div class="block">Wsadl support.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#builder(javax.websocket.WebSocketContainer)">builder</a></span>&#8203;(<a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;webSocketContainer)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</code></a>
+ instance based on passed <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getApplicationEventListener()">getApplicationEventListener</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get <a href="monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><code>ApplicationEventListener</code></a> related to current <a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> instance.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getWsadlApplication()">getWsadlApplication</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get <a href="wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Application</code></a> representing current set of deployed endpoints.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,java.lang.String)">register</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass,
+        java.lang.String&nbsp;contextPath)</code></th>
+<td class="colLast">
+<div class="block">Register endpoint class.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(javax.websocket.server.ServerEndpointConfig,java.lang.String)">register</a></span>&#8203;(<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverConfig,
+        java.lang.String&nbsp;contextPath)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a>.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIncomingBufferSize(int)">setIncomingBufferSize</a></span>&#8203;(int&nbsp;incomingBufferSize)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Please use <a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>.TyrusWebSocketEngineBuilder#incomingBufferSize(Integer)</code></a>
+ instead.</div>
+</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unregister(org.glassfish.tyrus.core.TyrusEndpointWrapper)">unregister</a></span>&#8203;(<a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper)</code></th>
+<td class="colLast">
+<div class="block">Un-registers the specified <a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> with the <code>WebSocketEngine</code>.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../spi/WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">upgrade</a></span>&#8203;(<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+       <a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">A transport calls this method to upgrade a HTTP request.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="INCOMING_BUFFER_SIZE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INCOMING_BUFFER_SIZE</h4>
+<pre>public static final&nbsp;java.lang.String INCOMING_BUFFER_SIZE</pre>
+<div class="block">Maximum size of incoming buffer in bytes.
+ <p>
+ The value must be <code>Integer</code> or its primitive alternative.
+ <p>
+ Default value is 4194315, which means that TyrusWebSocketEngine is by default
+ capable of processing messages up to 4 MB.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.core.TyrusWebSocketEngine.INCOMING_BUFFER_SIZE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="MAX_SESSIONS_PER_APP">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MAX_SESSIONS_PER_APP</h4>
+<pre>public static final&nbsp;java.lang.String MAX_SESSIONS_PER_APP</pre>
+<div class="block">Maximum number of open sessions per server application.
+ <p>
+ The value must be positive <code>Integer</code> or its primitive alternative. Negative values
+ and zero are ignored.
+ <p>
+ The number of open sessions per application is not limited by default.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.core.TyrusWebSocketEngine.MAX_SESSIONS_PER_APP">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="MAX_SESSIONS_PER_REMOTE_ADDR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MAX_SESSIONS_PER_REMOTE_ADDR</h4>
+<pre>public static final&nbsp;java.lang.String MAX_SESSIONS_PER_REMOTE_ADDR</pre>
+<div class="block">Maximum number of open sessions per unique remote address.
+ <p>
+ The value must be positive <code>Integer</code> or its primitive alternative. Negative values
+ and zero are ignored.
+ <p>
+ The number of open sessions per remote address is not limited by default.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.core.TyrusWebSocketEngine.MAX_SESSIONS_PER_REMOTE_ADDR">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TRACING_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TRACING_TYPE</h4>
+<pre>public static final&nbsp;java.lang.String TRACING_TYPE</pre>
+<div class="block">Property used for configuring the type of tracing supported by the server.
+ <p>
+ The value is expected to be string value of <a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core"><code>DebugContext.TracingType</code></a>.
+ <p>
+ The default value is <a href="DebugContext.TracingType.html#OFF"><code>DebugContext.TracingType.OFF</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.core.TyrusWebSocketEngine.TRACING_TYPE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TRACING_THRESHOLD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TRACING_THRESHOLD</h4>
+<pre>public static final&nbsp;java.lang.String TRACING_THRESHOLD</pre>
+<div class="block">Property used for configuring tracing threshold.
+ <p>
+ The value is expected to be string value of <a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core"><code>DebugContext.TracingThreshold</code></a>.
+ <p>
+ The default value is <a href="DebugContext.TracingThreshold.html#SUMMARY"><code>DebugContext.TracingThreshold.SUMMARY</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.core.TyrusWebSocketEngine.TRACING_THRESHOLD">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WSADL_SUPPORT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WSADL_SUPPORT</h4>
+<pre><a href="Beta.html" title="annotation in org.glassfish.tyrus.core">@Beta</a>
+public static final&nbsp;java.lang.String WSADL_SUPPORT</pre>
+<div class="block">Wsadl support.
+ <p>
+ Wsadl is experimental feature which exposes endpoint configuration in form of XML file,
+ similarly as Wadl for REST services. Currently generated Wsadl contains only set of
+ endpoints and their endpoint paths. Wsadl is exposed on URI ending by "application.wsadl".
+ <p>
+ The value must be string, <code>"true"</code> means that the feature is enable, <code>"false"</code> that the feature
+ is disabled.
+ <p>
+ Default value is "false";</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.core.TyrusWebSocketEngine.WSADL_SUPPORT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="PARALLEL_BROADCAST_ENABLED">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PARALLEL_BROADCAST_ENABLED</h4>
+<pre>public static final&nbsp;java.lang.String PARALLEL_BROADCAST_ENABLED</pre>
+<div class="block">Parallel broadcast support.
+ <p>
+ <a href="TyrusSession.html#broadcast(java.lang.String)"><code>TyrusSession.broadcast(String)</code></a> and <a href="package-summary.html"><code>.TyrusSession#broadcast(java.nio.ByteBuffer)</code></a> operations are by default executed in parallel. The parallel
+ execution of broadcast can be disabled by setting this server property to <code>false</code>.
+ <p>
+ Expected value is <code>true</code> or <code>false</code> and the default value is <code>false</code>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="TyrusSession.html#broadcast(java.lang.String)"><code>TyrusSession.broadcast(String)</code></a>, 
+<a href="TyrusSession.html#broadcast(java.nio.ByteBuffer)"><code>TyrusSession.broadcast(java.nio.ByteBuffer)</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.core.TyrusWebSocketEngine.PARALLEL_BROADCAST_ENABLED">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="builder(javax.websocket.WebSocketContainer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>builder</h4>
+<pre class="methodSignature">public static&nbsp;<a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a>&nbsp;builder&#8203;(<a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;webSocketContainer)</pre>
+<div class="block">Create <a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</code></a>
+ instance based on passed <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>webSocketContainer</code> - <a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a> instance. Cannot be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>upgrade</h4>
+<pre class="methodSignature">public&nbsp;<a href="../spi/WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a>&nbsp;upgrade&#8203;(<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+                                           <a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/WebSocketEngine.html#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">WebSocketEngine</a></code></span></div>
+<div class="block">A transport calls this method to upgrade a HTTP request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/WebSocketEngine.html#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">upgrade</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - request to be upgraded.</dd>
+<dd><code>response</code> - response to the upgrade request.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>info about upgrade status and connection details.</dd>
+</dl>
+</li>
+</ul>
+<a id="setIncomingBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIncomingBufferSize</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setIncomingBufferSize&#8203;(int&nbsp;incomingBufferSize)</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">Please use <a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>.TyrusWebSocketEngineBuilder#incomingBufferSize(Integer)</code></a>
+ instead.</div>
+</div>
+<div class="block">Set incoming buffer size.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>incomingBufferSize</code> - buffer size in bytes.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;register&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass,
+                     java.lang.String&nbsp;contextPath)
+              throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/WebSocketEngine.html#register(java.lang.Class,java.lang.String)">WebSocketEngine</a></code></span></div>
+<div class="block">Register endpoint class.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/WebSocketEngine.html#register(java.lang.Class,java.lang.String)">register</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - endpoint class to be registered.</dd>
+<dd><code>contextPath</code> - context path of the registered endpoint.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - when the endpoint is invalid.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(javax.websocket.server.ServerEndpointConfig,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;register&#8203;(<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverConfig,
+                     java.lang.String&nbsp;contextPath)
+              throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../spi/WebSocketEngine.html#register(javax.websocket.server.ServerEndpointConfig,java.lang.String)">WebSocketEngine</a></code></span></div>
+<div class="block">Register <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/WebSocketEngine.html#register(javax.websocket.server.ServerEndpointConfig,java.lang.String)">register</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serverConfig</code> - server endpoint to be registered.</dd>
+<dd><code>contextPath</code> - context path of the registered endpoint.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - when the endpoint is invalid.</dd>
+</dl>
+</li>
+</ul>
+<a id="unregister(org.glassfish.tyrus.core.TyrusEndpointWrapper)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unregister</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;unregister&#8203;(<a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper)</pre>
+<div class="block">Un-registers the specified <a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> with the <code>WebSocketEngine</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointWrapper</code> - the <a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> to un-register.</dd>
+</dl>
+</li>
+</ul>
+<a id="getApplicationEventListener()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getApplicationEventListener</h4>
+<pre class="methodSignature">public&nbsp;<a href="monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a>&nbsp;getApplicationEventListener()</pre>
+<div class="block">Get <a href="monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><code>ApplicationEventListener</code></a> related to current <a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>listener instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getWsadlApplication()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getWsadlApplication</h4>
+<pre class="methodSignature"><a href="Beta.html" title="annotation in org.glassfish.tyrus.core">@Beta</a>
+public&nbsp;<a href="wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a>&nbsp;getWsadlApplication()</pre>
+<div class="block">Get <a href="wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Application</code></a> representing current set of deployed endpoints.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>application representing current set of deployed endpoints.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusWebSocketEngine.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/Utf8DecodingException.html b/apidocs/1.20/org/glassfish/tyrus/core/Utf8DecodingException.html
new file mode 100644
index 00000000..b4069ffd
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/Utf8DecodingException.html
@@ -0,0 +1,357 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Utf8DecodingException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Utf8DecodingException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Utf8DecodingException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class Utf8DecodingException" class="title">Class Utf8DecodingException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Throwable</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Exception</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.RuntimeException</li>
+<li>
+<ul class="inheritance">
+<li><a href="WebSocketException.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.WebSocketException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.Utf8DecodingException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">Utf8DecodingException</span>
+extends <a href="WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a></pre>
+<div class="block">TODO</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.glassfish.tyrus.core.Utf8DecodingException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Utf8DecodingException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">TODO</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCloseReason()">getCloseReason</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get close reason.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
+<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Utf8DecodingException</h4>
+<pre>public&nbsp;Utf8DecodingException()</pre>
+<div class="block">TODO</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getCloseReason()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCloseReason</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;getCloseReason()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="WebSocketException.html#getCloseReason()">WebSocketException</a></code></span></div>
+<div class="block">Get close reason.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="WebSocketException.html#getCloseReason()">getCloseReason</a></code>&nbsp;in class&nbsp;<code><a href="WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>close reason used when processing this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Utf8DecodingException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/Utils.Stringifier.html b/apidocs/1.20/org/glassfish/tyrus/core/Utils.Stringifier.html
new file mode 100644
index 00000000..4f480b38
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/Utils.Stringifier.html
@@ -0,0 +1,279 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Utils.Stringifier (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Utils.Stringifier (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Utils.Stringifier.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class Utils.Stringifier" class="title">Class Utils.Stringifier&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.Utils.Stringifier&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type for which is conversion defined.</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></dd>
+</dl>
+<hr>
+<pre>public abstract static class <span class="typeNameLabel">Utils.Stringifier&lt;T&gt;</span>
+extends java.lang.Object</pre>
+<div class="block">Define to <code>String</code> conversion for various types.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Stringifier</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Stringifier</h4>
+<pre>public&nbsp;Stringifier()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Utils.Stringifier.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/Utils.html b/apidocs/1.20/org/glassfish/tyrus/core/Utils.html
new file mode 100644
index 00000000..ec3c8a85
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/Utils.html
@@ -0,0 +1,806 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Utils (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Utils (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Utils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class Utils" class="title">Class Utils</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.Utils</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Utils</span>
+extends java.lang.Object</pre>
+<div class="block">Utility methods shared among Tyrus modules.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a>&lt;<a href="Utils.Stringifier.html" title="type parameter in Utils.Stringifier">T</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Define to <code>String</code> conversion for various types.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Utils</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static java.nio.ByteBuffer</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#appendBuffers(java.nio.ByteBuffer,java.nio.ByteBuffer,int,int)">appendBuffers</a></span>&#8203;(java.nio.ByteBuffer&nbsp;buffer,
+             java.nio.ByteBuffer&nbsp;buffer1,
+             int&nbsp;incomingBufferSize,
+             int&nbsp;BUFFER_STEP_SIZE)</code></th>
+<td class="colLast">
+<div class="block">Concatenates two buffers into one.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkNotNull(T,java.lang.String)">checkNotNull</a></span>&#8203;(T&nbsp;reference,
+            java.lang.String&nbsp;parameterName)</code></th>
+<td class="colLast">
+<div class="block">Check for null.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderFromList(java.util.List)">getHeaderFromList</a></span>&#8203;(java.util.List&lt;T&gt;&nbsp;list)</code></th>
+<td class="colLast">
+<div class="block">Creates single <code>String</code> value from provided List by calling <code>Object.toString()</code> on each item
+ and separating existing ones with <code>", "</code>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderFromList(java.util.List,org.glassfish.tyrus.core.Utils.Stringifier)">getHeaderFromList</a></span>&#8203;(java.util.List&lt;T&gt;&nbsp;list,
+                 <a href="Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a>&lt;T&gt;&nbsp;stringifier)</code></th>
+<td class="colLast">
+<div class="block">Convert list of values to singe <code>String</code> usable as HTTP header value.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperty(java.util.Map,java.lang.String,java.lang.Class)">getProperty</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+           java.lang.String&nbsp;key,
+           java.lang.Class&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Get typed property from generic property map.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperty(java.util.Map,java.lang.String,java.lang.Class,T)">getProperty</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+           java.lang.String&nbsp;key,
+           java.lang.Class&lt;T&gt;&nbsp;type,
+           T&nbsp;defaultValue)</code></th>
+<td class="colLast">
+<div class="block">Get typed property from generic property map.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static byte[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemainingArray(java.nio.ByteBuffer)">getRemainingArray</a></span>&#8203;(java.nio.ByteBuffer&nbsp;buffer)</code></th>
+<td class="colLast">
+<div class="block">Creates the array of bytes containing the bytes from the position to the limit of the <code>ByteBuffer</code>.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;java.util.List&lt;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStringList(java.util.List,org.glassfish.tyrus.core.Utils.Stringifier)">getStringList</a></span>&#8203;(java.util.List&lt;T&gt;&nbsp;list,
+             <a href="Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a>&lt;T&gt;&nbsp;stringifier)</code></th>
+<td class="colLast">
+<div class="block">Get list of strings from List&lt;T&gt;.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getWsPort(java.net.URI)">getWsPort</a></span>&#8203;(java.net.URI&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Get port from provided <code>URI</code>.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getWsPort(java.net.URI,java.lang.String)">getWsPort</a></span>&#8203;(java.net.URI&nbsp;uri,
+         java.lang.String&nbsp;scheme)</code></th>
+<td class="colLast">
+<div class="block">Get port from provided <code>URI</code>.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static java.util.List&lt;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parseHeaderValue(java.lang.String)">parseHeaderValue</a></span>&#8203;(java.lang.String&nbsp;headerValue)</code></th>
+<td class="colLast">
+<div class="block">Parse header value - splits multiple values (quoted, unquoted) separated by
+ comma.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static java.util.Date</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parseHttpDate(java.lang.String)">parseHttpDate</a></span>&#8203;(java.lang.String&nbsp;stringValue)</code></th>
+<td class="colLast">
+<div class="block">Parse HTTP date.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stringifyUpgradeRequest(org.glassfish.tyrus.spi.UpgradeRequest)">stringifyUpgradeRequest</a></span>&#8203;(<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;upgradeRequest)</code></th>
+<td class="colLast">
+<div class="block">Converts upgrade request to a HTTP-formatted string.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stringifyUpgradeResponse(org.glassfish.tyrus.spi.UpgradeResponse)">stringifyUpgradeResponse</a></span>&#8203;(<a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse)</code></th>
+<td class="colLast">
+<div class="block">Converts upgrade response to a HTTP-formatted string.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>static byte[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toArray(long)">toArray</a></span>&#8203;(long&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Convert <code>long</code> to <code>byte[]</code>.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>static long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toLong(byte%5B%5D,int,int)">toLong</a></span>&#8203;(byte[]&nbsp;bytes,
+      int&nbsp;start,
+      int&nbsp;end)</code></th>
+<td class="colLast">
+<div class="block">Convert <code>byte[]</code> to <code>long</code>.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static java.util.List&lt;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString(byte%5B%5D)">toString</a></span>&#8203;(byte[]&nbsp;bytes)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>static java.util.List&lt;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString(byte%5B%5D,int,int)">toString</a></span>&#8203;(byte[]&nbsp;bytes,
+        int&nbsp;start,
+        int&nbsp;end)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Utils</h4>
+<pre>public&nbsp;Utils()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="parseHeaderValue(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parseHeaderValue</h4>
+<pre class="methodSignature">public static&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;parseHeaderValue&#8203;(java.lang.String&nbsp;headerValue)</pre>
+<div class="block">Parse header value - splits multiple values (quoted, unquoted) separated by
+ comma.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>headerValue</code> - string containing header values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>split list of values.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRemainingArray(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemainingArray</h4>
+<pre class="methodSignature">public static&nbsp;byte[]&nbsp;getRemainingArray&#8203;(java.nio.ByteBuffer&nbsp;buffer)</pre>
+<div class="block">Creates the array of bytes containing the bytes from the position to the limit of the <code>ByteBuffer</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>buffer</code> - where the bytes are taken from.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>array of bytes containing the bytes from the position to the limit of the <code>ByteBuffer</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderFromList(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderFromList</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;java.lang.String&nbsp;getHeaderFromList&#8203;(java.util.List&lt;T&gt;&nbsp;list)</pre>
+<div class="block">Creates single <code>String</code> value from provided List by calling <code>Object.toString()</code> on each item
+ and separating existing ones with <code>", "</code>.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - item type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>list</code> - to be serialized.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>single <code>String</code> containing all items from provided list.</dd>
+</dl>
+</li>
+</ul>
+<a id="getStringList(java.util.List,org.glassfish.tyrus.core.Utils.Stringifier)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringList</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;getStringList&#8203;(java.util.List&lt;T&gt;&nbsp;list,
+                                                                 <a href="Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a>&lt;T&gt;&nbsp;stringifier)</pre>
+<div class="block">Get list of strings from List&lt;T&gt;.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type to be converted.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>list</code> - list to be converted.</dd>
+<dd><code>stringifier</code> - strignifier used for conversion. When <code>null</code>, <code>Object.toString()</code> method will be
+                    used.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>converted list.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderFromList(java.util.List,org.glassfish.tyrus.core.Utils.Stringifier)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderFromList</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;java.lang.String&nbsp;getHeaderFromList&#8203;(java.util.List&lt;T&gt;&nbsp;list,
+                                                     <a href="Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a>&lt;T&gt;&nbsp;stringifier)</pre>
+<div class="block">Convert list of values to singe <code>String</code> usable as HTTP header value.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type to be converted.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>list</code> - list of values.</dd>
+<dd><code>stringifier</code> - strignifier used for conversion. When <code>null</code>, <code>Object.toString()</code> method will be
+                    used.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>serialized list.</dd>
+</dl>
+</li>
+</ul>
+<a id="checkNotNull(java.lang.Object,java.lang.String)">
+<!--   -->
+</a><a id="checkNotNull(T,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkNotNull</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;void&nbsp;checkNotNull&#8203;(T&nbsp;reference,
+                                    java.lang.String&nbsp;parameterName)</pre>
+<div class="block">Check for null. Throws <code>IllegalArgumentException</code> if provided value is null.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - object type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>reference</code> - object to check.</dd>
+<dd><code>parameterName</code> - name of parameter to be formatted into localized message of thrown <code>IllegalArgumentException</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="toArray(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toArray</h4>
+<pre class="methodSignature">public static&nbsp;byte[]&nbsp;toArray&#8203;(long&nbsp;value)</pre>
+<div class="block">Convert <code>long</code> to <code>byte[]</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - to be converted.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>converted value.</dd>
+</dl>
+</li>
+</ul>
+<a id="toLong(byte[],int,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toLong</h4>
+<pre class="methodSignature">public static&nbsp;long&nbsp;toLong&#8203;(byte[]&nbsp;bytes,
+                          int&nbsp;start,
+                          int&nbsp;end)</pre>
+<div class="block">Convert <code>byte[]</code> to <code>long</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - to be converted.</dd>
+<dd><code>start</code> - start index.</dd>
+<dd><code>end</code> - end index.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>converted value.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString(byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public static&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;toString&#8203;(byte[]&nbsp;bytes)</pre>
+</li>
+</ul>
+<a id="toString(byte[],int,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public static&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;toString&#8203;(byte[]&nbsp;bytes,
+                                                        int&nbsp;start,
+                                                        int&nbsp;end)</pre>
+</li>
+</ul>
+<a id="appendBuffers(java.nio.ByteBuffer,java.nio.ByteBuffer,int,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>appendBuffers</h4>
+<pre class="methodSignature">public static&nbsp;java.nio.ByteBuffer&nbsp;appendBuffers&#8203;(java.nio.ByteBuffer&nbsp;buffer,
+                                                java.nio.ByteBuffer&nbsp;buffer1,
+                                                int&nbsp;incomingBufferSize,
+                                                int&nbsp;BUFFER_STEP_SIZE)</pre>
+<div class="block">Concatenates two buffers into one. If buffer given as first argument has enough space for putting
+ the other one, it will be done and the original buffer will be returned. Otherwise new buffer will
+ be created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>buffer</code> - first buffer.</dd>
+<dd><code>buffer1</code> - second buffer.</dd>
+<dd><code>incomingBufferSize</code> - incoming buffer size. Concatenation length cannot be bigger than this value.</dd>
+<dd><code>BUFFER_STEP_SIZE</code> - buffer step size.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>concatenation.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - when the concatenation length is bigger than provided incoming buffer size.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperty(java.util.Map,java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;T&nbsp;getProperty&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+                                java.lang.String&nbsp;key,
+                                java.lang.Class&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Get typed property from generic property map.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of value to be retrieved.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>properties</code> - property map.</dd>
+<dd><code>key</code> - key of value to be retrieved.</dd>
+<dd><code>type</code> - type of value to be retrieved.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>typed value or <code>null</code> if property is not set or value is not assignable.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperty(java.util.Map,java.lang.String,java.lang.Class,java.lang.Object)">
+<!--   -->
+</a><a id="getProperty(java.util.Map,java.lang.String,java.lang.Class,T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;T&nbsp;getProperty&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+                                java.lang.String&nbsp;key,
+                                java.lang.Class&lt;T&gt;&nbsp;type,
+                                T&nbsp;defaultValue)</pre>
+<div class="block">Get typed property from generic property map.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of value to be retrieved.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>properties</code> - property map.</dd>
+<dd><code>key</code> - key of value to be retrieved.</dd>
+<dd><code>type</code> - type of value to be retrieved.</dd>
+<dd><code>defaultValue</code> - value returned when record does not exist in supplied map.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>typed value or <code>null</code> if property is not set or value is not assignable.</dd>
+</dl>
+</li>
+</ul>
+<a id="getWsPort(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWsPort</h4>
+<pre class="methodSignature">public static&nbsp;int&nbsp;getWsPort&#8203;(java.net.URI&nbsp;uri)</pre>
+<div class="block">Get port from provided <code>URI</code>.
+ <p>
+ Expected schemes are <code>"ws"</code> and <code>"wss"</code> and this method will return <code>80</code> or
+ <code>443</code> when the port is not explicitly set in the provided <code>URI</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - provided uri.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>port number which should be used for creating connections/etc.</dd>
+</dl>
+</li>
+</ul>
+<a id="getWsPort(java.net.URI,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWsPort</h4>
+<pre class="methodSignature">public static&nbsp;int&nbsp;getWsPort&#8203;(java.net.URI&nbsp;uri,
+                            java.lang.String&nbsp;scheme)</pre>
+<div class="block">Get port from provided <code>URI</code>.
+ <p>
+ Expected schemes are <code>"ws"</code> and <code>"wss"</code> and this method will return <code>80</code> or
+ <code>443</code> when the port is not explicitly set in the provided <code>URI</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - provided uri.</dd>
+<dd><code>scheme</code> - scheme to be used when checking for <code>"ws"</code> and <code>"wss"</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>port number which should be used for creating connections/etc.</dd>
+</dl>
+</li>
+</ul>
+<a id="parseHttpDate(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parseHttpDate</h4>
+<pre class="methodSignature">public static&nbsp;java.util.Date&nbsp;parseHttpDate&#8203;(java.lang.String&nbsp;stringValue)
+                                    throws java.text.ParseException</pre>
+<div class="block">Parse HTTP date.
+ <p>
+ HTTP applications have historically allowed three different formats for the representation of date/time stamps:
+ <ul>
+ <li><code>Sun, 06 Nov 1994 08:49:37 GMT</code> (RFC 822, updated by RFC 1123)</li>
+ <li><code>Sunday, 06-Nov-94 08:49:37 GMT</code> (RFC 850, obsoleted by RFC 1036)</li>
+ <li><code>Sun Nov  6 08:49:37 1994</code> (ANSI C's asctime() format)</li>
+ </ul></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>stringValue</code> - String value to be parsed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A <code>Date</code> parsed from the string.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.text.ParseException</code> - if the specified string cannot be parsed in neither of all three HTTP date formats.</dd>
+</dl>
+</li>
+</ul>
+<a id="stringifyUpgradeRequest(org.glassfish.tyrus.spi.UpgradeRequest)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stringifyUpgradeRequest</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;stringifyUpgradeRequest&#8203;(<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;upgradeRequest)</pre>
+<div class="block">Converts upgrade request to a HTTP-formatted string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>upgradeRequest</code> - upgrade request to be formatted.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>stringified upgrade request.</dd>
+</dl>
+</li>
+</ul>
+<a id="stringifyUpgradeResponse(org.glassfish.tyrus.spi.UpgradeResponse)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>stringifyUpgradeResponse</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;stringifyUpgradeResponse&#8203;(<a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse)</pre>
+<div class="block">Converts upgrade response to a HTTP-formatted string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>upgradeResponse</code> - upgrade request to be formatted.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>stringified upgrade request.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Utils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/Version.html b/apidocs/1.20/org/glassfish/tyrus/core/Version.html
new file mode 100644
index 00000000..3499a3d6
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/Version.html
@@ -0,0 +1,430 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Version (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Version (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":9,"i2":10,"i3":6,"i4":9,"i5":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Version.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Enum Version" class="title">Enum Version</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="Version.html" title="enum in org.glassfish.tyrus.core">Version</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.Version</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="Version.html" title="enum in org.glassfish.tyrus.core">Version</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public enum <span class="typeNameLabel">Version</span>
+extends java.lang.Enum&lt;<a href="Version.html" title="enum in org.glassfish.tyrus.core">Version</a>&gt;</pre>
+<div class="block">TODO</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#DRAFT17">DRAFT17</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract <a href="ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createHandler(boolean,org.glassfish.tyrus.core.MaskingKeyGenerator)">createHandler</a></span>&#8203;(boolean&nbsp;mask,
+             <a href="MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core">MaskingKeyGenerator</a>&nbsp;maskingKeyGenerator)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSupportedWireProtocolVersions()">getSupportedWireProtocolVersions</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>abstract boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validate(org.glassfish.tyrus.spi.UpgradeRequest)">validate</a></span>&#8203;(<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="Version.html" title="enum in org.glassfish.tyrus.core">Version</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="Version.html" title="enum in org.glassfish.tyrus.core">Version</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="DRAFT17">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DRAFT17</h4>
+<pre>public static final&nbsp;<a href="Version.html" title="enum in org.glassfish.tyrus.core">Version</a> DRAFT17</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Version.html" title="enum in org.glassfish.tyrus.core">Version</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (Version c : Version.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Version.html" title="enum in org.glassfish.tyrus.core">Version</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a id="createHandler(boolean,org.glassfish.tyrus.core.MaskingKeyGenerator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createHandler</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a>&nbsp;createHandler&#8203;(boolean&nbsp;mask,
+                                              <a href="MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core">MaskingKeyGenerator</a>&nbsp;maskingKeyGenerator)</pre>
+</li>
+</ul>
+<a id="validate(org.glassfish.tyrus.spi.UpgradeRequest)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>validate</h4>
+<pre class="methodSignature">public abstract&nbsp;boolean&nbsp;validate&#8203;(<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request)</pre>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Enum&lt;<a href="Version.html" title="enum in org.glassfish.tyrus.core">Version</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getSupportedWireProtocolVersions()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSupportedWireProtocolVersions</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;getSupportedWireProtocolVersions()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Version.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/WebSocketException.html b/apidocs/1.20/org/glassfish/tyrus/core/WebSocketException.html
new file mode 100644
index 00000000..bde3b6ce
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/WebSocketException.html
@@ -0,0 +1,357 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WebSocketException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WebSocketException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebSocketException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core</a></div>
+<h2 title="Class WebSocketException" class="title">Class WebSocketException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Throwable</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Exception</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.RuntimeException</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.WebSocketException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="ProtocolException.html" title="class in org.glassfish.tyrus.core">ProtocolException</a></code>, <code><a href="Utf8DecodingException.html" title="class in org.glassfish.tyrus.core">Utf8DecodingException</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">WebSocketException</span>
+extends java.lang.RuntimeException</pre>
+<div class="block">WebSocketException can be thrown during runtime (after handshake).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.glassfish.tyrus.core.WebSocketException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">WebSocketException</a></span>&#8203;(java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="WebSocketException.html" title="class in org.glassfish.tyrus.core"><code>WebSocketException</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCloseReason()">getCloseReason</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get close reason.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Throwable</h3>
+<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>WebSocketException</h4>
+<pre>public&nbsp;WebSocketException&#8203;(java.lang.String&nbsp;message)</pre>
+<div class="block">Create new <a href="WebSocketException.html" title="class in org.glassfish.tyrus.core"><code>WebSocketException</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - excetion message.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getCloseReason()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCloseReason</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;getCloseReason()</pre>
+<div class="block">Get close reason.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>close reason used when processing this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebSocketException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/AnnotatedEndpoint.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/AnnotatedEndpoint.html
new file mode 100644
index 00000000..d2309678
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/AnnotatedEndpoint.html
@@ -0,0 +1,239 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.AnnotatedEndpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.AnnotatedEndpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.AnnotatedEndpoint" class="title">Uses of Class<br>org.glassfish.tyrus.core.AnnotatedEndpoint</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../AnnotatedEndpoint.html#fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener)">fromClass</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedClass,
+         <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+         boolean&nbsp;isServerEndpoint,
+         int&nbsp;incomingBufferSize,
+         <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+         <a href="../monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../AnnotatedEndpoint.html#fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.util.Set)">fromClass</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedClass,
+         <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+         boolean&nbsp;isServerEndpoint,
+         int&nbsp;incomingBufferSize,
+         <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+         <a href="../monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+         java.util.Set&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../AnnotatedEndpoint.html#fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector)">fromInstance</a></span>&#8203;(java.lang.Object&nbsp;annotatedInstance,
+            <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+            boolean&nbsp;isServerEndpoint,
+            int&nbsp;incomingBufferSize,
+            <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../AnnotatedEndpoint.html#fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,java.util.Set)">fromInstance</a></span>&#8203;(java.lang.Object&nbsp;annotatedInstance,
+            <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+            boolean&nbsp;isServerEndpoint,
+            int&nbsp;incomingBufferSize,
+            <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+            java.util.Set&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/BaseContainer.ShutDownCondition.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/BaseContainer.ShutDownCondition.html
new file mode 100644
index 00000000..1d27913d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/BaseContainer.ShutDownCondition.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.BaseContainer.ShutDownCondition (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.BaseContainer.ShutDownCondition (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.BaseContainer.ShutDownCondition" class="title">Uses of Interface<br>org.glassfish.tyrus.core.BaseContainer.ShutDownCondition</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">BaseContainer.ShutDownCondition</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">BaseContainer.ShutDownCondition</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">BaseContainer.ShutDownCondition</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BaseContainer.</span><code><span class="memberNameLink"><a href="../BaseContainer.html#shutdown(org.glassfish.tyrus.core.BaseContainer.ShutDownCondition)">shutdown</a></span>&#8203;(<a href="../BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">BaseContainer.ShutDownCondition</a>&nbsp;shutDownCondition)</code></th>
+<td class="colLast">
+<div class="block">Release executor services managed by this instance if the condition passed in the parameter is fulfilled.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/BaseContainer.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/BaseContainer.html
new file mode 100644
index 00000000..67b40950
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/BaseContainer.html
@@ -0,0 +1,228 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.BaseContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.BaseContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BaseContainer.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.BaseContainer" class="title">Uses of Class<br>org.glassfish.tyrus.core.BaseContainer</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a> in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a> in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></span></code></th>
+<td class="colLast">
+<div class="block">ClientManager implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a> in <a href="../../server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a> in <a href="../../server/package-summary.html">org.glassfish.tyrus.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></span></code></th>
+<td class="colLast">
+<div class="block">Server Container Implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BaseContainer.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/Beta.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/Beta.html
new file mode 100644
index 00000000..8ce4a1bf
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/Beta.html
@@ -0,0 +1,330 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.Beta (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.Beta (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.Beta" class="title">Uses of Class<br>org.glassfish.tyrus.core.Beta</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">Beta</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client.auth">org.glassfish.tyrus.client.auth</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.monitoring">org.glassfish.tyrus.core.monitoring</a></th>
+<td class="colLast">
+<div class="block">Monitoring interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">Beta</a> in <a href="../../client/auth/package-summary.html">org.glassfish.tyrus.client.auth</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../client/auth/package-summary.html">org.glassfish.tyrus.client.auth</a> with annotations of type <a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">Beta</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth">AuthConfig</a></span></code></th>
+<td class="colLast">
+<div class="block">AuthConfig serves as a configuration of HTTP authentication.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/auth/AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">AuthenticationException</a></span></code></th>
+<td class="colLast">
+<div class="block">This exception is set as a cause of <a href="../../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown when <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...)
+ fails because of any of the following:
+ 
+ 
+ HTTP response status code 401 is received and "<a href="../../spi/UpgradeResponse.html#WWW_AUTHENTICATE">"WWW-Authenticate"</a>" header
+ contains scheme which is not handled by any <a href="../../client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> registered in <a href="../../client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth">Authenticator</a></span></code></th>
+<td class="colLast">
+<div class="block">Authenticator provides a way how to plug-in custom authentication provider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/auth/Credentials.html" title="class in org.glassfish.tyrus.client.auth">Credentials</a></span></code></th>
+<td class="colLast">
+<div class="block">Credentials can be used when configuring authentication properties used during client handshake.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">Beta</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with annotations of type <a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">Beta</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core">MaskingKeyGenerator</a></span></code></th>
+<td class="colLast">
+<div class="block">Can be implemented to generate masking keys.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with annotations of type <a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">Beta</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.html#WSADL_SUPPORT">WSADL_SUPPORT</a></span></code></th>
+<td class="colLast">
+<div class="block">Wsadl support.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with annotations of type <a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">Beta</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.html#getWsadlApplication()">getWsadlApplication</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get <a href="../wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Application</code></a> representing current set of deployed endpoints.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.monitoring">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">Beta</a> in <a href="../monitoring/package-summary.html">org.glassfish.tyrus.core.monitoring</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../monitoring/package-summary.html">org.glassfish.tyrus.core.monitoring</a> with annotations of type <a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">Beta</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></span></code></th>
+<td class="colLast">
+<div class="block">Listens to application-level events that are interesting for monitoring.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></span></code></th>
+<td class="colLast">
+<div class="block">Listens to endpoint-level events that are interesting for monitoring.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../monitoring/MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></span></code></th>
+<td class="colLast">
+<div class="block">Listens for message-level events that are interesting for monitoring.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/CloseReasons.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/CloseReasons.html
new file mode 100644
index 00000000..8e613f4e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/CloseReasons.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.CloseReasons (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.CloseReasons (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CloseReasons.html" title="enum in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.CloseReasons" class="title">Uses of Class<br>org.glassfish.tyrus.core.CloseReasons</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CloseReasons.</span><code><span class="memberNameLink"><a href="../CloseReasons.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CloseReasons.</span><code><span class="memberNameLink"><a href="../CloseReasons.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CloseReasons.html" title="enum in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ComponentProvider.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ComponentProvider.html
new file mode 100644
index 00000000..ab52a526
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ComponentProvider.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ComponentProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ComponentProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ComponentProvider.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ComponentProvider" class="title">Uses of Class<br>org.glassfish.tyrus.core.ComponentProvider</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.gf.cdi">org.glassfish.tyrus.gf.cdi</a></th>
+<td class="colLast">
+<div class="block">Tyrus CDI integration with Glassfish (and possibly other compatible containers).</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.gf.ejb">org.glassfish.tyrus.gf.ejb</a></th>
+<td class="colLast">
+<div class="block">Tyrus EJB integration with Glassfish (and possibly other compatible containers).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core">DefaultComponentProvider</a></span></code></th>
+<td class="colLast">
+<div class="block">Provides instances using reflection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.gf.cdi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a> in <a href="../../gf/cdi/package-summary.html">org.glassfish.tyrus.gf.cdi</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a> in <a href="../../gf/cdi/package-summary.html">org.glassfish.tyrus.gf.cdi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../gf/cdi/CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi">CdiComponentProvider</a></span></code></th>
+<td class="colLast">
+<div class="block">Provides the instance for CDI class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.gf.ejb">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a> in <a href="../../gf/ejb/package-summary.html">org.glassfish.tyrus.gf.ejb</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a> in <a href="../../gf/ejb/package-summary.html">org.glassfish.tyrus.gf.ejb</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../gf/ejb/EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb">EjbComponentProvider</a></span></code></th>
+<td class="colLast">
+<div class="block">Provides the instance for the supported EJB classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ComponentProvider.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ComponentProviderService.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ComponentProviderService.html
new file mode 100644
index 00000000..e7912c18
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ComponentProviderService.html
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ComponentProviderService (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ComponentProviderService (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ComponentProviderService" class="title">Uses of Class<br>org.glassfish.tyrus.core.ComponentProviderService</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ComponentProviderService.</span><code><span class="memberNameLink"><a href="../ComponentProviderService.html#create()">create</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new instance of <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core"><code>ComponentProviderService</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ComponentProviderService.</span><code><span class="memberNameLink"><a href="../ComponentProviderService.html#createClient()">createClient</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new instance of <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core"><code>ComponentProviderService</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../AnnotatedEndpoint.html#fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener)">fromClass</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedClass,
+         <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+         boolean&nbsp;isServerEndpoint,
+         int&nbsp;incomingBufferSize,
+         <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+         <a href="../monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../AnnotatedEndpoint.html#fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.util.Set)">fromClass</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedClass,
+         <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+         boolean&nbsp;isServerEndpoint,
+         int&nbsp;incomingBufferSize,
+         <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+         <a href="../monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+         java.util.Set&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../AnnotatedEndpoint.html#fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector)">fromInstance</a></span>&#8203;(java.lang.Object&nbsp;annotatedInstance,
+            <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+            boolean&nbsp;isServerEndpoint,
+            int&nbsp;incomingBufferSize,
+            <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../AnnotatedEndpoint.html#fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,java.util.Set)">fromInstance</a></span>&#8203;(java.lang.Object&nbsp;annotatedInstance,
+            <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+            boolean&nbsp;isServerEndpoint,
+            int&nbsp;incomingBufferSize,
+            <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+            java.util.Set&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ComponentProviderService.html#%3Cinit%3E(org.glassfish.tyrus.core.ComponentProviderService)">ComponentProviderService</a></span>&#8203;(<a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProviderService)</code></th>
+<td class="colLast">
+<div class="block">Copy constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TyrusEndpointWrapper.html#%3Cinit%3E(java.lang.Class,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for class that extends <a href="../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TyrusEndpointWrapper.html#%3Cinit%3E(javax.websocket.Endpoint,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(<a href="../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpoint,
+                    <a href="../../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for <a href="../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> instance or <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.TracingThreshold.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.TracingThreshold.html
new file mode 100644
index 00000000..05a51ae3
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.TracingThreshold.html
@@ -0,0 +1,238 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.DebugContext.TracingThreshold (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.DebugContext.TracingThreshold (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.DebugContext.TracingThreshold" class="title">Uses of Class<br>org.glassfish.tyrus.core.DebugContext.TracingThreshold</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DebugContext.TracingThreshold.</span><code><span class="memberNameLink"><a href="../DebugContext.TracingThreshold.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DebugContext.TracingThreshold.</span><code><span class="memberNameLink"><a href="../DebugContext.TracingThreshold.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#tracingThreshold(org.glassfish.tyrus.core.DebugContext.TracingThreshold)">tracingThreshold</a></span>&#8203;(<a href="../DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>&nbsp;tracingThreshold)</code></th>
+<td class="colLast">
+<div class="block">Set tracing threshold.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../DebugContext.html#%3Cinit%3E(org.glassfish.tyrus.core.DebugContext.TracingThreshold)">DebugContext</a></span>&#8203;(<a href="../DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>&nbsp;tracingThreshold)</code></th>
+<td class="colLast">
+<div class="block">Constructor that configures tracing to be ON and accepts tracing threshold as a parameter.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.TracingType.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.TracingType.html
new file mode 100644
index 00000000..b8f59817
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.TracingType.html
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.DebugContext.TracingType (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.DebugContext.TracingType (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.DebugContext.TracingType" class="title">Uses of Class<br>org.glassfish.tyrus.core.DebugContext.TracingType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DebugContext.TracingType.</span><code><span class="memberNameLink"><a href="../DebugContext.TracingType.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DebugContext.TracingType.</span><code><span class="memberNameLink"><a href="../DebugContext.TracingType.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#tracingType(org.glassfish.tyrus.core.DebugContext.TracingType)">tracingType</a></span>&#8203;(<a href="../DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a>&nbsp;tracingType)</code></th>
+<td class="colLast">
+<div class="block">Set type of tracing.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.Type.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.Type.html
new file mode 100644
index 00000000..fb8a9869
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.Type.html
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.DebugContext.Type (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.DebugContext.Type (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.DebugContext.Type" class="title">Uses of Class<br>org.glassfish.tyrus.core.DebugContext.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DebugContext.Type.</span><code><span class="memberNameLink"><a href="../DebugContext.Type.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DebugContext.Type.</span><code><span class="memberNameLink"><a href="../DebugContext.Type.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DebugContext.</span><code><span class="memberNameLink"><a href="../DebugContext.html#appendLogMessage(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Object...)">appendLogMessage</a></span>&#8203;(java.util.logging.Logger&nbsp;logger,
+                java.util.logging.Level&nbsp;loggingLevel,
+                <a href="../DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                java.lang.Object...&nbsp;messageParts)</code></th>
+<td class="colLast">
+<div class="block">Append a message to the log, the logging will be postponed until the message can be provided with a session ID.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DebugContext.</span><code><span class="memberNameLink"><a href="../DebugContext.html#appendLogMessageWithThrowable(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Throwable,java.lang.Object...)">appendLogMessageWithThrowable</a></span>&#8203;(java.util.logging.Logger&nbsp;logger,
+                             java.util.logging.Level&nbsp;loggingLevel,
+                             <a href="../DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                             java.lang.Throwable&nbsp;t,
+                             java.lang.Object...&nbsp;messageParts)</code></th>
+<td class="colLast">
+<div class="block">Append a message to the log, the logging will be postponed until the message can be provided with a session ID.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DebugContext.</span><code><span class="memberNameLink"><a href="../DebugContext.html#appendStandardOutputMessage(org.glassfish.tyrus.core.DebugContext.Type,java.lang.String)">appendStandardOutputMessage</a></span>&#8203;(<a href="../DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                           java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Write a message to the standard output, the logging will be postponed until the message can be provided with
+ a session ID.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DebugContext.</span><code><span class="memberNameLink"><a href="../DebugContext.html#appendTraceMessage(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Object...)">appendTraceMessage</a></span>&#8203;(java.util.logging.Logger&nbsp;logger,
+                  java.util.logging.Level&nbsp;loggingLevel,
+                  <a href="../DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                  java.lang.Object...&nbsp;messageParts)</code></th>
+<td class="colLast">
+<div class="block">Append a message to the log and to the list of trace messages that are sent in handshake response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DebugContext.</span><code><span class="memberNameLink"><a href="../DebugContext.html#appendTraceMessageWithThrowable(java.util.logging.Logger,java.util.logging.Level,org.glassfish.tyrus.core.DebugContext.Type,java.lang.Throwable,java.lang.Object...)">appendTraceMessageWithThrowable</a></span>&#8203;(java.util.logging.Logger&nbsp;logger,
+                               java.util.logging.Level&nbsp;loggingLevel,
+                               <a href="../DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a>&nbsp;type,
+                               java.lang.Throwable&nbsp;t,
+                               java.lang.Object...&nbsp;messageParts)</code></th>
+<td class="colLast">
+<div class="block">Append a message to the log and to the list of trace messages that are sent in handshake response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.html
new file mode 100644
index 00000000..06089ddb
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.html
@@ -0,0 +1,245 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.DebugContext (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.DebugContext (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.DebugContext" class="title">Uses of Class<br>org.glassfish.tyrus.core.DebugContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri">org.glassfish.tyrus.core.uri</a></th>
+<td class="colLast">
+<div class="block">URI matching.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusEndpointWrapper.</span><code><span class="memberNameLink"><a href="../TyrusEndpointWrapper.html#createSessionForRemoteEndpoint(org.glassfish.tyrus.core.TyrusWebSocket,java.lang.String,java.util.List,org.glassfish.tyrus.core.DebugContext)">createSessionForRemoteEndpoint</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket,
+                              java.lang.String&nbsp;subprotocol,
+                              java.util.List&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions,
+                              <a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a Session based on the <a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a>, subprotocols and extensions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../TyrusWebSocket.html#onConnect(org.glassfish.tyrus.spi.UpgradeRequest,java.lang.String,java.util.List,java.lang.String,org.glassfish.tyrus.core.DebugContext)">onConnect</a></span>&#8203;(<a href="../../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;upgradeRequest,
+         java.lang.String&nbsp;subProtocol,
+         java.util.List&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions,
+         java.lang.String&nbsp;connectionId,
+         <a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when the opening handshake between both
+ endpoints has been completed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a> in <a href="../uri/package-summary.html">org.glassfish.tyrus.core.uri</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../uri/package-summary.html">org.glassfish.tyrus.core.uri</a> with parameters of type <a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static java.util.List&lt;<a href="../uri/Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Match.</span><code><span class="memberNameLink"><a href="../uri/Match.html#getAllMatches(java.lang.String,java.util.Set,org.glassfish.tyrus.core.DebugContext)">getAllMatches</a></span>&#8203;(java.lang.String&nbsp;requestPath,
+             java.util.Set&lt;<a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&gt;&nbsp;endpoints,
+             <a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</code></th>
+<td class="colLast">
+<div class="block">Return a list of all endpoints with path matching the request path.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/DefaultComponentProvider.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/DefaultComponentProvider.html
new file mode 100644
index 00000000..5919f4d8
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/DefaultComponentProvider.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.DefaultComponentProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.DefaultComponentProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.DefaultComponentProvider" class="title">Uses of Class<br>org.glassfish.tyrus.core.DefaultComponentProvider</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.DefaultComponentProvider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ErrorCollector.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ErrorCollector.html
new file mode 100644
index 00000000..47602bcd
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ErrorCollector.html
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ErrorCollector (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ErrorCollector (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ErrorCollector" class="title">Uses of Class<br>org.glassfish.tyrus.core.ErrorCollector</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../AnnotatedEndpoint.html#fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener)">fromClass</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedClass,
+         <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+         boolean&nbsp;isServerEndpoint,
+         int&nbsp;incomingBufferSize,
+         <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+         <a href="../monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../AnnotatedEndpoint.html#fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.util.Set)">fromClass</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedClass,
+         <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+         boolean&nbsp;isServerEndpoint,
+         int&nbsp;incomingBufferSize,
+         <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+         <a href="../monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+         java.util.Set&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../AnnotatedEndpoint.html#fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector)">fromInstance</a></span>&#8203;(java.lang.Object&nbsp;annotatedInstance,
+            <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+            boolean&nbsp;isServerEndpoint,
+            int&nbsp;incomingBufferSize,
+            <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../AnnotatedEndpoint.html#fromInstance(java.lang.Object,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,java.util.Set)">fromInstance</a></span>&#8203;(java.lang.Object&nbsp;annotatedInstance,
+            <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+            boolean&nbsp;isServerEndpoint,
+            int&nbsp;incomingBufferSize,
+            <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+            java.util.Set&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ComponentProviderService.</span><code><span class="memberNameLink"><a href="../ComponentProviderService.html#getCoderInstance(java.lang.Class,javax.websocket.Session,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ErrorCollector)">getCoderInstance</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;c,
+                <a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+                <a href="../../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;endpointConfig,
+                <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</code></th>
+<td class="colLast">
+<div class="block">Provide an instance of <a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> or <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> descendant which is
+ coupled to <a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ComponentProviderService.</span><code><span class="memberNameLink"><a href="../ComponentProviderService.html#getInstance(java.lang.Class,javax.websocket.Session,org.glassfish.tyrus.core.ErrorCollector)">getInstance</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;c,
+           <a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session,
+           <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</code></th>
+<td class="colLast">
+<div class="block">Provide an instance of class which is coupled to <a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReflectionHelper.</span><code><span class="memberNameLink"><a href="../ReflectionHelper.html#getInstance(java.lang.Class,org.glassfish.tyrus.core.ErrorCollector)">getInstance</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;c,
+           <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector)</code></th>
+<td class="colLast">
+<div class="block">Creates an instance of <code>Class</code> c using <code>Class.newInstance()</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a> in <a href="../../server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../server/package-summary.html">org.glassfish.tyrus.server</a> with parameters of type <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../server/TyrusServerConfiguration.html#%3Cinit%3E(java.util.Set,java.util.Set,java.util.Set,org.glassfish.tyrus.core.ErrorCollector)">TyrusServerConfiguration</a></span>&#8203;(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;classes,
+                        java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;dynamicallyAddedClasses,
+                        java.util.Set&lt;<a href="../../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&gt;&nbsp;serverEndpointConfigs,
+                        <a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;errorCollector)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../../server/TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerConfiguration</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ErrorCollector.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ExecutorServiceProvider.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ExecutorServiceProvider.html
new file mode 100644
index 00000000..07120f2c
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ExecutorServiceProvider.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ExecutorServiceProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ExecutorServiceProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ExecutorServiceProvider" class="title">Uses of Class<br>org.glassfish.tyrus.core.ExecutorServiceProvider</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a> in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a> in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></span></code></th>
+<td class="colLast">
+<div class="block">ClientManager implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></span></code></th>
+<td class="colLast">
+<div class="block">Base WebSocket container.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a> in <a href="../../server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a> in <a href="../../server/package-summary.html">org.glassfish.tyrus.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></span></code></th>
+<td class="colLast">
+<div class="block">Server Container Implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/Handshake.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/Handshake.html
new file mode 100644
index 00000000..c81e8507
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/Handshake.html
@@ -0,0 +1,208 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.Handshake (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.Handshake (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Handshake.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.Handshake" class="title">Uses of Class<br>org.glassfish.tyrus.core.Handshake</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Handshake.</span><code><span class="memberNameLink"><a href="../Handshake.html#createClientHandshake(org.glassfish.tyrus.core.RequestContext)">createClientHandshake</a></span>&#8203;(<a href="../RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a>&nbsp;webSocketRequest)</code></th>
+<td class="colLast">
+<div class="block">Client-side handshake.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../ProtocolHandler.html#handshake(org.glassfish.tyrus.core.TyrusEndpointWrapper,org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">handshake</a></span>&#8203;(<a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+         <a href="../../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+         <a href="../../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response,
+         <a href="../extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;extensionContext)</code></th>
+<td class="colLast">
+<div class="block">Server side handshake processing.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Handshake.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/HandshakeException.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/HandshakeException.html
new file mode 100644
index 00000000..8019c63e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/HandshakeException.html
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.HandshakeException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.HandshakeException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HandshakeException.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.HandshakeException" class="title">Uses of Class<br>org.glassfish.tyrus.core.HandshakeException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client.auth">org.glassfish.tyrus.client.auth</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a> in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a> in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/RedirectException.html" title="class in org.glassfish.tyrus.client">RedirectException</a></span></code></th>
+<td class="colLast">
+<div class="block">This exception is set as a cause of <a href="../../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown from <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...)
+ when any of the Redirect HTTP response status codes (300, 301, 302, 303, 307, 308) is received as a handshake
+ response and:
+ 
+ 
+ <a href="../../client/ClientProperties.html#REDIRECT_ENABLED"><code>ClientProperties.REDIRECT_ENABLED</code></a> is not enabled
+ 
+ 
+ or the chained redirection count exceeds the value of <a href="../../client/ClientProperties.html#REDIRECT_THRESHOLD"><code>ClientProperties.REDIRECT_THRESHOLD</code></a>
+ 
+ 
+ or Infinite redirection loop is detected
+ 
+ 
+ or <a href="../../spi/UpgradeResponse.html#LOCATION">"Location"</a> response header is missing, empty or does not contain a valid <code>URI</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/RetryAfterException.html" title="class in org.glassfish.tyrus.client">RetryAfterException</a></span></code></th>
+<td class="colLast">
+<div class="block">This exception is set as a cause of <a href="../../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown from <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...) when HTTP response status code <code>503 - Service Unavailable</code> is
+ received.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a> in <a href="../../client/auth/package-summary.html">org.glassfish.tyrus.client.auth</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a> in <a href="../../client/auth/package-summary.html">org.glassfish.tyrus.client.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/auth/AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">AuthenticationException</a></span></code></th>
+<td class="colLast">
+<div class="block">This exception is set as a cause of <a href="../../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket"><code>DeploymentException</code></a> thrown when <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.connectToServer(...)
+ fails because of any of the following:
+ 
+ 
+ HTTP response status code 401 is received and "<a href="../../spi/UpgradeResponse.html#WWW_AUTHENTICATE">"WWW-Authenticate"</a>" header
+ contains scheme which is not handled by any <a href="../../client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><code>Authenticator</code></a> registered in <a href="../../client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><code>AuthConfig</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that throw <a href="../HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../ProtocolHandler.html#handshake(org.glassfish.tyrus.core.TyrusEndpointWrapper,org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">handshake</a></span>&#8203;(<a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+         <a href="../../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+         <a href="../../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response,
+         <a href="../extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;extensionContext)</code></th>
+<td class="colLast">
+<div class="block">Server side handshake processing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Handshake.</span><code><span class="memberNameLink"><a href="../Handshake.html#validateServerResponse(org.glassfish.tyrus.spi.UpgradeResponse)">validateServerResponse</a></span>&#8203;(<a href="../../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Client side only - validate server response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HandshakeException.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/MaskingKeyGenerator.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/MaskingKeyGenerator.html
new file mode 100644
index 00000000..7d9bacab
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/MaskingKeyGenerator.html
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.MaskingKeyGenerator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.MaskingKeyGenerator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.MaskingKeyGenerator" class="title">Uses of Interface<br>org.glassfish.tyrus.core.MaskingKeyGenerator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core">MaskingKeyGenerator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core">MaskingKeyGenerator</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core">MaskingKeyGenerator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Version.</span><code><span class="memberNameLink"><a href="../Version.html#createHandler(boolean,org.glassfish.tyrus.core.MaskingKeyGenerator)">createHandler</a></span>&#8203;(boolean&nbsp;mask,
+             <a href="../MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core">MaskingKeyGenerator</a>&nbsp;maskingKeyGenerator)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/MaxSessions.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/MaxSessions.html
new file mode 100644
index 00000000..9915ceb0
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/MaxSessions.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.MaxSessions (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.MaxSessions (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MaxSessions.html" title="annotation in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.MaxSessions" class="title">Uses of Class<br>org.glassfish.tyrus.core.MaxSessions</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.MaxSessions</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MaxSessions.html" title="annotation in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/MessageHandlerManager.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/MessageHandlerManager.html
new file mode 100644
index 00000000..224271d4
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/MessageHandlerManager.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.MessageHandlerManager (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.MessageHandlerManager (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.MessageHandlerManager" class="title">Uses of Class<br>org.glassfish.tyrus.core.MessageHandlerManager</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageHandlerManager.</span><code><span class="memberNameLink"><a href="../MessageHandlerManager.html#fromDecoderClasses(java.util.List)">fromDecoderClasses</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoderClasses)</code></th>
+<td class="colLast">
+<div class="block">Construct manager.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/OsgiRegistry.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/OsgiRegistry.html
new file mode 100644
index 00000000..bc02d454
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/OsgiRegistry.html
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.OsgiRegistry (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.OsgiRegistry (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OsgiRegistry.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.OsgiRegistry" class="title">Uses of Class<br>org.glassfish.tyrus.core.OsgiRegistry</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OsgiRegistry.</span><code><span class="memberNameLink"><a href="../OsgiRegistry.html#getInstance()">getInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an <code>OsgiRegistry</code> instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReflectionHelper.</span><code><span class="memberNameLink"><a href="../ReflectionHelper.html#getOsgiRegistryInstance()">getOsgiRegistryInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an <a href="../OsgiRegistry.html" title="class in org.glassfish.tyrus.core"><code>OsgiRegistry</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OsgiRegistry.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ProtocolException.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ProtocolException.html
new file mode 100644
index 00000000..330391e4
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ProtocolException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ProtocolException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ProtocolException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ProtocolException.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ProtocolException" class="title">Uses of Class<br>org.glassfish.tyrus.core.ProtocolException</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.ProtocolException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ProtocolException.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ProtocolHandler.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ProtocolHandler.html
new file mode 100644
index 00000000..2e628e8f
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ProtocolHandler.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ProtocolHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ProtocolHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ProtocolHandler.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ProtocolHandler" class="title">Uses of Class<br>org.glassfish.tyrus.core.ProtocolHandler</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Version.</span><code><span class="memberNameLink"><a href="../Version.html#createHandler(boolean,org.glassfish.tyrus.core.MaskingKeyGenerator)">createHandler</a></span>&#8203;(boolean&nbsp;mask,
+             <a href="../MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core">MaskingKeyGenerator</a>&nbsp;maskingKeyGenerator)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TyrusWebSocket.html#%3Cinit%3E(org.glassfish.tyrus.core.ProtocolHandler,org.glassfish.tyrus.core.TyrusEndpointWrapper)">TyrusWebSocket</a></span>&#8203;(<a href="../ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a>&nbsp;protocolHandler,
+              <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper)</code></th>
+<td class="colLast">
+<div class="block">Create new instance, set <a href="../ProtocolHandler.html" title="class in org.glassfish.tyrus.core"><code>ProtocolHandler</code></a> and register <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ProtocolHandler.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.ClassTypePair.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.ClassTypePair.html
new file mode 100644
index 00000000..77bb3ad1
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.ClassTypePair.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ReflectionHelper.ClassTypePair (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper.ClassTypePair (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper.ClassTypePair" class="title">Uses of Class<br>org.glassfish.tyrus.core.ReflectionHelper.ClassTypePair</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReflectionHelper.</span><code><span class="memberNameLink"><a href="../ReflectionHelper.html#resolveTypeVariable(java.lang.Class,java.lang.Class,java.lang.reflect.TypeVariable)">resolveTypeVariable</a></span>&#8203;(java.lang.Class&nbsp;c,
+                   java.lang.Class&nbsp;dc,
+                   java.lang.reflect.TypeVariable&nbsp;tv)</code></th>
+<td class="colLast">
+<div class="block">Given a type variable resolve the Java class of that variable.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.DeclaringClassInterfacePair.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.DeclaringClassInterfacePair.html
new file mode 100644
index 00000000..10903998
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.DeclaringClassInterfacePair.html
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair" class="title">Uses of Class<br>org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReflectionHelper.</span><code><span class="memberNameLink"><a href="../ReflectionHelper.html#getClass(java.lang.Class,java.lang.Class)">getClass</a></span>&#8203;(java.lang.Class&nbsp;concrete,
+        java.lang.Class&nbsp;iface)</code></th>
+<td class="colLast">
+<div class="block">Find the declaring class that implements or extends an interface.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.Class[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReflectionHelper.</span><code><span class="memberNameLink"><a href="../ReflectionHelper.html#getParameterizedClassArguments(org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair)">getParameterizedClassArguments</a></span>&#8203;(<a href="../ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a>&nbsp;p)</code></th>
+<td class="colLast">
+<div class="block">Get the parameterized class arguments for a declaring class that declares a generic interface type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.reflect.Type[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReflectionHelper.</span><code><span class="memberNameLink"><a href="../ReflectionHelper.html#getParameterizedTypeArguments(org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair)">getParameterizedTypeArguments</a></span>&#8203;(<a href="../ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a>&nbsp;p)</code></th>
+<td class="colLast">
+<div class="block">Get the parameterized type arguments for a declaring class that declares a generic interface type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.TypeClassPair.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.TypeClassPair.html
new file mode 100644
index 00000000..bc90761e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.TypeClassPair.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ReflectionHelper.TypeClassPair (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper.TypeClassPair (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper.TypeClassPair" class="title">Uses of Class<br>org.glassfish.tyrus.core.ReflectionHelper.TypeClassPair</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReflectionHelper.</span><code><span class="memberNameLink"><a href="../ReflectionHelper.html#getTypeArgumentAndClass(java.lang.reflect.Type)">getTypeArgumentAndClass</a></span>&#8203;(java.lang.reflect.Type&nbsp;parameterizedType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.html
new file mode 100644
index 00000000..f8fff484
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ReflectionHelper (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReflectionHelper.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper" class="title">Uses of Class<br>org.glassfish.tyrus.core.ReflectionHelper</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.ReflectionHelper</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReflectionHelper.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/RequestContext.Builder.IsUserInRoleDelegate.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/RequestContext.Builder.IsUserInRoleDelegate.html
new file mode 100644
index 00000000..24bf6167
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/RequestContext.Builder.IsUserInRoleDelegate.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate" class="title">Uses of Interface<br>org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core">RequestContext.Builder.IsUserInRoleDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core">RequestContext.Builder.IsUserInRoleDelegate</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core">RequestContext.Builder.IsUserInRoleDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RequestContext.Builder.</span><code><span class="memberNameLink"><a href="../RequestContext.Builder.html#isUserInRoleDelegate(org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate)">isUserInRoleDelegate</a></span>&#8203;(<a href="../RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core">RequestContext.Builder.IsUserInRoleDelegate</a>&nbsp;isUserInRoleDelegate)</code></th>
+<td class="colLast">
+<div class="block">Set delegate for <a href="../RequestContext.html#isUserInRole(java.lang.String)"><code>RequestContext.isUserInRole(String)</code></a> method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/RequestContext.Builder.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/RequestContext.Builder.html
new file mode 100644
index 00000000..c30bb091
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/RequestContext.Builder.html
@@ -0,0 +1,261 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.RequestContext.Builder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.RequestContext.Builder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.RequestContext.Builder" class="title">Uses of Class<br>org.glassfish.tyrus.core.RequestContext.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RequestContext.Builder.</span><code><span class="memberNameLink"><a href="../RequestContext.Builder.html#create()">create</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create empty builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RequestContext.Builder.</span><code><span class="memberNameLink"><a href="../RequestContext.Builder.html#create(org.glassfish.tyrus.core.RequestContext)">create</a></span>&#8203;(<a href="../RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a>&nbsp;requestContext)</code></th>
+<td class="colLast">
+<div class="block">Create builder instance based on provided <a href="../RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RequestContext.Builder.</span><code><span class="memberNameLink"><a href="../RequestContext.Builder.html#httpSession(java.lang.Object)">httpSession</a></span>&#8203;(java.lang.Object&nbsp;httpSession)</code></th>
+<td class="colLast">
+<div class="block">Set http session.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RequestContext.Builder.</span><code><span class="memberNameLink"><a href="../RequestContext.Builder.html#isUserInRoleDelegate(org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate)">isUserInRoleDelegate</a></span>&#8203;(<a href="../RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core">RequestContext.Builder.IsUserInRoleDelegate</a>&nbsp;isUserInRoleDelegate)</code></th>
+<td class="colLast">
+<div class="block">Set delegate for <a href="../RequestContext.html#isUserInRole(java.lang.String)"><code>RequestContext.isUserInRole(String)</code></a> method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RequestContext.Builder.</span><code><span class="memberNameLink"><a href="../RequestContext.Builder.html#parameterMap(java.util.Map)">parameterMap</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.String[]&gt;&nbsp;parameterMap)</code></th>
+<td class="colLast">
+<div class="block">Set parameter map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RequestContext.Builder.</span><code><span class="memberNameLink"><a href="../RequestContext.Builder.html#queryString(java.lang.String)">queryString</a></span>&#8203;(java.lang.String&nbsp;queryString)</code></th>
+<td class="colLast">
+<div class="block">Set query string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RequestContext.Builder.</span><code><span class="memberNameLink"><a href="../RequestContext.Builder.html#remoteAddr(java.lang.String)">remoteAddr</a></span>&#8203;(java.lang.String&nbsp;remoteAddr)</code></th>
+<td class="colLast">
+<div class="block">Set remote address.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RequestContext.Builder.</span><code><span class="memberNameLink"><a href="../RequestContext.Builder.html#requestURI(java.net.URI)">requestURI</a></span>&#8203;(java.net.URI&nbsp;requestURI)</code></th>
+<td class="colLast">
+<div class="block">Set request URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RequestContext.Builder.</span><code><span class="memberNameLink"><a href="../RequestContext.Builder.html#secure(boolean)">secure</a></span>&#8203;(boolean&nbsp;secure)</code></th>
+<td class="colLast">
+<div class="block">Set secure state.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RequestContext.Builder.</span><code><span class="memberNameLink"><a href="../RequestContext.Builder.html#userPrincipal(java.security.Principal)">userPrincipal</a></span>&#8203;(java.security.Principal&nbsp;principal)</code></th>
+<td class="colLast">
+<div class="block">Set <code>Principal</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/RequestContext.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/RequestContext.html
new file mode 100644
index 00000000..0e298d07
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/RequestContext.html
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.RequestContext (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.RequestContext (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RequestContext.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.RequestContext" class="title">Uses of Class<br>org.glassfish.tyrus.core.RequestContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RequestContext.Builder.</span><code><span class="memberNameLink"><a href="../RequestContext.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build <a href="../RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a> from given properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Handshake.</span><code><span class="memberNameLink"><a href="../Handshake.html#getRequest()">getRequest</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Client side only - get the <a href="../../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeRequest</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RequestContext.Builder.</span><code><span class="memberNameLink"><a href="../RequestContext.Builder.html#create(org.glassfish.tyrus.core.RequestContext)">create</a></span>&#8203;(<a href="../RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a>&nbsp;requestContext)</code></th>
+<td class="colLast">
+<div class="block">Create builder instance based on provided <a href="../RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Handshake.</span><code><span class="memberNameLink"><a href="../Handshake.html#createClientHandshake(org.glassfish.tyrus.core.RequestContext)">createClientHandshake</a></span>&#8203;(<a href="../RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a>&nbsp;webSocketRequest)</code></th>
+<td class="colLast">
+<div class="block">Client-side handshake.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RequestContext.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceConfigurationError.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceConfigurationError.html
new file mode 100644
index 00000000..529a30ef
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceConfigurationError.html
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ServiceConfigurationError (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ServiceConfigurationError (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ServiceConfigurationError" class="title">Uses of Class<br>org.glassfish.tyrus.core.ServiceConfigurationError</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that throw <a href="../ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceFinder.</span><code><span class="memberNameLink"><a href="../ServiceFinder.html#find(java.lang.Class)">find</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the context class loader.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceFinder.</span><code><span class="memberNameLink"><a href="../ServiceFinder.html#find(java.lang.Class,boolean)">find</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+    boolean&nbsp;ignoreOnClassNotFound)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the context class loader.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceFinder.</span><code><span class="memberNameLink"><a href="../ServiceFinder.html#find(java.lang.Class,java.lang.ClassLoader)">find</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+    java.lang.ClassLoader&nbsp;loader)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the given class loader.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceFinder.</span><code><span class="memberNameLink"><a href="../ServiceFinder.html#find(java.lang.Class,java.lang.ClassLoader,boolean)">find</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+    java.lang.ClassLoader&nbsp;loader,
+    boolean&nbsp;ignoreOnClassNotFound)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the given class loader.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceFinder.</span><code><span class="memberNameLink"><a href="../ServiceFinder.html#find(java.lang.String)">find</a></span>&#8203;(java.lang.String&nbsp;serviceName)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available classes of a given
+ service file using the context class loader.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ServiceFinder.html" title="type parameter in ServiceFinder">T</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceFinder.</span><code><span class="memberNameLink"><a href="../ServiceFinder.html#toArray()">toArray</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns discovered objects all at once.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;<a href="../ServiceFinder.html" title="type parameter in ServiceFinder">T</a>&gt;[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceFinder.</span><code><span class="memberNameLink"><a href="../ServiceFinder.html#toClassArray()">toClassArray</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns discovered classes all at once.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceFinder.DefaultServiceIteratorProvider.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceFinder.DefaultServiceIteratorProvider.html
new file mode 100644
index 00000000..16d98df8
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceFinder.DefaultServiceIteratorProvider.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ServiceFinder.DefaultServiceIteratorProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ServiceFinder.DefaultServiceIteratorProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ServiceFinder.DefaultServiceIteratorProvider" class="title">Uses of Class<br>org.glassfish.tyrus.core.ServiceFinder.DefaultServiceIteratorProvider</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.ServiceFinder.DefaultServiceIteratorProvider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceFinder.ServiceIteratorProvider.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceFinder.ServiceIteratorProvider.html
new file mode 100644
index 00000000..fd3ea1f9
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceFinder.ServiceIteratorProvider.html
@@ -0,0 +1,217 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider" class="title">Uses of Class<br>org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.DefaultServiceIteratorProvider</a></span></code></th>
+<td class="colLast">
+<div class="block">The default service iterator provider that looks up provider classes in
+ META-INF/services files.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceFinder.</span><code><span class="memberNameLink"><a href="../ServiceFinder.html#setIteratorProvider(org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider)">setIteratorProvider</a></span>&#8203;(<a href="../ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a>&nbsp;sip)</code></th>
+<td class="colLast">
+<div class="block">Register the service iterator provider to iterate on provider instances
+ or classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceFinder.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceFinder.html
new file mode 100644
index 00000000..a2cfc871
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceFinder.html
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ServiceFinder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ServiceFinder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.ServiceFinder" class="title">Uses of Class<br>org.glassfish.tyrus.core.ServiceFinder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceFinder.</span><code><span class="memberNameLink"><a href="../ServiceFinder.html#find(java.lang.Class)">find</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the context class loader.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceFinder.</span><code><span class="memberNameLink"><a href="../ServiceFinder.html#find(java.lang.Class,boolean)">find</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+    boolean&nbsp;ignoreOnClassNotFound)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the context class loader.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceFinder.</span><code><span class="memberNameLink"><a href="../ServiceFinder.html#find(java.lang.Class,java.lang.ClassLoader)">find</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+    java.lang.ClassLoader&nbsp;loader)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the given class loader.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceFinder.</span><code><span class="memberNameLink"><a href="../ServiceFinder.html#find(java.lang.Class,java.lang.ClassLoader,boolean)">find</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;service,
+    java.lang.ClassLoader&nbsp;loader,
+    boolean&nbsp;ignoreOnClassNotFound)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available providers of a
+ given service using the given class loader.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServiceFinder.</span><code><span class="memberNameLink"><a href="../ServiceFinder.html#find(java.lang.String)">find</a></span>&#8203;(java.lang.String&nbsp;serviceName)</code></th>
+<td class="colLast">
+<div class="block">Locates and incrementally instantiates the available classes of a given
+ service file using the context class loader.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServiceFinder.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/StrictUtf8.Parser.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/StrictUtf8.Parser.html
new file mode 100644
index 00000000..16fa1748
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/StrictUtf8.Parser.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.StrictUtf8.Parser (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.StrictUtf8.Parser (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../StrictUtf8.Parser.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.StrictUtf8.Parser" class="title">Uses of Class<br>org.glassfish.tyrus.core.StrictUtf8.Parser</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.StrictUtf8.Parser</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../StrictUtf8.Parser.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/StrictUtf8.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/StrictUtf8.html
new file mode 100644
index 00000000..4b243d5b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/StrictUtf8.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.StrictUtf8 (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.StrictUtf8 (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../StrictUtf8.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.StrictUtf8" class="title">Uses of Class<br>org.glassfish.tyrus.core.StrictUtf8</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.StrictUtf8</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../StrictUtf8.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.OnOpenResult.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.OnOpenResult.html
new file mode 100644
index 00000000..46cd516c
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.OnOpenResult.html
@@ -0,0 +1,214 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener.OnOpenResult (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener.OnOpenResult (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener.OnOpenResult" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener.OnOpenResult</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusEndpointWrapper.SessionListener.</span><code><span class="memberNameLink"><a href="../TyrusEndpointWrapper.SessionListener.html#onOpen(org.glassfish.tyrus.core.TyrusSession)">onOpen</a></span>&#8203;(<a href="../TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Invoked before <a href="../../../../../javax/websocket/OnOpen.html" title="annotation in javax.websocket"><code>OnOpen</code></a> annotated method
+ or <a href="../../../../../javax/websocket/Endpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)"><code>Endpoint.onOpen(javax.websocket.Session, javax.websocket.EndpointConfig)</code></a> is invoked.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusEndpointWrapper.SessionListener.OnOpenResult.</span><code><span class="memberNameLink"><a href="../TyrusEndpointWrapper.SessionListener.OnOpenResult.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusEndpointWrapper.SessionListener.OnOpenResult.</span><code><span class="memberNameLink"><a href="../TyrusEndpointWrapper.SessionListener.OnOpenResult.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.html
new file mode 100644
index 00000000..e062ed27
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.html
@@ -0,0 +1,220 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TyrusEndpointWrapper.html#%3Cinit%3E(java.lang.Class,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for class that extends <a href="../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TyrusEndpointWrapper.html#%3Cinit%3E(javax.websocket.Endpoint,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(<a href="../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpoint,
+                    <a href="../../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for <a href="../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> instance or <a href="../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.html
new file mode 100644
index 00000000..22df7ce7
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.html
@@ -0,0 +1,305 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusEndpointWrapper</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri">org.glassfish.tyrus.core.uri</a></th>
+<td class="colLast">
+<div class="block">URI matching.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../ProtocolHandler.html#handshake(org.glassfish.tyrus.core.TyrusEndpointWrapper,org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">handshake</a></span>&#8203;(<a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+         <a href="../../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+         <a href="../../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response,
+         <a href="../extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;extensionContext)</code></th>
+<td class="colLast">
+<div class="block">Server side handshake processing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.html#unregister(org.glassfish.tyrus.core.TyrusEndpointWrapper)">unregister</a></span>&#8203;(<a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper)</code></th>
+<td class="colLast">
+<div class="block">Un-registers the specified <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> with the <code>WebSocketEngine</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TyrusWebSocket.html#%3Cinit%3E(org.glassfish.tyrus.core.ProtocolHandler,org.glassfish.tyrus.core.TyrusEndpointWrapper)">TyrusWebSocket</a></span>&#8203;(<a href="../ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a>&nbsp;protocolHandler,
+              <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper)</code></th>
+<td class="colLast">
+<div class="block">Create new instance, set <a href="../ProtocolHandler.html" title="class in org.glassfish.tyrus.core"><code>ProtocolHandler</code></a> and register <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a> in <a href="../cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a> with parameters of type <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../cluster/RemoteSession.html#%3Cinit%3E(java.lang.String,org.glassfish.tyrus.core.cluster.ClusterContext,java.util.Map,org.glassfish.tyrus.core.TyrusEndpointWrapper,javax.websocket.Session)">RemoteSession</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+             <a href="../cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+             java.util.Map&lt;<a href="../cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>,&#8203;java.lang.Object&gt;&nbsp;distributedPropertyMap,
+             <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+             <a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a> in <a href="../uri/package-summary.html">org.glassfish.tyrus.core.uri</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../uri/package-summary.html">org.glassfish.tyrus.core.uri</a> that return <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Match.</span><code><span class="memberNameLink"><a href="../uri/Match.html#getEndpointWrapper()">getEndpointWrapper</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get endpoint wrapper.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../uri/package-summary.html">org.glassfish.tyrus.core.uri</a> with type arguments of type <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static java.util.List&lt;<a href="../uri/Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Match.</span><code><span class="memberNameLink"><a href="../uri/Match.html#getAllMatches(java.lang.String,java.util.Set,org.glassfish.tyrus.core.DebugContext)">getAllMatches</a></span>&#8203;(java.lang.String&nbsp;requestPath,
+             java.util.Set&lt;<a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&gt;&nbsp;endpoints,
+             <a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</code></th>
+<td class="colLast">
+<div class="block">Return a list of all endpoints with path matching the request path.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusExtension.TyrusParameter.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusExtension.TyrusParameter.html
new file mode 100644
index 00000000..ea8943f3
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusExtension.TyrusParameter.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusExtension.TyrusParameter (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusExtension.TyrusParameter (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusExtension.TyrusParameter" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusExtension.TyrusParameter</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.TyrusExtension.TyrusParameter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusExtension.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusExtension.html
new file mode 100644
index 00000000..1f813e11
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusExtension.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusExtension (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusExtension (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusExtension.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusExtension" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusExtension</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.TyrusExtension</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusExtension.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusFuture.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusFuture.html
new file mode 100644
index 00000000..1b6a0a30
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusFuture.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusFuture (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusFuture (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusFuture.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusFuture" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusFuture</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.TyrusFuture</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusFuture.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusRemoteEndpoint.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusRemoteEndpoint.html
new file mode 100644
index 00000000..cd6d9688
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusRemoteEndpoint.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusRemoteEndpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusRemoteEndpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusRemoteEndpoint" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusRemoteEndpoint</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.TyrusRemoteEndpoint</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.Builder.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.Builder.html
new file mode 100644
index 00000000..c19196c6
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.Builder.html
@@ -0,0 +1,245 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfig.Builder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfig.Builder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfig.Builder" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusServerEndpointConfig.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../TyrusServerEndpointConfig.Builder.html#configurator(javax.websocket.server.ServerEndpointConfig.Configurator)">configurator</a></span>&#8203;(<a href="../../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;serverEndpointConfigurator)</code></th>
+<td class="colLast">
+<div class="block">Sets the custom configurator to use on the configuration
+ object built by this builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../TyrusServerEndpointConfig.Builder.html#create(java.lang.Class,java.lang.String)">create</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass,
+      java.lang.String&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Creates the builder with the mandatory information of the endpoint class
+ (programmatic or annotated), the relative URI or URI-template to use,
+ and with no subprotocols, extensions, encoders, decoders or custom
+ configurator.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../TyrusServerEndpointConfig.Builder.html#decoders(java.util.List)">decoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;&nbsp;decoders)</code></th>
+<td class="colLast">
+<div class="block">Sets the decoder implementation classes to use in the configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../TyrusServerEndpointConfig.Builder.html#encoders(java.util.List)">encoders</a></span>&#8203;(java.util.List&lt;java.lang.Class&lt;? extends <a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a>&gt;&gt;&nbsp;encoders)</code></th>
+<td class="colLast">
+<div class="block">Sets the list of encoder implementation classes for this builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../TyrusServerEndpointConfig.Builder.html#extensions(java.util.List)">extensions</a></span>&#8203;(java.util.List&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Sets the extensions to use in the configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../TyrusServerEndpointConfig.Builder.html#maxSessions(int)">maxSessions</a></span>&#8203;(int&nbsp;maxSessions)</code></th>
+<td class="colLast">
+<div class="block">Sets maximal number of open sessions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../TyrusServerEndpointConfig.Builder.html#subprotocols(java.util.List)">subprotocols</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;subprotocols)</code></th>
+<td class="colLast">
+<div class="block">Sets the subprotocols to use in the configuration.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.html
new file mode 100644
index 00000000..916401aa
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.TyrusServerEndpointConfig (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.TyrusServerEndpointConfig (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.TyrusServerEndpointConfig" class="title">Uses of Interface<br>org.glassfish.tyrus.core.TyrusServerEndpointConfig</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusServerEndpointConfig.Builder.</span><code><span class="memberNameLink"><a href="../TyrusServerEndpointConfig.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Builds the configuration object using the current attributes
+ that have been set on this builder object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfigurator.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfigurator.html
new file mode 100644
index 00000000..e2cb0946
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfigurator.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfigurator (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfigurator (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfigurator" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusServerEndpointConfigurator</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.TyrusServerEndpointConfigurator</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusSession.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusSession.html
new file mode 100644
index 00000000..e8456255
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusSession.html
@@ -0,0 +1,208 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusSession (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusSession (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusSession.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusSession" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusSession</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusEndpointWrapper.SessionListener.</span><code><span class="memberNameLink"><a href="../TyrusEndpointWrapper.SessionListener.html#onClose(org.glassfish.tyrus.core.TyrusSession,javax.websocket.CloseReason)">onClose</a></span>&#8203;(<a href="../TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a>&nbsp;session,
+       <a href="../../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Invoked after <a href="../../../../../javax/websocket/OnClose.html" title="annotation in javax.websocket"><code>OnClose</code></a> annotated method
+ or <a href="../../../../../javax/websocket/Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)"><code>Endpoint.onClose(javax.websocket.Session, javax.websocket.CloseReason)</code></a> execution.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusEndpointWrapper.SessionListener.</span><code><span class="memberNameLink"><a href="../TyrusEndpointWrapper.SessionListener.html#onOpen(org.glassfish.tyrus.core.TyrusSession)">onOpen</a></span>&#8203;(<a href="../TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Invoked before <a href="../../../../../javax/websocket/OnOpen.html" title="annotation in javax.websocket"><code>OnOpen</code></a> annotated method
+ or <a href="../../../../../javax/websocket/Endpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)"><code>Endpoint.onOpen(javax.websocket.Session, javax.websocket.EndpointConfig)</code></a> is invoked.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusSession.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusUpgradeResponse.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusUpgradeResponse.html
new file mode 100644
index 00000000..941a6975
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusUpgradeResponse.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusUpgradeResponse (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusUpgradeResponse (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusUpgradeResponse" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusUpgradeResponse</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.TyrusUpgradeResponse</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusWebSocket.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusWebSocket.html
new file mode 100644
index 00000000..22469503
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusWebSocket.html
@@ -0,0 +1,271 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusWebSocket (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusWebSocket (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusWebSocket" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusWebSocket</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusEndpointWrapper.</span><code><span class="memberNameLink"><a href="../TyrusEndpointWrapper.html#createSessionForRemoteEndpoint(org.glassfish.tyrus.core.TyrusWebSocket,java.lang.String,java.util.List,org.glassfish.tyrus.core.DebugContext)">createSessionForRemoteEndpoint</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket,
+                              java.lang.String&nbsp;subprotocol,
+                              java.util.List&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions,
+                              <a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</code></th>
+<td class="colLast">
+<div class="block">Creates a Session based on the <a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocket</code></a>, subprotocols and extensions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../ProtocolHandler.html#process(org.glassfish.tyrus.core.frame.Frame,org.glassfish.tyrus.core.TyrusWebSocket)">process</a></span>&#8203;(<a href="../frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+       <a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">
+<div class="block">TODO.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../ProtocolHandler.html#setWebSocket(org.glassfish.tyrus.core.TyrusWebSocket)">setWebSocket</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;webSocket)</code></th>
+<td class="colLast">
+<div class="block">Client side.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.frame">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a> in <a href="../frame/package-summary.html">org.glassfish.tyrus.core.frame</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../frame/package-summary.html">org.glassfish.tyrus.core.frame</a> with parameters of type <a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">BinaryFrame.</span><code><span class="memberNameLink"><a href="../frame/BinaryFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CloseFrame.</span><code><span class="memberNameLink"><a href="../frame/CloseFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PingFrame.</span><code><span class="memberNameLink"><a href="../frame/PingFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PongFrame.</span><code><span class="memberNameLink"><a href="../frame/PongFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TextFrame.</span><code><span class="memberNameLink"><a href="../frame/TextFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusFrame.</span><code><span class="memberNameLink"><a href="../frame/TyrusFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">
+<div class="block">Execution part of frame processing.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html
new file mode 100644
index 00000000..662e0cc2
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html
@@ -0,0 +1,253 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine.TyrusWebSocketEngineBuilder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine.TyrusWebSocketEngineBuilder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine.TyrusWebSocketEngineBuilder" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#applicationEventListener(org.glassfish.tyrus.core.monitoring.ApplicationEventListener)">applicationEventListener</a></span>&#8203;(<a href="../monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a>&nbsp;applicationEventListener)</code></th>
+<td class="colLast">
+<div class="block">Set <a href="../monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><code>ApplicationEventListener</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.html#builder(javax.websocket.WebSocketContainer)">builder</a></span>&#8203;(<a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;webSocketContainer)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</code></a>
+ instance based on passed <a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><code>WebSocketContainer</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#clusterContext(org.glassfish.tyrus.core.cluster.ClusterContext)">clusterContext</a></span>&#8203;(<a href="../cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext)</code></th>
+<td class="colLast">
+<div class="block">Set <a href="../cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster"><code>ClusterContext</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#incomingBufferSize(java.lang.Integer)">incomingBufferSize</a></span>&#8203;(java.lang.Integer&nbsp;incomingBufferSize)</code></th>
+<td class="colLast">
+<div class="block">Set incoming buffer size.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#maxSessionsPerApp(java.lang.Integer)">maxSessionsPerApp</a></span>&#8203;(java.lang.Integer&nbsp;maxSessionsPerApp)</code></th>
+<td class="colLast">
+<div class="block">Set maximal number of open sessions per server application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#maxSessionsPerRemoteAddr(java.lang.Integer)">maxSessionsPerRemoteAddr</a></span>&#8203;(java.lang.Integer&nbsp;maxSessionsPerRemoteAddr)</code></th>
+<td class="colLast">
+<div class="block">Set maximal number of open sessions from remote address.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#parallelBroadcastEnabled(java.lang.Boolean)">parallelBroadcastEnabled</a></span>&#8203;(java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#tracingThreshold(org.glassfish.tyrus.core.DebugContext.TracingThreshold)">tracingThreshold</a></span>&#8203;(<a href="../DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a>&nbsp;tracingThreshold)</code></th>
+<td class="colLast">
+<div class="block">Set tracing threshold.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#tracingType(org.glassfish.tyrus.core.DebugContext.TracingType)">tracingType</a></span>&#8203;(<a href="../DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a>&nbsp;tracingType)</code></th>
+<td class="colLast">
+<div class="block">Set type of tracing.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.html
new file mode 100644
index 00000000..21383aeb
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine" class="title">Uses of Class<br>org.glassfish.tyrus.core.TyrusWebSocketEngine</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.</span><code><span class="memberNameLink"><a href="../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> instance with current set of parameters.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/Utf8DecodingException.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/Utf8DecodingException.html
new file mode 100644
index 00000000..8a31eb98
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/Utf8DecodingException.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.Utf8DecodingException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.Utf8DecodingException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Utf8DecodingException.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.Utf8DecodingException" class="title">Uses of Class<br>org.glassfish.tyrus.core.Utf8DecodingException</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.Utf8DecodingException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Utf8DecodingException.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/Utils.Stringifier.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/Utils.Stringifier.html
new file mode 100644
index 00000000..c6fa6523
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/Utils.Stringifier.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.Utils.Stringifier (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.Utils.Stringifier (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.Utils.Stringifier" class="title">Uses of Class<br>org.glassfish.tyrus.core.Utils.Stringifier</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Utils.</span><code><span class="memberNameLink"><a href="../Utils.html#getHeaderFromList(java.util.List,org.glassfish.tyrus.core.Utils.Stringifier)">getHeaderFromList</a></span>&#8203;(java.util.List&lt;T&gt;&nbsp;list,
+                 <a href="../Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a>&lt;T&gt;&nbsp;stringifier)</code></th>
+<td class="colLast">
+<div class="block">Convert list of values to singe <code>String</code> usable as HTTP header value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;java.util.List&lt;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Utils.</span><code><span class="memberNameLink"><a href="../Utils.html#getStringList(java.util.List,org.glassfish.tyrus.core.Utils.Stringifier)">getStringList</a></span>&#8203;(java.util.List&lt;T&gt;&nbsp;list,
+             <a href="../Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a>&lt;T&gt;&nbsp;stringifier)</code></th>
+<td class="colLast">
+<div class="block">Get list of strings from List&lt;T&gt;.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/Utils.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/Utils.html
new file mode 100644
index 00000000..78a78076
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/Utils.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.Utils (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.Utils (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Utils.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.Utils" class="title">Uses of Class<br>org.glassfish.tyrus.core.Utils</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.Utils</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Utils.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/Version.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/Version.html
new file mode 100644
index 00000000..5586a441
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/Version.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.Version (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.Version (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Version.html" title="enum in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.Version" class="title">Uses of Class<br>org.glassfish.tyrus.core.Version</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Version.html" title="enum in org.glassfish.tyrus.core">Version</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Version.html" title="enum in org.glassfish.tyrus.core">Version</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../Version.html" title="enum in org.glassfish.tyrus.core">Version</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Version.html" title="enum in org.glassfish.tyrus.core">Version</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Version.</span><code><span class="memberNameLink"><a href="../Version.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Version.html" title="enum in org.glassfish.tyrus.core">Version</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Version.</span><code><span class="memberNameLink"><a href="../Version.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Version.html" title="enum in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/class-use/WebSocketException.html b/apidocs/1.20/org/glassfish/tyrus/core/class-use/WebSocketException.html
new file mode 100644
index 00000000..b326314e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/class-use/WebSocketException.html
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.WebSocketException (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.WebSocketException (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebSocketException.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.WebSocketException" class="title">Uses of Class<br>org.glassfish.tyrus.core.WebSocketException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a> in <a href="../package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ProtocolException.html" title="class in org.glassfish.tyrus.core">ProtocolException</a></span></code></th>
+<td class="colLast">
+<div class="block">Represents issue with parsing or producing websocket frame.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Utf8DecodingException.html" title="class in org.glassfish.tyrus.core">Utf8DecodingException</a></span></code></th>
+<td class="colLast">
+<div class="block">TODO</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebSocketException.html" title="class in org.glassfish.tyrus.core">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/BroadcastListener.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/BroadcastListener.html
new file mode 100644
index 00000000..15e7a4ae
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/BroadcastListener.html
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>BroadcastListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BroadcastListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.cluster</a></div>
+<h2 title="Interface BroadcastListener" class="title">Interface BroadcastListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">BroadcastListener</span></pre>
+<div class="block">Broadcast listener.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onBroadcast(byte%5B%5D)">onBroadcast</a></span>&#8203;(byte[]&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Invoked when received request to broadcast binary data.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onBroadcast(java.lang.String)">onBroadcast</a></span>&#8203;(java.lang.String&nbsp;text)</code></th>
+<td class="colLast">
+<div class="block">Invoked when received request to broadcast text message.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onBroadcast(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onBroadcast</h4>
+<pre class="methodSignature">void&nbsp;onBroadcast&#8203;(java.lang.String&nbsp;text)</pre>
+<div class="block">Invoked when received request to broadcast text message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>text</code> - message to broadcast.</dd>
+</dl>
+</li>
+</ul>
+<a id="onBroadcast(byte[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onBroadcast</h4>
+<pre class="methodSignature">void&nbsp;onBroadcast&#8203;(byte[]&nbsp;data)</pre>
+<div class="block">Invoked when received request to broadcast binary data.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - data to broadcast.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/ClusterContext.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/ClusterContext.html
new file mode 100644
index 00000000..40e798e8
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/ClusterContext.html
@@ -0,0 +1,993 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClusterContext (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClusterContext (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClusterContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.cluster</a></div>
+<h2 title="Class ClusterContext" class="title">Class ClusterContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.cluster.ClusterContext</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public abstract class <span class="typeNameLabel">ClusterContext</span>
+extends java.lang.Object</pre>
+<div class="block">Cluster related context.
+ <p>
+ There is exactly one instance per cluster node and all communication is realized using this instance.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CLUSTER_CONTEXT">CLUSTER_CONTEXT</a></span></code></th>
+<td class="colLast">
+<div class="block">ClusterContext registration property.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ClusterContext</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#broadcastBinary(java.lang.String,byte%5B%5D)">broadcastBinary</a></span>&#8203;(java.lang.String&nbsp;endpointPath,
+               byte[]&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Broadcast binary message.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#broadcastText(java.lang.String,java.lang.String)">broadcastText</a></span>&#8203;(java.lang.String&nbsp;endpointPath,
+             java.lang.String&nbsp;text)</code></th>
+<td class="colLast">
+<div class="block">Broadcast text message.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>abstract java.util.concurrent.Future&lt;java.lang.Void&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(java.lang.String)">close</a></span>&#8203;(java.lang.String&nbsp;sessionId)</code></th>
+<td class="colLast">
+<div class="block">Close remote session.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>abstract java.util.concurrent.Future&lt;java.lang.Void&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(java.lang.String,javax.websocket.CloseReason)">close</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+     <a href="../../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Close remote session with custom <a href="../../../../../javax/websocket/CloseReason.html" title="class in javax.websocket"><code>CloseReason</code></a>.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>abstract java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createConnectionId()">createConnectionId</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create connection id.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>abstract java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createSessionId()">createSessionId</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create session id.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroyDistributedUserProperties(java.lang.String)">destroyDistributedUserProperties</a></span>&#8203;(java.lang.String&nbsp;connectionId)</code></th>
+<td class="colLast">
+<div class="block">Destroy map which holds distributed user properties.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>abstract java.util.Map&lt;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>,&#8203;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDistributedSessionProperties(java.lang.String)">getDistributedSessionProperties</a></span>&#8203;(java.lang.String&nbsp;sessionId)</code></th>
+<td class="colLast">
+<div class="block">Get the map containing session properties to be shared among nodes.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>abstract java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDistributedUserProperties(java.lang.String)">getDistributedUserProperties</a></span>&#8203;(java.lang.String&nbsp;connectionId)</code></th>
+<td class="colLast">
+<div class="block">Get the map containing session user properties to be shared among nodes.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>abstract java.util.Set&lt;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteSessionIds(java.lang.String)">getRemoteSessionIds</a></span>&#8203;(java.lang.String&nbsp;endpointPath)</code></th>
+<td class="colLast">
+<div class="block">Get set containing session ids of all remote sessions registered to given endpoint path.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>abstract boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSessionOpen(java.lang.String,java.lang.String)">isSessionOpen</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+             java.lang.String&nbsp;endpointPath)</code></th>
+<td class="colLast">
+<div class="block">Get information about session state.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerBroadcastListener(java.lang.String,org.glassfish.tyrus.core.cluster.BroadcastListener)">registerBroadcastListener</a></span>&#8203;(java.lang.String&nbsp;endpointPath,
+                         <a href="BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster">BroadcastListener</a>&nbsp;listener)</code></th>
+<td class="colLast">
+<div class="block">Register broadcast listener.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerSession(java.lang.String,java.lang.String,org.glassfish.tyrus.core.cluster.SessionEventListener)">registerSession</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+               java.lang.String&nbsp;endpointPath,
+               <a href="SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a>&nbsp;listener)</code></th>
+<td class="colLast">
+<div class="block">Register local session.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerSessionListener(java.lang.String,org.glassfish.tyrus.core.cluster.SessionListener)">registerSessionListener</a></span>&#8203;(java.lang.String&nbsp;endpointPath,
+                       <a href="SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster">SessionListener</a>&nbsp;listener)</code></th>
+<td class="colLast">
+<div class="block">Register session listener.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeSession(java.lang.String,java.lang.String)">removeSession</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+             java.lang.String&nbsp;endpointPath)</code></th>
+<td class="colLast">
+<div class="block">Remove session from this Cluster context.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>abstract java.util.concurrent.Future&lt;java.lang.Void&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(java.lang.String,byte%5B%5D)">sendBinary</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+          byte[]&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Send binary message.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>abstract java.util.concurrent.Future&lt;java.lang.Void&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(java.lang.String,byte%5B%5D,boolean)">sendBinary</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+          byte[]&nbsp;data,
+          boolean&nbsp;isLast)</code></th>
+<td class="colLast">
+<div class="block">Send partial binary message.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendBinary(java.lang.String,byte%5B%5D,javax.websocket.SendHandler)">sendBinary</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+          byte[]&nbsp;data,
+          <a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;sendHandler)</code></th>
+<td class="colLast">
+<div class="block">Send binary message with <a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket"><code>SendHandler</code></a>.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>abstract java.util.concurrent.Future&lt;java.lang.Void&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendPing(java.lang.String,byte%5B%5D)">sendPing</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+        byte[]&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Send ping message.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>abstract java.util.concurrent.Future&lt;java.lang.Void&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendPong(java.lang.String,byte%5B%5D)">sendPong</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+        byte[]&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Send pong message.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>abstract java.util.concurrent.Future&lt;java.lang.Void&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendText(java.lang.String,java.lang.String)">sendText</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+        java.lang.String&nbsp;text)</code></th>
+<td class="colLast">
+<div class="block">Send text message.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>abstract java.util.concurrent.Future&lt;java.lang.Void&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendText(java.lang.String,java.lang.String,boolean)">sendText</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+        java.lang.String&nbsp;text,
+        boolean&nbsp;isLast)</code></th>
+<td class="colLast">
+<div class="block">Send partial text message.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendText(java.lang.String,java.lang.String,javax.websocket.SendHandler)">sendText</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+        java.lang.String&nbsp;text,
+        <a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;sendHandler)</code></th>
+<td class="colLast">
+<div class="block">Send text message with <a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket"><code>SendHandler</code></a>.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shutdown()">shutdown</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Shutdown this ClusterContext.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="CLUSTER_CONTEXT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLUSTER_CONTEXT</h4>
+<pre>public static final&nbsp;java.lang.String CLUSTER_CONTEXT</pre>
+<div class="block">ClusterContext registration property.
+ <p>
+ ClusterContext is registered to the Server container via properties passed to
+ <a href="../../spi/ServerContainerFactory.html#createServerContainer(java.util.Map)"><code>ServerContainerFactory.createServerContainer(java.util.Map)</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.glassfish.tyrus.core.cluster.ClusterContext.CLUSTER_CONTEXT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ClusterContext</h4>
+<pre>public&nbsp;ClusterContext()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="sendText(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendText</h4>
+<pre class="methodSignature">public abstract&nbsp;java.util.concurrent.Future&lt;java.lang.Void&gt;&nbsp;sendText&#8203;(java.lang.String&nbsp;sessionId,
+                                                                     java.lang.String&nbsp;text)</pre>
+<div class="block">Send text message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - remote session id.</dd>
+<dd><code>text</code> - text to be sent.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future representing the send event. <code>Future.get()</code> returns when there is an
+ acknowledge from the other node that the message has been successfully sent. If there is any exception, it will
+ be wrapped into <code>ExecutionException</code> and thrown.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendText(java.lang.String,java.lang.String,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendText</h4>
+<pre class="methodSignature">public abstract&nbsp;java.util.concurrent.Future&lt;java.lang.Void&gt;&nbsp;sendText&#8203;(java.lang.String&nbsp;sessionId,
+                                                                     java.lang.String&nbsp;text,
+                                                                     boolean&nbsp;isLast)</pre>
+<div class="block">Send partial text message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - remote session id.</dd>
+<dd><code>text</code> - text to be sent.</dd>
+<dd><code>isLast</code> - <code>true</code> when the partial message being sent is the last part of the message.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future representing the send event. <code>Future.get()</code> returns when there is an
+ acknowledge from the other node that the message has been successfully sent. If there is any exception, it will
+ be wrapped into <code>ExecutionException</code> and thrown.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(java.lang.String,byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">public abstract&nbsp;java.util.concurrent.Future&lt;java.lang.Void&gt;&nbsp;sendBinary&#8203;(java.lang.String&nbsp;sessionId,
+                                                                       byte[]&nbsp;data)</pre>
+<div class="block">Send binary message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - remote session id.</dd>
+<dd><code>data</code> - data to be sent.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future representing the send event. <code>Future.get()</code> returns when there is an
+ acknowledge from the other node that the message has been successfully sent. If there is any exception, it will
+ be wrapped into <code>ExecutionException</code> and thrown.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(java.lang.String,byte[],boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">public abstract&nbsp;java.util.concurrent.Future&lt;java.lang.Void&gt;&nbsp;sendBinary&#8203;(java.lang.String&nbsp;sessionId,
+                                                                       byte[]&nbsp;data,
+                                                                       boolean&nbsp;isLast)</pre>
+<div class="block">Send partial binary message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - remote session id.</dd>
+<dd><code>data</code> - data to be sent.</dd>
+<dd><code>isLast</code> - <code>true</code> when the partial message being sent is the last part of the message.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future representing the send event. <code>Future.get()</code> returns when there is an
+ acknowledge from the other node that the message has been successfully sent. If there is any exception, it will
+ be wrapped into <code>ExecutionException</code> and thrown.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendPing(java.lang.String,byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendPing</h4>
+<pre class="methodSignature">public abstract&nbsp;java.util.concurrent.Future&lt;java.lang.Void&gt;&nbsp;sendPing&#8203;(java.lang.String&nbsp;sessionId,
+                                                                     byte[]&nbsp;data)</pre>
+<div class="block">Send ping message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - remote session id.</dd>
+<dd><code>data</code> - data to be sent as ping message payload.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future representing the send event. <code>Future.get()</code> returns when there is an
+ acknowledge from the other node that the message has been successfully sent. If there is any exception, it will
+ be wrapped into <code>ExecutionException</code> and thrown.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendPong(java.lang.String,byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendPong</h4>
+<pre class="methodSignature">public abstract&nbsp;java.util.concurrent.Future&lt;java.lang.Void&gt;&nbsp;sendPong&#8203;(java.lang.String&nbsp;sessionId,
+                                                                     byte[]&nbsp;data)</pre>
+<div class="block">Send pong message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - remote session id.</dd>
+<dd><code>data</code> - data to be sent as pong message payload.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future representing the send event. <code>Future.get()</code> returns when there is an
+ acknowledge from the other node that the message has been successfully sent. If there is any exception, it will
+ be wrapped into <code>ExecutionException</code> and thrown.</dd>
+</dl>
+</li>
+</ul>
+<a id="sendText(java.lang.String,java.lang.String,javax.websocket.SendHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendText</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;sendText&#8203;(java.lang.String&nbsp;sessionId,
+                              java.lang.String&nbsp;text,
+                              <a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;sendHandler)</pre>
+<div class="block">Send text message with <a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket"><code>SendHandler</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - remote session id.</dd>
+<dd><code>text</code> - text to be sent.</dd>
+<dd><code>sendHandler</code> - sendhandler instance on which
+                    <a href="../../../../../javax/websocket/SendHandler.html#onResult(javax.websocket.SendResult)"><code>SendHandler.onResult(javax.websocket.SendResult)</code></a> will be invoked.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket"><code>SendHandler</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="sendBinary(java.lang.String,byte[],javax.websocket.SendHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendBinary</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;sendBinary&#8203;(java.lang.String&nbsp;sessionId,
+                                byte[]&nbsp;data,
+                                <a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;sendHandler)</pre>
+<div class="block">Send binary message with <a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket"><code>SendHandler</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - remote session id.</dd>
+<dd><code>data</code> - data to be sent.</dd>
+<dd><code>sendHandler</code> - sendhandler instance on which
+                    <a href="../../../../../javax/websocket/SendHandler.html#onResult(javax.websocket.SendResult)"><code>SendHandler.onResult(javax.websocket.SendResult)</code></a> will be invoked.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket"><code>SendHandler</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="broadcastText(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>broadcastText</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;broadcastText&#8203;(java.lang.String&nbsp;endpointPath,
+                                   java.lang.String&nbsp;text)</pre>
+<div class="block">Broadcast text message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointPath</code> - endpoint path identifying sessions alignment to the endpoint.</dd>
+<dd><code>text</code> - message to be broadcasted.</dd>
+</dl>
+</li>
+</ul>
+<a id="broadcastBinary(java.lang.String,byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>broadcastBinary</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;broadcastBinary&#8203;(java.lang.String&nbsp;endpointPath,
+                                     byte[]&nbsp;data)</pre>
+<div class="block">Broadcast binary message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointPath</code> - endpoint path identifying sessions alignment to the endpoint.</dd>
+<dd><code>data</code> - data to be broadcasted.</dd>
+</dl>
+</li>
+</ul>
+<a id="isSessionOpen(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSessionOpen</h4>
+<pre class="methodSignature">public abstract&nbsp;boolean&nbsp;isSessionOpen&#8203;(java.lang.String&nbsp;sessionId,
+                                      java.lang.String&nbsp;endpointPath)</pre>
+<div class="block">Get information about session state.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - remote session id.</dd>
+<dd><code>endpointPath</code> - endpoint path identifying sessions alignment to the endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when session is opened, <code>false</code> otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/Session.html#isOpen()"><code>Session.isOpen()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="close(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public abstract&nbsp;java.util.concurrent.Future&lt;java.lang.Void&gt;&nbsp;close&#8203;(java.lang.String&nbsp;sessionId)</pre>
+<div class="block">Close remote session.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - remote session id.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future representing the event. <code>Future.get()</code> returns when there is an
+ acknowledge from the other node that the command was successfully executed. If there is any exception, it will
+ be
+ wrapped into <code>ExecutionException</code> and thrown.</dd>
+</dl>
+</li>
+</ul>
+<a id="close(java.lang.String,javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public abstract&nbsp;java.util.concurrent.Future&lt;java.lang.Void&gt;&nbsp;close&#8203;(java.lang.String&nbsp;sessionId,
+                                                                  <a href="../../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</pre>
+<div class="block">Close remote session with custom <a href="../../../../../javax/websocket/CloseReason.html" title="class in javax.websocket"><code>CloseReason</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - remote session id.</dd>
+<dd><code>closeReason</code> - custom close reason.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future representing the event. <code>Future.get()</code> returns when there is an
+ acknowledge from the other node that the command was successfully executed. If there is any exception, it will
+ be
+ wrapped into <code>ExecutionException</code> and thrown.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRemoteSessionIds(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteSessionIds</h4>
+<pre class="methodSignature">public abstract&nbsp;java.util.Set&lt;java.lang.String&gt;&nbsp;getRemoteSessionIds&#8203;(java.lang.String&nbsp;endpointPath)</pre>
+<div class="block">Get set containing session ids of all remote sessions registered to given endpoint path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointPath</code> - endpoint path identifying endpoint within the cluster.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>set of sessions ids.</dd>
+</dl>
+</li>
+</ul>
+<a id="createSessionId()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createSessionId</h4>
+<pre class="methodSignature">public abstract&nbsp;java.lang.String&nbsp;createSessionId()</pre>
+<div class="block">Create session id. It has to be unique among all cluster nodes.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>session id.</dd>
+</dl>
+</li>
+</ul>
+<a id="createConnectionId()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createConnectionId</h4>
+<pre class="methodSignature">public abstract&nbsp;java.lang.String&nbsp;createConnectionId()</pre>
+<div class="block">Create connection id. It has to be unique among all cluster nodes.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>connection id.</dd>
+</dl>
+</li>
+</ul>
+<a id="registerSession(java.lang.String,java.lang.String,org.glassfish.tyrus.core.cluster.SessionEventListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>registerSession</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;registerSession&#8203;(java.lang.String&nbsp;sessionId,
+                                     java.lang.String&nbsp;endpointPath,
+                                     <a href="SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a>&nbsp;listener)</pre>
+<div class="block">Register local session.
+ <p>
+ Session id will be broadcasted to other nodes which will call <a href="#getDistributedSessionProperties(java.lang.String)"><code>getDistributedSessionProperties(String)</code></a>
+ and process its values. The map must be ready before this method is invoked.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - session id to be registered.</dd>
+<dd><code>endpointPath</code> - endpoint path identifying sessions alignment to the endpoint.</dd>
+<dd><code>listener</code> - session event listener. When remote node sends a message to this session, it will be
+                     invoked.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster"><code>SessionEventListener</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="registerSessionListener(java.lang.String,org.glassfish.tyrus.core.cluster.SessionListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>registerSessionListener</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;registerSessionListener&#8203;(java.lang.String&nbsp;endpointPath,
+                                             <a href="SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster">SessionListener</a>&nbsp;listener)</pre>
+<div class="block">Register session listener.
+ <p>
+ Gets notification about session creation <a href="package-summary.html"><code>.SessionListener#onSessionOpened(String)</code></a> and destruction <a href="package-summary.html"><code>.SessionListener#onSessionClosed(String)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointPath</code> - endpoint path identifying sessions alignment to the endpoint.</dd>
+<dd><code>listener</code> - listener instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster"><code>SessionListener</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="registerBroadcastListener(java.lang.String,org.glassfish.tyrus.core.cluster.BroadcastListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>registerBroadcastListener</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;registerBroadcastListener&#8203;(java.lang.String&nbsp;endpointPath,
+                                               <a href="BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster">BroadcastListener</a>&nbsp;listener)</pre>
+<div class="block">Register broadcast listener.
+ <p>
+ Gets notification about broadcasted messages. Used as an optimized variant of standard websocket broadcast
+ pattern. In this case, only one message is sent to all cluster nodes (instead <code>n</code> when <code>n</code> represent
+ number of clients connected to remote nodes).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointPath</code> - endpoint path identifying sessions alignment to the endpoint.</dd>
+<dd><code>listener</code> - listener instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster"><code>BroadcastListener</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getDistributedSessionProperties(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDistributedSessionProperties</h4>
+<pre class="methodSignature">public abstract&nbsp;java.util.Map&lt;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>,&#8203;java.lang.Object&gt;&nbsp;getDistributedSessionProperties&#8203;(java.lang.String&nbsp;sessionId)</pre>
+<div class="block">Get the map containing session properties to be shared among nodes.
+ <p>
+ Changes must be propagated to remote instances.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - remote session id.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>distributed map containing session properties.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDistributedUserProperties(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDistributedUserProperties</h4>
+<pre class="methodSignature">public abstract&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;getDistributedUserProperties&#8203;(java.lang.String&nbsp;connectionId)</pre>
+<div class="block">Get the map containing session user properties to be shared among nodes.
+ <p>
+ Changes must be propagated to remote instances.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionId</code> - connection id. Connection id may be shared among subsequent TCP connection - represents
+                     logical connection.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>distributed map containing session properties.</dd>
+</dl>
+</li>
+</ul>
+<a id="destroyDistributedUserProperties(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>destroyDistributedUserProperties</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;destroyDistributedUserProperties&#8203;(java.lang.String&nbsp;connectionId)</pre>
+<div class="block">Destroy map which holds distributed user properties.
+ <p>
+ This method should be invoked only when session is properly closed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionId</code> - connection id. Connection id may be shared among subsequent TCP connection - represents
+                     logical connection.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeSession(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeSession</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;removeSession&#8203;(java.lang.String&nbsp;sessionId,
+                                   java.lang.String&nbsp;endpointPath)</pre>
+<div class="block">Remove session from this Cluster context.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - session id.</dd>
+<dd><code>endpointPath</code> - endpoint path identifying sessions alignment to the endpoint.</dd>
+</dl>
+</li>
+</ul>
+<a id="shutdown()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>shutdown</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;shutdown()</pre>
+<div class="block">Shutdown this ClusterContext.
+ <p>
+ This will stop whole clustered node, any operation related to this cluster context will fail after this method
+ is invoked.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClusterContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/DistributedSession.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/DistributedSession.html
new file mode 100644
index 00000000..1bd1930a
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/DistributedSession.html
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DistributedSession (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DistributedSession (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DistributedSession.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.cluster</a></div>
+<h2 title="Interface DistributedSession" class="title">Interface DistributedSession</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code>java.lang.AutoCloseable</code>, <code>java.io.Closeable</code>, <code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></code>, <code><a href="../TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">DistributedSession</span>
+extends <a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></pre>
+<div class="block">Extended <a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a> which adds distributed properties.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDistributedProperties()">getDistributedProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get distributed properties.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Session">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></h3>
+<code><a href="../../../../../javax/websocket/Session.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler</a>, <a href="../../../../../javax/websocket/Session.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler</a>, <a href="../../../../../javax/websocket/Session.html#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler</a>, <a href="../../../../../javax/websocket/Session.html#close()">close</a>, <a href="../../../../../javax/websocket/Session.html#close(javax.websocket.CloseReason)">close</a>, <a href="../../../../../javax/websocket/Session.html#getAsyncRemote()">getAsyncRemote</a>, <a href="../../../../../javax/websocket/Session.html#getBasicRemote()">getBasicRemote</a>, <a href="../../../../../javax/websocket/Session.html#getContainer()">getContainer</a>, <a href="../../../../../javax/websocket/Session.html#getId()">getId</a>, <a href="../../../../../javax/websocket/Session.html#getMaxBinaryMessageBufferSize()">getMaxBinaryMessageBufferSize</a>, <a href="../../../../../javax/websocket/Session.html#getMaxIdleTimeout()">getMaxIdleTimeout</a>, <a href="../../../../../javax/websocket/Session.html#getMaxTextMessageBufferSize()">getMaxTextMessageBufferSize</a>, <a href="../../../../../javax/websocket/Session.html#getMessageHandlers()">getMessageHandlers</a>, <a href="../../../../../javax/websocket/Session.html#getNegotiatedExtensions()">getNegotiatedExtensions</a>, <a href="../../../../../javax/websocket/Session.html#getNegotiatedSubprotocol()">getNegotiatedSubprotocol</a>, <a href="../../../../../javax/websocket/Session.html#getOpenSessions()">getOpenSessions</a>, <a href="../../../../../javax/websocket/Session.html#getPathParameters()">getPathParameters</a>, <a href="../../../../../javax/websocket/Session.html#getProtocolVersion()">getProtocolVersion</a>, <a href="../../../../../javax/websocket/Session.html#getQueryString()">getQueryString</a>, <a href="../../../../../javax/websocket/Session.html#getRequestParameterMap()">getRequestParameterMap</a>, <a href="../../../../../javax/websocket/Session.html#getRequestURI()">getRequestURI</a>, <a href="../../../../../javax/websocket/Session.html#getUserPrincipal()">getUserPrincipal</a>, <a href="../../../../../javax/websocket/Session.html#getUserProperties()">getUserProperties</a>, <a href="../../../../../javax/websocket/Session.html#isOpen()">isOpen</a>, <a href="../../../../../javax/websocket/Session.html#isSecure()">isSecure</a>, <a href="../../../../../javax/websocket/Session.html#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler</a>, <a href="../../../../../javax/websocket/Session.html#setMaxBinaryMessageBufferSize(int)">setMaxBinaryMessageBufferSize</a>, <a href="../../../../../javax/websocket/Session.html#setMaxIdleTimeout(long)">setMaxIdleTimeout</a>, <a href="../../../../../javax/websocket/Session.html#setMaxTextMessageBufferSize(int)">setMaxTextMessageBufferSize</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getDistributedProperties()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDistributedProperties</h4>
+<pre class="methodSignature">java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;getDistributedProperties()</pre>
+<div class="block">Get distributed properties.
+ <p>
+ Values put into this map must be <code>Serializable</code> or serializable by other, implementation-dependent
+ alternative.
+ <p>
+ Content of this map is synchronized among all cluster nodes, so putting an entry on any of the nodes will be
+ visible on all other nodes which have reference to current session (in form of <a href="../TyrusSession.html" title="class in org.glassfish.tyrus.core"><code>TyrusSession</code></a> or <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>).
+ <p>
+ Please note that when not running in the distributed environment, this map behaves similarly to <a href="../../../../../javax/websocket/Session.html#getUserProperties()"><code>Session.getUserProperties()</code></a>, so no serialization or deserialization is performed when values are read from or stored to
+ the returned map.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of distributed properties.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../TyrusSession.html" title="class in org.glassfish.tyrus.core"><code>TyrusSession</code></a>, 
+<a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DistributedSession.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html
new file mode 100644
index 00000000..c24aa3b4
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html
@@ -0,0 +1,637 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RemoteSession.DistributedMapKey (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RemoteSession.DistributedMapKey (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":9,"i2":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RemoteSession.DistributedMapKey.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.cluster</a></div>
+<h2 title="Enum RemoteSession.DistributedMapKey" class="title">Enum RemoteSession.DistributedMapKey</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.cluster.RemoteSession.DistributedMapKey</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">RemoteSession.DistributedMapKey</span>
+extends java.lang.Enum&lt;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>&gt;
+implements java.io.Serializable</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CONNECTION_ID">CONNECTION_ID</a></span></code></th>
+<td class="colLast">
+<div class="block">Cluster connection Id.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#MAX_BINARY_MESSAGE_BUFFER_SIZE">MAX_BINARY_MESSAGE_BUFFER_SIZE</a></span></code></th>
+<td class="colLast">
+<div class="block">Max binary buffer size.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#MAX_IDLE_TIMEOUT">MAX_IDLE_TIMEOUT</a></span></code></th>
+<td class="colLast">
+<div class="block">Max idle timeout.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#MAX_TEXT_MESSAGE_BUFFER_SIZE">MAX_TEXT_MESSAGE_BUFFER_SIZE</a></span></code></th>
+<td class="colLast">
+<div class="block">Max text buffer size.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NEGOTIATED_EXTENSIONS">NEGOTIATED_EXTENSIONS</a></span></code></th>
+<td class="colLast">
+<div class="block">Negotiated extensions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NEGOTIATED_SUBPROTOCOL">NEGOTIATED_SUBPROTOCOL</a></span></code></th>
+<td class="colLast">
+<div class="block">Negotiated subprotocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PATH_PARAMETERS">PATH_PARAMETERS</a></span></code></th>
+<td class="colLast">
+<div class="block">Path parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#QUERY_STRING">QUERY_STRING</a></span></code></th>
+<td class="colLast">
+<div class="block">Query string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REQUEST_PARAMETER_MAP">REQUEST_PARAMETER_MAP</a></span></code></th>
+<td class="colLast">
+<div class="block">Request Parameter map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REQUEST_URI">REQUEST_URI</a></span></code></th>
+<td class="colLast">
+<div class="block">Request URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SECURE">SECURE</a></span></code></th>
+<td class="colLast">
+<div class="block">Secure flag.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#USER_PRINCIPAL">USER_PRINCIPAL</a></span></code></th>
+<td class="colLast">
+<div class="block">User principal.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="NEGOTIATED_SUBPROTOCOL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NEGOTIATED_SUBPROTOCOL</h4>
+<pre>public static final&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a> NEGOTIATED_SUBPROTOCOL</pre>
+<div class="block">Negotiated subprotocol.
+ <p>
+ Value must be <code>String</code>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/Session.html#getNegotiatedSubprotocol()"><code>Session.getNegotiatedSubprotocol()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="NEGOTIATED_EXTENSIONS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NEGOTIATED_EXTENSIONS</h4>
+<pre>public static final&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a> NEGOTIATED_EXTENSIONS</pre>
+<div class="block">Negotiated extensions.
+ <p>
+ Value must be <code>List</code>&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a>&gt;.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/Session.html#getNegotiatedExtensions()"><code>Session.getNegotiatedExtensions()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="SECURE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SECURE</h4>
+<pre>public static final&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a> SECURE</pre>
+<div class="block">Secure flag.
+ <p>
+ Value must be <code>boolean</code> or <code>Boolean</code>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/Session.html#isSecure()"><code>Session.isSecure()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="MAX_IDLE_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MAX_IDLE_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a> MAX_IDLE_TIMEOUT</pre>
+<div class="block">Max idle timeout.
+ <p>
+ Value must be <code>long</code> or <code>Long</code>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/Session.html#getMaxIdleTimeout()"><code>Session.getMaxIdleTimeout()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="MAX_BINARY_MESSAGE_BUFFER_SIZE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MAX_BINARY_MESSAGE_BUFFER_SIZE</h4>
+<pre>public static final&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a> MAX_BINARY_MESSAGE_BUFFER_SIZE</pre>
+<div class="block">Max binary buffer size.
+ <p>
+ Value must be <code>int</code> or <code>Integer</code>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/Session.html#getMaxBinaryMessageBufferSize()"><code>Session.getMaxBinaryMessageBufferSize()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="MAX_TEXT_MESSAGE_BUFFER_SIZE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MAX_TEXT_MESSAGE_BUFFER_SIZE</h4>
+<pre>public static final&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a> MAX_TEXT_MESSAGE_BUFFER_SIZE</pre>
+<div class="block">Max text buffer size.
+ <p>
+ Value must be <code>int</code> or <code>Integer</code>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/Session.html#getMaxTextMessageBufferSize()"><code>Session.getMaxTextMessageBufferSize()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="REQUEST_URI">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REQUEST_URI</h4>
+<pre>public static final&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a> REQUEST_URI</pre>
+<div class="block">Request URI.
+ <p>
+ Value must be <code>URI</code>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/Session.html#getRequestURI()"><code>Session.getRequestURI()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="REQUEST_PARAMETER_MAP">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REQUEST_PARAMETER_MAP</h4>
+<pre>public static final&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a> REQUEST_PARAMETER_MAP</pre>
+<div class="block">Request Parameter map.
+ <p>
+ Value must be <code>Map</code>&lt;<code>String</code>, <code>List</code>&lt;<code>String</code>&gt;&gt;.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/Session.html#getRequestParameterMap()"><code>Session.getRequestParameterMap()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="QUERY_STRING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>QUERY_STRING</h4>
+<pre>public static final&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a> QUERY_STRING</pre>
+<div class="block">Query string.
+ <p>
+ Value must be <code>String</code>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/Session.html#getQueryString()"><code>Session.getQueryString()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="PATH_PARAMETERS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PATH_PARAMETERS</h4>
+<pre>public static final&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a> PATH_PARAMETERS</pre>
+<div class="block">Path parameters.
+ <p>
+ Value must be <code>Map</code>&lt;<code>String</code>, <code>String</code>&gt;.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/Session.html#getPathParameters()"><code>Session.getPathParameters()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="USER_PRINCIPAL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USER_PRINCIPAL</h4>
+<pre>public static final&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a> USER_PRINCIPAL</pre>
+<div class="block">User principal.
+ <p>
+ Value must be <code>Principal</code>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../javax/websocket/Session.html#getUserPrincipal()"><code>Session.getUserPrincipal()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONNECTION_ID">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CONNECTION_ID</h4>
+<pre>public static final&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a> CONNECTION_ID</pre>
+<div class="block">Cluster connection Id. (internal property).
+ <p>
+ Value must be <code>String</code>.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (RemoteSession.DistributedMapKey c : RemoteSession.DistributedMapKey.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Enum&lt;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RemoteSession.DistributedMapKey.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/RemoteSession.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/RemoteSession.html
new file mode 100644
index 00000000..241ff808
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/RemoteSession.html
@@ -0,0 +1,1115 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RemoteSession (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RemoteSession (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RemoteSession.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.cluster</a></div>
+<h2 title="Class RemoteSession" class="title">Class RemoteSession</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.cluster.RemoteSession</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Closeable</code>, <code>java.lang.AutoCloseable</code>, <code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code>, <code><a href="DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">RemoteSession</span>
+extends java.lang.Object
+implements <a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>, <a href="DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></pre>
+<div class="block">Remote session represents session originating from another node.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,org.glassfish.tyrus.core.cluster.ClusterContext,java.util.Map,org.glassfish.tyrus.core.TyrusEndpointWrapper,javax.websocket.Session)">RemoteSession</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+             <a href="ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+             java.util.Map&lt;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>,&#8203;java.lang.Object&gt;&nbsp;distributedPropertyMap,
+             <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+             <a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../../../../../javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                 <a href="../../../../../javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler</a></span>&#8203;(<a href="../../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Close the current conversation with a normal status code and no reason phrase.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="../../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Close the current conversation, giving a reason for the closure.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAsyncRemote()">getAsyncRemote</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a reference a <a href="../../../../../javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket"><code>RemoteEndpoint.Async</code></a> object representing the peer of this conversation
+ that is able to send messages asynchronously to the peer.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBasicRemote()">getBasicRemote</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a reference a <a href="../../../../../javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket"><code>RemoteEndpoint.Basic</code></a> object representing the peer of this conversation
+ that is able to send messages synchronously to the peer.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContainer()">getContainer</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDistributedProperties()">getDistributedProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get distributed properties.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getId()">getId</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a string containing the unique identifier assigned to this session.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxBinaryMessageBufferSize()">getMaxBinaryMessageBufferSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the maximum length of incoming binary messages that this Session can buffer.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxIdleTimeout()">getMaxIdleTimeout</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the number of milliseconds before this conversation may be closed by the
+ container if it is inactive, i.e.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxTextMessageBufferSize()">getMaxTextMessageBufferSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the maximum length of incoming text messages that this Session can buffer.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMessageHandlers()">getMessageHandlers</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNegotiatedExtensions()">getNegotiatedExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the list of extensions currently in use for this conversation.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNegotiatedSubprotocol()">getNegotiatedSubprotocol</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the sub protocol agreed during the websocket handshake for this conversation.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOpenSessions()">getOpenSessions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPathParameters()">getPathParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a map of the path parameter names and values used associated with the
+ request this session was opened under.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProtocolVersion()">getProtocolVersion</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the version of the websocket protocol currently being used.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueryString()">getQueryString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the query string associated with the request this session
+ was opened under.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestParameterMap()">getRequestParameterMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the request parameters associated with the request this session
+ was opened under.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>java.net.URI</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestURI()">getRequestURI</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the <code>URI</code> under which this session was opened, including
+ the query string if there is one.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>java.security.Principal</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUserPrincipal()">getUserPrincipal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the authenticated user for this session or <code>null</code> if no user is authenticated for this session.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUserProperties()">getUserProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isOpen()">isOpen</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the information about session state.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSecure()">isSecure</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the information about secure transport.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler</a></span>&#8203;(<a href="../../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxBinaryMessageBufferSize(int)">setMaxBinaryMessageBufferSize</a></span>&#8203;(int&nbsp;length)</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxIdleTimeout(long)">setMaxIdleTimeout</a></span>&#8203;(long&nbsp;milliseconds)</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxTextMessageBufferSize(int)">setMaxTextMessageBufferSize</a></span>&#8203;(int&nbsp;length)</code></th>
+<td class="colLast">
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,org.glassfish.tyrus.core.cluster.ClusterContext,java.util.Map,org.glassfish.tyrus.core.TyrusEndpointWrapper,javax.websocket.Session)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RemoteSession</h4>
+<pre>public&nbsp;RemoteSession&#8203;(java.lang.String&nbsp;sessionId,
+                     <a href="ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                     java.util.Map&lt;<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>,&#8203;java.lang.Object&gt;&nbsp;distributedPropertyMap,
+                     <a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+                     <a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - session id.</dd>
+<dd><code>clusterContext</code> - cluster context.</dd>
+<dd><code>distributedPropertyMap</code> - distributed property map.</dd>
+<dd><code>endpointWrapper</code> - used just to get encoders/decoders.</dd>
+<dd><code>session</code> - used just to get encoders/decoders.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getProtocolVersion()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocolVersion</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getProtocolVersion()</pre>
+<div class="block">Get the version of the websocket protocol currently being used. This is taken as the value of the
+ Sec-WebSocket-Version header used in the opening handshake. i.e. "13".</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getProtocolVersion()">getProtocolVersion</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the protocol version.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNegotiatedSubprotocol()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNegotiatedSubprotocol</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getNegotiatedSubprotocol()</pre>
+<div class="block">Get the sub protocol agreed during the websocket handshake for this conversation.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getNegotiatedSubprotocol()">getNegotiatedSubprotocol</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the negotiated subprotocol, or the empty string if there isn't one.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNegotiatedExtensions()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNegotiatedExtensions</h4>
+<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;getNegotiatedExtensions()</pre>
+<div class="block">Get the list of extensions currently in use for this conversation.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getNegotiatedExtensions()">getNegotiatedExtensions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the negotiated extensions.</dd>
+</dl>
+</li>
+</ul>
+<a id="isSecure()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSecure</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isSecure()</pre>
+<div class="block">Get the information about secure transport.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#isSecure()">isSecure</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when the underlying socket is using a secure transport, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="isOpen()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block">Get the information about session state.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#isOpen()">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when the underlying socket is open, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxIdleTimeout()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxIdleTimeout</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;getMaxIdleTimeout()</pre>
+<div class="block">Get the number of milliseconds before this conversation may be closed by the
+ container if it is inactive, i.e. no messages are either sent or received in that time.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getMaxIdleTimeout()">getMaxIdleTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the timeout in milliseconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxBinaryMessageBufferSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxBinaryMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getMaxBinaryMessageBufferSize()</pre>
+<div class="block">Get the maximum length of incoming binary messages that this Session can buffer. If
+ the implementation receives a binary message that it cannot buffer because it
+ is too large, it must close the session with a close code of <a href="../../../../../javax/websocket/CloseReason.CloseCodes.html#TOO_BIG"><code>CloseReason.CloseCodes.TOO_BIG</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getMaxBinaryMessageBufferSize()">getMaxBinaryMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum binary message size that can be buffered.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxTextMessageBufferSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxTextMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getMaxTextMessageBufferSize()</pre>
+<div class="block">Get the maximum length of incoming text messages that this Session can buffer. If
+ the implementation receives a text message that it cannot buffer because it
+ is too large, it must close the session with a close code of <a href="../../../../../javax/websocket/CloseReason.CloseCodes.html#TOO_BIG"><code>CloseReason.CloseCodes.TOO_BIG</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getMaxTextMessageBufferSize()">getMaxTextMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum text message size that can be buffered.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAsyncRemote()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAsyncRemote</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../../javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket">RemoteEndpoint.Async</a>&nbsp;getAsyncRemote()</pre>
+<div class="block">Get a reference a <a href="../../../../../javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket"><code>RemoteEndpoint.Async</code></a> object representing the peer of this conversation
+ that is able to send messages asynchronously to the peer.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getAsyncRemote()">getAsyncRemote</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the remote endpoint representation.</dd>
+</dl>
+</li>
+</ul>
+<a id="getBasicRemote()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBasicRemote</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../../javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket">RemoteEndpoint.Basic</a>&nbsp;getBasicRemote()</pre>
+<div class="block">Get a reference a <a href="../../../../../javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket"><code>RemoteEndpoint.Basic</code></a> object representing the peer of this conversation
+ that is able to send messages synchronously to the peer.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getBasicRemote()">getBasicRemote</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the remote endpoint representation.</dd>
+</dl>
+</li>
+</ul>
+<a id="getId()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getId</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getId()</pre>
+<div class="block">Get a string containing the unique identifier assigned to this session.
+ The identifier is assigned by the web socket implementation and is implementation dependent.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getId()">getId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the unique identifier for this session instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;close()
+           throws java.io.IOException</pre>
+<div class="block">Close the current conversation with a normal status code and no reason phrase.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.lang.AutoCloseable</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.io.Closeable</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#close()">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there was a connection error closing the connection.</dd>
+</dl>
+</li>
+</ul>
+<a id="close(javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;close&#8203;(<a href="../../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)
+           throws java.io.IOException</pre>
+<div class="block">Close the current conversation, giving a reason for the closure. The close
+ call causes the implementation to attempt notify the client of the close as
+ soon as it can. This may cause the sending of unsent messages immediately
+ prior to the close notification. After the close notification has been sent
+ the implementation notifies the endpoint's onClose method. Note the websocket
+ specification defines the acceptable uses of status codes and reason phrases.
+ If the application cannot determine a suitable close code to use for the closeReason,
+ it is recommended to use <a href="../../../../../javax/websocket/CloseReason.CloseCodes.html#NO_STATUS_CODE"><code>CloseReason.CloseCodes.NO_STATUS_CODE</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#close(javax.websocket.CloseReason)">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>closeReason</code> - the reason for the closure.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there was a connection error closing the connection.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestURI()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestURI</h4>
+<pre class="methodSignature">public&nbsp;java.net.URI&nbsp;getRequestURI()</pre>
+<div class="block">Get the <code>URI</code> under which this session was opened, including
+ the query string if there is one.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getRequestURI()">getRequestURI</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the request URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestParameterMap()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestParameterMap</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;&nbsp;getRequestParameterMap()</pre>
+<div class="block">Get the request parameters associated with the request this session
+ was opened under.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getRequestParameterMap()">getRequestParameterMap</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the unmodifiable map of the request parameters.</dd>
+</dl>
+</li>
+</ul>
+<a id="getQueryString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getQueryString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getQueryString()</pre>
+<div class="block">Get the query string associated with the request this session
+ was opened under.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getQueryString()">getQueryString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the query string.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPathParameters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPathParameters</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;getPathParameters()</pre>
+<div class="block">Get a map of the path parameter names and values used associated with the
+ request this session was opened under.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getPathParameters()">getPathParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the unmodifiable map of path parameters. The key of the map is the parameter name,
+ the values in the map are the parameter values.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUserProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserProperties</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;getUserProperties()</pre>
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>. Each invocation will throw an <code>UnsupportedOperationException</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getUserProperties()">getUserProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>nothing.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getDistributedProperties()"><code>getDistributedProperties()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getDistributedProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDistributedProperties</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;getDistributedProperties()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="DistributedSession.html#getDistributedProperties()">DistributedSession</a></code></span></div>
+<div class="block">Get distributed properties.
+ <p>
+ Values put into this map must be <code>Serializable</code> or serializable by other, implementation-dependent
+ alternative.
+ <p>
+ Content of this map is synchronized among all cluster nodes, so putting an entry on any of the nodes will be
+ visible on all other nodes which have reference to current session (in form of <a href="../TyrusSession.html" title="class in org.glassfish.tyrus.core"><code>TyrusSession</code></a> or <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>).
+ <p>
+ Please note that when not running in the distributed environment, this map behaves similarly to <a href="../../../../../javax/websocket/Session.html#getUserProperties()"><code>Session.getUserProperties()</code></a>, so no serialization or deserialization is performed when values are read from or stored to
+ the returned map.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="DistributedSession.html#getDistributedProperties()">getDistributedProperties</a></code>&nbsp;in interface&nbsp;<code><a href="DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of distributed properties.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../TyrusSession.html" title="class in org.glassfish.tyrus.core"><code>TyrusSession</code></a>, 
+<a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getUserPrincipal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPrincipal</h4>
+<pre class="methodSignature">public&nbsp;java.security.Principal&nbsp;getUserPrincipal()</pre>
+<div class="block">Get the authenticated user for this session or <code>null</code> if no user is authenticated for this session.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getUserPrincipal()">getUserPrincipal</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the user principal.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getContainer()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getContainer</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;getContainer()</pre>
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>. Each invocation will throw an <code>UnsupportedOperationException</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getContainer()">getContainer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>nothing.</dd>
+</dl>
+</li>
+</ul>
+<a id="addMessageHandler(javax.websocket.MessageHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMessageHandler</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;addMessageHandler&#8203;(<a href="../../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)
+                       throws java.lang.IllegalStateException</pre>
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>. Each invocation will throw an <code>UnsupportedOperationException</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#addMessageHandler(javax.websocket.MessageHandler)">addMessageHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>handler</code> - nothing.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalStateException</code> - if there is already a MessageHandler registered for the same native
+                               websocket message type as this handler.</dd>
+</dl>
+</li>
+</ul>
+<a id="addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMessageHandler</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;void&nbsp;addMessageHandler&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                                  <a href="../../../../../javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket">MessageHandler.Whole</a>&lt;T&gt;&nbsp;handler)</pre>
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>. Each invocation will throw an <code>UnsupportedOperationException</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Whole)">addMessageHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - nothing.</dd>
+<dd><code>handler</code> - nothing.</dd>
+</dl>
+</li>
+</ul>
+<a id="addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMessageHandler</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;void&nbsp;addMessageHandler&#8203;(java.lang.Class&lt;T&gt;&nbsp;clazz,
+                                  <a href="../../../../../javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket">MessageHandler.Partial</a>&lt;T&gt;&nbsp;handler)</pre>
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>. Each invocation will throw an <code>UnsupportedOperationException</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#addMessageHandler(java.lang.Class,javax.websocket.MessageHandler.Partial)">addMessageHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - nothing.</dd>
+<dd><code>handler</code> - nothing.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMessageHandlers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMessageHandlers</h4>
+<pre class="methodSignature">public&nbsp;java.util.Set&lt;<a href="../../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&gt;&nbsp;getMessageHandlers()</pre>
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>. Each invocation will throw an <code>UnsupportedOperationException</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getMessageHandlers()">getMessageHandlers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>nothing.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeMessageHandler(javax.websocket.MessageHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeMessageHandler</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;removeMessageHandler&#8203;(<a href="../../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket">MessageHandler</a>&nbsp;handler)</pre>
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>. Each invocation will throw an <code>UnsupportedOperationException</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#removeMessageHandler(javax.websocket.MessageHandler)">removeMessageHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>handler</code> - nothing.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMaxIdleTimeout(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxIdleTimeout</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setMaxIdleTimeout&#8203;(long&nbsp;milliseconds)</pre>
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>. Each invocation will throw an <code>UnsupportedOperationException</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#setMaxIdleTimeout(long)">setMaxIdleTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>milliseconds</code> - nothing.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMaxBinaryMessageBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxBinaryMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setMaxBinaryMessageBufferSize&#8203;(int&nbsp;length)</pre>
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>. Each invocation will throw an <code>UnsupportedOperationException</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#setMaxBinaryMessageBufferSize(int)">setMaxBinaryMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>length</code> - nothing.</dd>
+</dl>
+</li>
+</ul>
+<a id="setMaxTextMessageBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxTextMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setMaxTextMessageBufferSize&#8203;(int&nbsp;length)</pre>
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>. Each invocation will throw an <code>UnsupportedOperationException</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#setMaxTextMessageBufferSize(int)">setMaxTextMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>length</code> - nothing.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOpenSessions()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getOpenSessions</h4>
+<pre class="methodSignature">public&nbsp;java.util.Set&lt;<a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;&nbsp;getOpenSessions()</pre>
+<div class="block">This method is not supported on <a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><code>RemoteSession</code></a>. Each invocation will throw an <code>UnsupportedOperationException</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Session.html#getOpenSessions()">getOpenSessions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>nothing.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RemoteSession.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/SessionEventListener.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/SessionEventListener.html
new file mode 100644
index 00000000..3824a69e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/SessionEventListener.html
@@ -0,0 +1,502 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SessionEventListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SessionEventListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SessionEventListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.cluster</a></div>
+<h2 title="Class SessionEventListener" class="title">Class SessionEventListener</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.cluster.SessionEventListener</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">SessionEventListener</span>
+extends java.lang.Object</pre>
+<div class="block">Session event listener.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.websocket.Session)">SessionEventListener</a></span>&#8203;(<a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onClose()">onClose</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoked on session close event.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onClose(javax.websocket.CloseReason)">onClose</a></span>&#8203;(<a href="../../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Invoked on session close event.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onSendBinary(byte%5B%5D)">onSendBinary</a></span>&#8203;(byte[]&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Invoked on send binary message event.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onSendBinary(byte%5B%5D,boolean)">onSendBinary</a></span>&#8203;(byte[]&nbsp;message,
+            boolean&nbsp;isLast)</code></th>
+<td class="colLast">
+<div class="block">Invoked on send partial binary message event.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onSendPing(byte%5B%5D)">onSendPing</a></span>&#8203;(byte[]&nbsp;payload)</code></th>
+<td class="colLast">
+<div class="block">Invoked on send ping frame event.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onSendPong(byte%5B%5D)">onSendPong</a></span>&#8203;(byte[]&nbsp;payload)</code></th>
+<td class="colLast">
+<div class="block">Invoked on send pong frame event.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onSendText(java.lang.String)">onSendText</a></span>&#8203;(java.lang.String&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Invoked on send text message event.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onSendText(java.lang.String,boolean)">onSendText</a></span>&#8203;(java.lang.String&nbsp;message,
+          boolean&nbsp;isLast)</code></th>
+<td class="colLast">
+<div class="block">Invoked on send partial text message event.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(javax.websocket.Session)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SessionEventListener</h4>
+<pre>public&nbsp;SessionEventListener&#8203;(<a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - session to be used for sending messages passed from other nodes.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onSendText(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onSendText</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onSendText&#8203;(java.lang.String&nbsp;message)
+                throws java.io.IOException</pre>
+<div class="block">Invoked on send text message event.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - message to be sent.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem delivering the message.</dd>
+</dl>
+</li>
+</ul>
+<a id="onSendText(java.lang.String,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onSendText</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onSendText&#8203;(java.lang.String&nbsp;message,
+                       boolean&nbsp;isLast)
+                throws java.io.IOException</pre>
+<div class="block">Invoked on send partial text message event.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - partial message to be sent.</dd>
+<dd><code>isLast</code> - <code>true</code> when the partial message being sent is the last part of the message.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem delivering the message.</dd>
+</dl>
+</li>
+</ul>
+<a id="onSendBinary(byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onSendBinary</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onSendBinary&#8203;(byte[]&nbsp;message)
+                  throws java.io.IOException</pre>
+<div class="block">Invoked on send binary message event.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - data to be sent.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem delivering the message.</dd>
+</dl>
+</li>
+</ul>
+<a id="onSendBinary(byte[],boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onSendBinary</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onSendBinary&#8203;(byte[]&nbsp;message,
+                         boolean&nbsp;isLast)
+                  throws java.io.IOException</pre>
+<div class="block">Invoked on send partial binary message event.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - data to be sent.</dd>
+<dd><code>isLast</code> - <code>true</code> when the partial message being sent is the last part of the message.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem delivering the message.</dd>
+</dl>
+</li>
+</ul>
+<a id="onSendPing(byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onSendPing</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onSendPing&#8203;(byte[]&nbsp;payload)
+                throws java.io.IOException</pre>
+<div class="block">Invoked on send ping frame event.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>payload</code> - ping frame payload.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem delivering the message.</dd>
+</dl>
+</li>
+</ul>
+<a id="onSendPong(byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onSendPong</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onSendPong&#8203;(byte[]&nbsp;payload)
+                throws java.io.IOException</pre>
+<div class="block">Invoked on send pong frame event.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>payload</code> - pong frame payload.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem delivering the message.</dd>
+</dl>
+</li>
+</ul>
+<a id="onClose()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onClose</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onClose()
+             throws java.io.IOException</pre>
+<div class="block">Invoked on session close event.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem closing the session.</dd>
+</dl>
+</li>
+</ul>
+<a id="onClose(javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onClose</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onClose&#8203;(<a href="../../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)
+             throws java.io.IOException</pre>
+<div class="block">Invoked on session close event.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>closeReason</code> - close reason of the session close event.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if there is a problem closing the session.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SessionEventListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/SessionListener.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/SessionListener.html
new file mode 100644
index 00000000..3abf6e05
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/SessionListener.html
@@ -0,0 +1,287 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SessionListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SessionListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SessionListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.cluster</a></div>
+<h2 title="Interface SessionListener" class="title">Interface SessionListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">SessionListener</span></pre>
+<div class="block">Session listener.
+ <p>
+ Allows to keep track of opened/closed sessions.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onSessionClosed(java.lang.String)">onSessionClosed</a></span>&#8203;(java.lang.String&nbsp;sessionId)</code></th>
+<td class="colLast">
+<div class="block">Invoked when session is closed.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onSessionOpened(java.lang.String)">onSessionOpened</a></span>&#8203;(java.lang.String&nbsp;sessionId)</code></th>
+<td class="colLast">
+<div class="block">Invoked when session is opened.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onSessionOpened(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onSessionOpened</h4>
+<pre class="methodSignature">void&nbsp;onSessionOpened&#8203;(java.lang.String&nbsp;sessionId)</pre>
+<div class="block">Invoked when session is opened.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - session id of opened session.</dd>
+</dl>
+</li>
+</ul>
+<a id="onSessionClosed(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onSessionClosed</h4>
+<pre class="methodSignature">void&nbsp;onSessionClosed&#8203;(java.lang.String&nbsp;sessionId)</pre>
+<div class="block">Invoked when session is closed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - session id of closed session.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SessionListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/BroadcastListener.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/BroadcastListener.html
new file mode 100644
index 00000000..3b3adc06
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/BroadcastListener.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.cluster.BroadcastListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.cluster.BroadcastListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.cluster.BroadcastListener" class="title">Uses of Interface<br>org.glassfish.tyrus.core.cluster.BroadcastListener</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster">BroadcastListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster">BroadcastListener</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a> with parameters of type <a href="../BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster">BroadcastListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClusterContext.</span><code><span class="memberNameLink"><a href="../ClusterContext.html#registerBroadcastListener(java.lang.String,org.glassfish.tyrus.core.cluster.BroadcastListener)">registerBroadcastListener</a></span>&#8203;(java.lang.String&nbsp;endpointPath,
+                         <a href="../BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster">BroadcastListener</a>&nbsp;listener)</code></th>
+<td class="colLast">
+<div class="block">Register broadcast listener.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/ClusterContext.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/ClusterContext.html
new file mode 100644
index 00000000..d9ad9755
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/ClusterContext.html
@@ -0,0 +1,269 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.cluster.ClusterContext (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.cluster.ClusterContext (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.cluster.ClusterContext" class="title">Uses of Class<br>org.glassfish.tyrus.core.cluster.ClusterContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a> in <a href="../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#clusterContext(org.glassfish.tyrus.core.cluster.ClusterContext)">clusterContext</a></span>&#8203;(<a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext)</code></th>
+<td class="colLast">
+<div class="block">Set <a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster"><code>ClusterContext</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../TyrusEndpointWrapper.html#%3Cinit%3E(java.lang.Class,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../../../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../../../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../../monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for class that extends <a href="../../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../TyrusEndpointWrapper.html#%3Cinit%3E(javax.websocket.Endpoint,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(<a href="../../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpoint,
+                    <a href="../../../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../../../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../../monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for <a href="../../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> instance or <a href="../../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a> with parameters of type <a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../RemoteSession.html#%3Cinit%3E(java.lang.String,org.glassfish.tyrus.core.cluster.ClusterContext,java.util.Map,org.glassfish.tyrus.core.TyrusEndpointWrapper,javax.websocket.Session)">RemoteSession</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+             <a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+             java.util.Map&lt;<a href="../RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>,&#8203;java.lang.Object&gt;&nbsp;distributedPropertyMap,
+             <a href="../../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+             <a href="../../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/DistributedSession.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/DistributedSession.html
new file mode 100644
index 00000000..70512f72
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/DistributedSession.html
@@ -0,0 +1,245 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.cluster.DistributedSession (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.cluster.DistributedSession (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.cluster.DistributedSession" class="title">Uses of Interface<br>org.glassfish.tyrus.core.cluster.DistributedSession</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a> in <a href="../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> that implement <a href="../DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></span></code></th>
+<td class="colLast">
+<div class="block">Implementation of the <a href="../../../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> that return types with arguments of type <a href="../DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../TyrusSession.html#getAllSessions()">getAllSessions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get set of all sessions opened to the same endpoint.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a> that implement <a href="../DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></span></code></th>
+<td class="colLast">
+<div class="block">Remote session represents session originating from another node.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.DistributedMapKey.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.DistributedMapKey.html
new file mode 100644
index 00000000..b5f5c230
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.DistributedMapKey.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession.DistributedMapKey (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession.DistributedMapKey (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession.DistributedMapKey" class="title">Uses of Class<br>org.glassfish.tyrus.core.cluster.RemoteSession.DistributedMapKey</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a> that return <a href="../RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteSession.DistributedMapKey.</span><code><span class="memberNameLink"><a href="../RemoteSession.DistributedMapKey.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RemoteSession.DistributedMapKey.</span><code><span class="memberNameLink"><a href="../RemoteSession.DistributedMapKey.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a> that return types with arguments of type <a href="../RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract java.util.Map&lt;<a href="../RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>,&#8203;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClusterContext.</span><code><span class="memberNameLink"><a href="../ClusterContext.html#getDistributedSessionProperties(java.lang.String)">getDistributedSessionProperties</a></span>&#8203;(java.lang.String&nbsp;sessionId)</code></th>
+<td class="colLast">
+<div class="block">Get the map containing session properties to be shared among nodes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructor parameters in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a> with type arguments of type <a href="../RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../RemoteSession.html#%3Cinit%3E(java.lang.String,org.glassfish.tyrus.core.cluster.ClusterContext,java.util.Map,org.glassfish.tyrus.core.TyrusEndpointWrapper,javax.websocket.Session)">RemoteSession</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+             <a href="../ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+             java.util.Map&lt;<a href="../RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a>,&#8203;java.lang.Object&gt;&nbsp;distributedPropertyMap,
+             <a href="../../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+             <a href="../../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;session)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.html
new file mode 100644
index 00000000..b71413e4
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession" class="title">Uses of Class<br>org.glassfish.tyrus.core.cluster.RemoteSession</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a> in <a href="../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> that return types with arguments of type <a href="../RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusSession.</span><code><span class="memberNameLink"><a href="../../TyrusSession.html#getRemoteSessions()">getRemoteSessions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get set of remote sessions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/SessionEventListener.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/SessionEventListener.html
new file mode 100644
index 00000000..b54b2215
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/SessionEventListener.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.cluster.SessionEventListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.cluster.SessionEventListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.cluster.SessionEventListener" class="title">Uses of Class<br>org.glassfish.tyrus.core.cluster.SessionEventListener</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a> with parameters of type <a href="../SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClusterContext.</span><code><span class="memberNameLink"><a href="../ClusterContext.html#registerSession(java.lang.String,java.lang.String,org.glassfish.tyrus.core.cluster.SessionEventListener)">registerSession</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+               java.lang.String&nbsp;endpointPath,
+               <a href="../SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a>&nbsp;listener)</code></th>
+<td class="colLast">
+<div class="block">Register local session.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/SessionListener.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/SessionListener.html
new file mode 100644
index 00000000..2e337296
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/SessionListener.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.cluster.SessionListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.cluster.SessionListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.cluster.SessionListener" class="title">Uses of Interface<br>org.glassfish.tyrus.core.cluster.SessionListener</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster">SessionListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster">SessionListener</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.cluster</a> with parameters of type <a href="../SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster">SessionListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClusterContext.</span><code><span class="memberNameLink"><a href="../ClusterContext.html#registerSessionListener(java.lang.String,org.glassfish.tyrus.core.cluster.SessionListener)">registerSessionListener</a></span>&#8203;(java.lang.String&nbsp;endpointPath,
+                       <a href="../SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster">SessionListener</a>&nbsp;listener)</code></th>
+<td class="colLast">
+<div class="block">Register session listener.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/package-summary.html
new file mode 100644
index 00000000..3e2a869e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/package-summary.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.cluster (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.cluster (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.core.cluster</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Cluster relates classes and interfaces.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster">BroadcastListener</a></th>
+<td class="colLast">
+<div class="block">Broadcast listener.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a></th>
+<td class="colLast">
+<div class="block">Extended <a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a> which adds distributed properties.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster">SessionListener</a></th>
+<td class="colLast">
+<div class="block">Session listener.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a></th>
+<td class="colLast">
+<div class="block">Cluster related context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster">RemoteSession</a></th>
+<td class="colLast">
+<div class="block">Remote session represents session originating from another node.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster">SessionEventListener</a></th>
+<td class="colLast">
+<div class="block">Session event listener.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/package-tree.html
new file mode 100644
index 00000000..ac4ff704
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/package-tree.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.cluster Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.cluster Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.core.cluster</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">ClusterContext</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">RemoteSession</span></a> (implements org.glassfish.tyrus.core.cluster.<a href="DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a>, javax.websocket.<a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">SessionEventListener</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.AutoCloseable
+<ul>
+<li class="circle">java.io.Closeable
+<ul>
+<li class="circle">javax.websocket.<a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket"><span class="typeNameLink">Session</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">DistributedSession</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">BroadcastListener</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">SessionListener</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">RemoteSession.DistributedMapKey</span></a> (implements java.io.Serializable)</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/cluster/package-use.html b/apidocs/1.20/org/glassfish/tyrus/core/cluster/package-use.html
new file mode 100644
index 00000000..7afe4779
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/cluster/package-use.html
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.cluster (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.cluster (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.core.cluster" class="title">Uses of Package<br>org.glassfish.tyrus.core.cluster</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.core.cluster</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.cluster</a> used by <a href="../package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClusterContext.html#org.glassfish.tyrus.core">ClusterContext</a></th>
+<td class="colLast">
+<div class="block">Cluster related context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/DistributedSession.html#org.glassfish.tyrus.core">DistributedSession</a></th>
+<td class="colLast">
+<div class="block">Extended <a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a> which adds distributed properties.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RemoteSession.html#org.glassfish.tyrus.core">RemoteSession</a></th>
+<td class="colLast">
+<div class="block">Remote session represents session originating from another node.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.cluster</a> used by <a href="package-summary.html">org.glassfish.tyrus.core.cluster</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/BroadcastListener.html#org.glassfish.tyrus.core.cluster">BroadcastListener</a></th>
+<td class="colLast">
+<div class="block">Broadcast listener.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ClusterContext.html#org.glassfish.tyrus.core.cluster">ClusterContext</a></th>
+<td class="colLast">
+<div class="block">Cluster related context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/DistributedSession.html#org.glassfish.tyrus.core.cluster">DistributedSession</a></th>
+<td class="colLast">
+<div class="block">Extended <a href="../../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a> which adds distributed properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/RemoteSession.DistributedMapKey.html#org.glassfish.tyrus.core.cluster">RemoteSession.DistributedMapKey</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/SessionEventListener.html#org.glassfish.tyrus.core.cluster">SessionEventListener</a></th>
+<td class="colLast">
+<div class="block">Session event listener.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SessionListener.html#org.glassfish.tyrus.core.cluster">SessionListener</a></th>
+<td class="colLast">
+<div class="block">Session listener.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/CoderAdapter.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/CoderAdapter.html
new file mode 100644
index 00000000..7da3d2a0
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/CoderAdapter.html
@@ -0,0 +1,342 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CoderAdapter (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CoderAdapter (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CoderAdapter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class CoderAdapter" class="title">Class CoderAdapter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.CoderAdapter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a></code>, <code><a href="InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">InputStreamDecoder</a></code>, <code><a href="NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></code>, <code><a href="NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></code>, <code><a href="NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></code>, <code><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></code>, <code><a href="ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">ReaderDecoder</a></code>, <code><a href="ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder">ToStringEncoder</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">CoderAdapter</span>
+extends java.lang.Object</pre>
+<div class="block">Adapter for <a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> which implements lifecycle
+ methods.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">CoderAdapter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroy()">destroy</a></span>()</code></th>
+<td class="colLast">
+<div class="block">This method does nothing.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(javax.websocket.EndpointConfig)">init</a></span>&#8203;(<a href="../../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">This method does nothing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CoderAdapter</h4>
+<pre>public&nbsp;CoderAdapter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="init(javax.websocket.EndpointConfig)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>init</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;init&#8203;(<a href="../../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;config)</pre>
+<div class="block">This method does nothing.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - the endpoint configuration object when being brought into service.</dd>
+</dl>
+</li>
+</ul>
+<a id="destroy()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>destroy</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;destroy()</pre>
+<div class="block">This method does nothing.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CoderAdapter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/CoderWrapper.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/CoderWrapper.html
new file mode 100644
index 00000000..d6e55a4e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/CoderWrapper.html
@@ -0,0 +1,471 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CoderWrapper (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CoderWrapper (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CoderWrapper.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class CoderWrapper" class="title">Class CoderWrapper&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.CoderWrapper&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">CoderWrapper&lt;T&gt;</span>
+extends <a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a>
+implements <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a>, <a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></pre>
+<div class="block">Wrapper of coders storing the coder coder class (and optionally coder instance), return type of the encode / decode
+ method and coder class.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="../../../../../javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;<a href="../../../../../javax/websocket/Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Class,java.lang.Class)">CoderWrapper</a></span>&#8203;(java.lang.Class&lt;? extends <a href="CoderWrapper.html" title="type parameter in CoderWrapper">T</a>&gt;&nbsp;coderClass,
+            java.lang.Class&lt;?&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Construct new coder wrapper.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(T,java.lang.Class)">CoderWrapper</a></span>&#8203;(<a href="CoderWrapper.html" title="type parameter in CoderWrapper">T</a>&nbsp;coder,
+            java.lang.Class&lt;?&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Construct new coder wrapper.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="CoderWrapper.html" title="type parameter in CoderWrapper">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCoder()">getCoder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get coder instance.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="CoderWrapper.html" title="type parameter in CoderWrapper">T</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCoderClass()">getCoderClass</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get coder class.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the return type of the encode / decode method.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="../../../../../javax/websocket/Encoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Encoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.Class,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CoderWrapper</h4>
+<pre>public&nbsp;CoderWrapper&#8203;(java.lang.Class&lt;? extends <a href="CoderWrapper.html" title="type parameter in CoderWrapper">T</a>&gt;&nbsp;coderClass,
+                    java.lang.Class&lt;?&gt;&nbsp;type)</pre>
+<div class="block">Construct new coder wrapper.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>coderClass</code> - coder class.</dd>
+<dd><code>type</code> - return type provided by the encode / decode method. Cannot be <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Object,java.lang.Class)">
+<!--   -->
+</a><a id="&lt;init&gt;(T,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CoderWrapper</h4>
+<pre>public&nbsp;CoderWrapper&#8203;(<a href="CoderWrapper.html" title="type parameter in CoderWrapper">T</a>&nbsp;coder,
+                    java.lang.Class&lt;?&gt;&nbsp;type)</pre>
+<div class="block">Construct new coder wrapper.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>coder</code> - cannot be <code>null</code>.</dd>
+<dd><code>type</code> - return type provided by the encode / decode method. Cannot be <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Class&lt;?&gt;&nbsp;getType()</pre>
+<div class="block">Get the return type of the encode / decode method.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>return type of the encode / decode method.</dd>
+</dl>
+</li>
+</ul>
+<a id="getCoderClass()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCoderClass</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Class&lt;? extends <a href="CoderWrapper.html" title="type parameter in CoderWrapper">T</a>&gt;&nbsp;getCoderClass()</pre>
+<div class="block">Get coder class.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>coder class.</dd>
+</dl>
+</li>
+</ul>
+<a id="getCoder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCoder</h4>
+<pre class="methodSignature">public&nbsp;<a href="CoderWrapper.html" title="type parameter in CoderWrapper">T</a>&nbsp;getCoder()</pre>
+<div class="block">Get coder instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>coder instance. <code>null</code> if registered using coder class.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CoderWrapper.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/InputStreamDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/InputStreamDecoder.html
new file mode 100644
index 00000000..0f288847
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/InputStreamDecoder.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>InputStreamDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InputStreamDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InputStreamDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class InputStreamDecoder" class="title">Class InputStreamDecoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.InputStreamDecoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;java.io.InputStream&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">InputStreamDecoder</span>
+extends <a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a>
+implements <a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;java.io.InputStream&gt;</pre>
+<div class="block">Built in <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>InputStream</code>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">InputStreamDecoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.io.InputStream</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.nio.ByteBuffer)">decode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bytes)</code></th>
+<td class="colLast">
+<div class="block">Decode the given bytes into an object of type T.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#willDecode(java.nio.ByteBuffer)">willDecode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bytes)</code></th>
+<td class="colLast">
+<div class="block">Answer whether the given bytes can be decoded into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>InputStreamDecoder</h4>
+<pre>public&nbsp;InputStreamDecoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="willDecode(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>willDecode</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;willDecode&#8203;(java.nio.ByteBuffer&nbsp;bytes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Binary.html#willDecode(java.nio.ByteBuffer)">Decoder.Binary</a></code></span></div>
+<div class="block">Answer whether the given bytes can be decoded into an object of type T.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.Binary.html#willDecode(java.nio.ByteBuffer)">willDecode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;java.io.InputStream&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the bytes to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether or not the bytes can be decoded by this decoder.</dd>
+</dl>
+</li>
+</ul>
+<a id="decode(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public&nbsp;java.io.InputStream&nbsp;decode&#8203;(java.nio.ByteBuffer&nbsp;bytes)
+                           throws <a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Binary.html#decode(java.nio.ByteBuffer)">Decoder.Binary</a></code></span></div>
+<div class="block">Decode the given bytes into an object of type T.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.Binary.html#decode(java.nio.ByteBuffer)">decode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;java.io.InputStream&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the bytes to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InputStreamDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html
new file mode 100644
index 00000000..93aa3f54
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html
@@ -0,0 +1,438 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>NoOpByteArrayCoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NoOpByteArrayCoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NoOpByteArrayCoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class NoOpByteArrayCoder" class="title">Class NoOpByteArrayCoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.NoOpByteArrayCoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;byte[]&gt;</code>, <code><a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></code>, <code><a href="../../../../../javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;byte[]&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NoOpByteArrayCoder</span>
+extends <a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a>
+implements <a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;byte[]&gt;, <a href="../../../../../javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;byte[]&gt;</pre>
+<div class="block"><a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for byte array.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="../../../../../javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;<a href="../../../../../javax/websocket/Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">NoOpByteArrayCoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.nio.ByteBuffer)">decode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bytes)</code></th>
+<td class="colLast">
+<div class="block">Decode the given bytes into an object of type T.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.nio.ByteBuffer</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encode(byte%5B%5D)">encode</a></span>&#8203;(byte[]&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Encode the given object into a byte array.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#willDecode(java.nio.ByteBuffer)">willDecode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bytes)</code></th>
+<td class="colLast">
+<div class="block">Answer whether the given bytes can be decoded into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="../../../../../javax/websocket/Encoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Encoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NoOpByteArrayCoder</h4>
+<pre>public&nbsp;NoOpByteArrayCoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="encode(byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encode</h4>
+<pre class="methodSignature">public&nbsp;java.nio.ByteBuffer&nbsp;encode&#8203;(byte[]&nbsp;object)
+                           throws <a href="../../../../../javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Encoder.Binary.html#encode(T)">Encoder.Binary</a></code></span></div>
+<div class="block">Encode the given object into a byte array.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Encoder.Binary.html#encode(T)">encode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;byte[]&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - the object being encoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the binary data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="willDecode(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>willDecode</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;willDecode&#8203;(java.nio.ByteBuffer&nbsp;bytes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Binary.html#willDecode(java.nio.ByteBuffer)">Decoder.Binary</a></code></span></div>
+<div class="block">Answer whether the given bytes can be decoded into an object of type T.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.Binary.html#willDecode(java.nio.ByteBuffer)">willDecode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;byte[]&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the bytes to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether or not the bytes can be decoded by this decoder.</dd>
+</dl>
+</li>
+</ul>
+<a id="decode(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public&nbsp;byte[]&nbsp;decode&#8203;(java.nio.ByteBuffer&nbsp;bytes)
+              throws <a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Binary.html#decode(java.nio.ByteBuffer)">Decoder.Binary</a></code></span></div>
+<div class="block">Decode the given bytes into an object of type T.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.Binary.html#decode(java.nio.ByteBuffer)">decode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;byte[]&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the bytes to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NoOpByteArrayCoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html
new file mode 100644
index 00000000..9a2662dc
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html
@@ -0,0 +1,438 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>NoOpByteBufferCoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NoOpByteBufferCoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NoOpByteBufferCoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class NoOpByteBufferCoder" class="title">Class NoOpByteBufferCoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.NoOpByteBufferCoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;java.nio.ByteBuffer&gt;</code>, <code><a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></code>, <code><a href="../../../../../javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;java.nio.ByteBuffer&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NoOpByteBufferCoder</span>
+extends <a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a>
+implements <a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;java.nio.ByteBuffer&gt;, <a href="../../../../../javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;java.nio.ByteBuffer&gt;</pre>
+<div class="block"><a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for <code>ByteBuffer</code>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="../../../../../javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;<a href="../../../../../javax/websocket/Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">NoOpByteBufferCoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.nio.ByteBuffer</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.nio.ByteBuffer)">decode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bytes)</code></th>
+<td class="colLast">
+<div class="block">Decode the given bytes into an object of type T.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.nio.ByteBuffer</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encode(java.nio.ByteBuffer)">encode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Encode the given object into a byte array.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#willDecode(java.nio.ByteBuffer)">willDecode</a></span>&#8203;(java.nio.ByteBuffer&nbsp;bytes)</code></th>
+<td class="colLast">
+<div class="block">Answer whether the given bytes can be decoded into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="../../../../../javax/websocket/Encoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Encoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NoOpByteBufferCoder</h4>
+<pre>public&nbsp;NoOpByteBufferCoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="willDecode(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>willDecode</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;willDecode&#8203;(java.nio.ByteBuffer&nbsp;bytes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Binary.html#willDecode(java.nio.ByteBuffer)">Decoder.Binary</a></code></span></div>
+<div class="block">Answer whether the given bytes can be decoded into an object of type T.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.Binary.html#willDecode(java.nio.ByteBuffer)">willDecode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;java.nio.ByteBuffer&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the bytes to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether or not the bytes can be decoded by this decoder.</dd>
+</dl>
+</li>
+</ul>
+<a id="decode(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public&nbsp;java.nio.ByteBuffer&nbsp;decode&#8203;(java.nio.ByteBuffer&nbsp;bytes)
+                           throws <a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Binary.html#decode(java.nio.ByteBuffer)">Decoder.Binary</a></code></span></div>
+<div class="block">Decode the given bytes into an object of type T.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.Binary.html#decode(java.nio.ByteBuffer)">decode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;java.nio.ByteBuffer&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>bytes</code> - the bytes to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="encode(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>encode</h4>
+<pre class="methodSignature">public&nbsp;java.nio.ByteBuffer&nbsp;encode&#8203;(java.nio.ByteBuffer&nbsp;object)
+                           throws <a href="../../../../../javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Encoder.Binary.html#encode(T)">Encoder.Binary</a></code></span></div>
+<div class="block">Encode the given object into a byte array.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Encoder.Binary.html#encode(T)">encode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;java.nio.ByteBuffer&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - the object being encoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the binary data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NoOpByteBufferCoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/NoOpTextCoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/NoOpTextCoder.html
new file mode 100644
index 00000000..923eee22
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/NoOpTextCoder.html
@@ -0,0 +1,437 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>NoOpTextCoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NoOpTextCoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NoOpTextCoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class NoOpTextCoder" class="title">Class NoOpTextCoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.NoOpTextCoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.lang.String&gt;</code>, <code><a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></code>, <code><a href="../../../../../javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;java.lang.String&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NoOpTextCoder</span>
+extends <a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a>
+implements <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.lang.String&gt;, <a href="../../../../../javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;java.lang.String&gt;</pre>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="../../../../../javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;<a href="../../../../../javax/websocket/Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">NoOpTextCoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Decode the given String into an object of type T.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encode(java.lang.String)">encode</a></span>&#8203;(java.lang.String&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Encode the given object into a String.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#willDecode(java.lang.String)">willDecode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Answer whether the given String can be decoded into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="../../../../../javax/websocket/Encoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Encoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NoOpTextCoder</h4>
+<pre>public&nbsp;NoOpTextCoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="willDecode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>willDecode</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;willDecode&#8203;(java.lang.String&nbsp;s)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html#willDecode(java.lang.String)">Decoder.Text</a></code></span></div>
+<div class="block">Answer whether the given String can be decoded into an object of type T.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.Text.html#willDecode(java.lang.String)">willDecode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.lang.String&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the string being tested for decodability.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether this decoder can decoded the supplied string.</dd>
+</dl>
+</li>
+</ul>
+<a id="decode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;decode&#8203;(java.lang.String&nbsp;s)
+                        throws <a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html#decode(java.lang.String)">Decoder.Text</a></code></span></div>
+<div class="block">Decode the given String into an object of type T.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.Text.html#decode(java.lang.String)">decode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.lang.String&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - string to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded message as an object of type T</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="encode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>encode</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;encode&#8203;(java.lang.String&nbsp;object)
+                        throws <a href="../../../../../javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Encoder.Text.html#encode(T)">Encoder.Text</a></code></span></div>
+<div class="block">Encode the given object into a String.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Encoder.Text.html#encode(T)">encode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;java.lang.String&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - the object being encoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the encoded object as a string.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NoOpTextCoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html
new file mode 100644
index 00000000..65743bea
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.BooleanDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PrimitiveDecoders.BooleanDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.BooleanDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class PrimitiveDecoders.BooleanDecoder" class="title">Class PrimitiveDecoders.BooleanDecoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.PrimitiveDecoders</a>&lt;java.lang.Boolean&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.PrimitiveDecoders.BooleanDecoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.lang.Boolean&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;<a href="PrimitiveDecoders.html" title="type parameter in PrimitiveDecoders">T</a>&gt;</dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">PrimitiveDecoders.BooleanDecoder</span>
+extends <a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;java.lang.Boolean&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a>, <a href="PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a>, <a href="PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a>, <a href="PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a>, <a href="PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a>, <a href="PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a>, <a href="PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a>, <a href="PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#ALL">ALL</a>, <a href="PrimitiveDecoders.html#ALL_INSTANCES">ALL_INSTANCES</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BooleanDecoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.Boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Decode the given String into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#willDecode(java.lang.String)">willDecode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanDecoder</h4>
+<pre>public&nbsp;BooleanDecoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="decode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Boolean&nbsp;decode&#8203;(java.lang.String&nbsp;s)
+                         throws <a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html#decode(java.lang.String)">Decoder.Text</a></code></span></div>
+<div class="block">Decode the given String into an object of type T.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - string to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded message as an object of type T</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.BooleanDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html
new file mode 100644
index 00000000..6b13ed24
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.ByteDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PrimitiveDecoders.ByteDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.ByteDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class PrimitiveDecoders.ByteDecoder" class="title">Class PrimitiveDecoders.ByteDecoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.PrimitiveDecoders</a>&lt;java.lang.Byte&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.PrimitiveDecoders.ByteDecoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.lang.Byte&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;<a href="PrimitiveDecoders.html" title="type parameter in PrimitiveDecoders">T</a>&gt;</dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">PrimitiveDecoders.ByteDecoder</span>
+extends <a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;java.lang.Byte&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a>, <a href="PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a>, <a href="PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a>, <a href="PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a>, <a href="PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a>, <a href="PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a>, <a href="PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a>, <a href="PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#ALL">ALL</a>, <a href="PrimitiveDecoders.html#ALL_INSTANCES">ALL_INSTANCES</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ByteDecoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.Byte</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Decode the given String into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#willDecode(java.lang.String)">willDecode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ByteDecoder</h4>
+<pre>public&nbsp;ByteDecoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="decode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Byte&nbsp;decode&#8203;(java.lang.String&nbsp;s)
+                      throws <a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html#decode(java.lang.String)">Decoder.Text</a></code></span></div>
+<div class="block">Decode the given String into an object of type T.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - string to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded message as an object of type T</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.ByteDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html
new file mode 100644
index 00000000..f897b827
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.CharacterDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PrimitiveDecoders.CharacterDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.CharacterDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class PrimitiveDecoders.CharacterDecoder" class="title">Class PrimitiveDecoders.CharacterDecoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.PrimitiveDecoders</a>&lt;java.lang.Character&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.PrimitiveDecoders.CharacterDecoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.lang.Character&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;<a href="PrimitiveDecoders.html" title="type parameter in PrimitiveDecoders">T</a>&gt;</dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">PrimitiveDecoders.CharacterDecoder</span>
+extends <a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;java.lang.Character&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a>, <a href="PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a>, <a href="PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a>, <a href="PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a>, <a href="PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a>, <a href="PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a>, <a href="PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a>, <a href="PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#ALL">ALL</a>, <a href="PrimitiveDecoders.html#ALL_INSTANCES">ALL_INSTANCES</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">CharacterDecoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.Character</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Decode the given String into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#willDecode(java.lang.String)">willDecode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CharacterDecoder</h4>
+<pre>public&nbsp;CharacterDecoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="decode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Character&nbsp;decode&#8203;(java.lang.String&nbsp;s)
+                           throws <a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html#decode(java.lang.String)">Decoder.Text</a></code></span></div>
+<div class="block">Decode the given String into an object of type T.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - string to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded message as an object of type T</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.CharacterDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html
new file mode 100644
index 00000000..714f1161
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.DoubleDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PrimitiveDecoders.DoubleDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.DoubleDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class PrimitiveDecoders.DoubleDecoder" class="title">Class PrimitiveDecoders.DoubleDecoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.PrimitiveDecoders</a>&lt;java.lang.Double&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.PrimitiveDecoders.DoubleDecoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.lang.Double&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;<a href="PrimitiveDecoders.html" title="type parameter in PrimitiveDecoders">T</a>&gt;</dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">PrimitiveDecoders.DoubleDecoder</span>
+extends <a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;java.lang.Double&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a>, <a href="PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a>, <a href="PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a>, <a href="PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a>, <a href="PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a>, <a href="PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a>, <a href="PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a>, <a href="PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#ALL">ALL</a>, <a href="PrimitiveDecoders.html#ALL_INSTANCES">ALL_INSTANCES</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DoubleDecoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.Double</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Decode the given String into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#willDecode(java.lang.String)">willDecode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DoubleDecoder</h4>
+<pre>public&nbsp;DoubleDecoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="decode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Double&nbsp;decode&#8203;(java.lang.String&nbsp;s)
+                        throws <a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html#decode(java.lang.String)">Decoder.Text</a></code></span></div>
+<div class="block">Decode the given String into an object of type T.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - string to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded message as an object of type T</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.DoubleDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html
new file mode 100644
index 00000000..4b15d1ca
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.FloatDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PrimitiveDecoders.FloatDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.FloatDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class PrimitiveDecoders.FloatDecoder" class="title">Class PrimitiveDecoders.FloatDecoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.PrimitiveDecoders</a>&lt;java.lang.Float&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.PrimitiveDecoders.FloatDecoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.lang.Float&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;<a href="PrimitiveDecoders.html" title="type parameter in PrimitiveDecoders">T</a>&gt;</dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">PrimitiveDecoders.FloatDecoder</span>
+extends <a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;java.lang.Float&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a>, <a href="PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a>, <a href="PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a>, <a href="PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a>, <a href="PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a>, <a href="PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a>, <a href="PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a>, <a href="PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#ALL">ALL</a>, <a href="PrimitiveDecoders.html#ALL_INSTANCES">ALL_INSTANCES</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">FloatDecoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.Float</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Decode the given String into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#willDecode(java.lang.String)">willDecode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FloatDecoder</h4>
+<pre>public&nbsp;FloatDecoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="decode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Float&nbsp;decode&#8203;(java.lang.String&nbsp;s)
+                       throws <a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html#decode(java.lang.String)">Decoder.Text</a></code></span></div>
+<div class="block">Decode the given String into an object of type T.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - string to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded message as an object of type T</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.FloatDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html
new file mode 100644
index 00000000..d2bb97a9
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.IntegerDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PrimitiveDecoders.IntegerDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.IntegerDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class PrimitiveDecoders.IntegerDecoder" class="title">Class PrimitiveDecoders.IntegerDecoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.PrimitiveDecoders</a>&lt;java.lang.Integer&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.PrimitiveDecoders.IntegerDecoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.lang.Integer&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;<a href="PrimitiveDecoders.html" title="type parameter in PrimitiveDecoders">T</a>&gt;</dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">PrimitiveDecoders.IntegerDecoder</span>
+extends <a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;java.lang.Integer&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a>, <a href="PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a>, <a href="PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a>, <a href="PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a>, <a href="PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a>, <a href="PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a>, <a href="PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a>, <a href="PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#ALL">ALL</a>, <a href="PrimitiveDecoders.html#ALL_INSTANCES">ALL_INSTANCES</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">IntegerDecoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.Integer</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Decode the given String into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#willDecode(java.lang.String)">willDecode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>IntegerDecoder</h4>
+<pre>public&nbsp;IntegerDecoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="decode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Integer&nbsp;decode&#8203;(java.lang.String&nbsp;s)
+                         throws <a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html#decode(java.lang.String)">Decoder.Text</a></code></span></div>
+<div class="block">Decode the given String into an object of type T.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - string to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded message as an object of type T</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.IntegerDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html
new file mode 100644
index 00000000..126aebc1
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.LongDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PrimitiveDecoders.LongDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.LongDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class PrimitiveDecoders.LongDecoder" class="title">Class PrimitiveDecoders.LongDecoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.PrimitiveDecoders</a>&lt;java.lang.Long&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.PrimitiveDecoders.LongDecoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.lang.Long&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;<a href="PrimitiveDecoders.html" title="type parameter in PrimitiveDecoders">T</a>&gt;</dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">PrimitiveDecoders.LongDecoder</span>
+extends <a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;java.lang.Long&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a>, <a href="PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a>, <a href="PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a>, <a href="PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a>, <a href="PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a>, <a href="PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a>, <a href="PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a>, <a href="PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#ALL">ALL</a>, <a href="PrimitiveDecoders.html#ALL_INSTANCES">ALL_INSTANCES</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">LongDecoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.Long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Decode the given String into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#willDecode(java.lang.String)">willDecode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LongDecoder</h4>
+<pre>public&nbsp;LongDecoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="decode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Long&nbsp;decode&#8203;(java.lang.String&nbsp;s)
+                      throws <a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html#decode(java.lang.String)">Decoder.Text</a></code></span></div>
+<div class="block">Decode the given String into an object of type T.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - string to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded message as an object of type T</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.LongDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html
new file mode 100644
index 00000000..299bd83c
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.ShortDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PrimitiveDecoders.ShortDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.ShortDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class PrimitiveDecoders.ShortDecoder" class="title">Class PrimitiveDecoders.ShortDecoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.PrimitiveDecoders</a>&lt;java.lang.Short&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.PrimitiveDecoders.ShortDecoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.lang.Short&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;<a href="PrimitiveDecoders.html" title="type parameter in PrimitiveDecoders">T</a>&gt;</dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">PrimitiveDecoders.ShortDecoder</span>
+extends <a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;java.lang.Short&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a>, <a href="PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a>, <a href="PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a>, <a href="PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a>, <a href="PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a>, <a href="PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a>, <a href="PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a>, <a href="PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#ALL">ALL</a>, <a href="PrimitiveDecoders.html#ALL_INSTANCES">ALL_INSTANCES</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ShortDecoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.Short</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Decode the given String into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.PrimitiveDecoders">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></h3>
+<code><a href="PrimitiveDecoders.html#willDecode(java.lang.String)">willDecode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ShortDecoder</h4>
+<pre>public&nbsp;ShortDecoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="decode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Short&nbsp;decode&#8203;(java.lang.String&nbsp;s)
+                       throws <a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html#decode(java.lang.String)">Decoder.Text</a></code></span></div>
+<div class="block">Decode the given String into an object of type T.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - string to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded message as an object of type T</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.ShortDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.html
new file mode 100644
index 00000000..1426ae82
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.html
@@ -0,0 +1,481 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PrimitiveDecoders (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class PrimitiveDecoders" class="title">Class PrimitiveDecoders&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.PrimitiveDecoders&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;T&gt;</code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a></code>, <code><a href="PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a></code>, <code><a href="PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a></code>, <code><a href="PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a></code>, <code><a href="PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a></code>, <code><a href="PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a></code>, <code><a href="PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a></code>, <code><a href="PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">PrimitiveDecoders&lt;T&gt;</span>
+extends <a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a>
+implements <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;T&gt;</pre>
+<div class="block">Collection of decoders for all primitive types.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Martin Matula (martin.matula at oracle.com), Danny Coward (danny.coward at oracle.com), Stepan Kopriva (stepan.kopriva at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.util.List&lt;java.lang.Class&lt;? extends <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALL">ALL</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.util.Map&lt;java.lang.Class&lt;?&gt;,&#8203;<a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALL_INSTANCES">ALL_INSTANCES</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">PrimitiveDecoders</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#willDecode(java.lang.String)">willDecode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Answer whether the given String can be decoded into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder.Text">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Text.html#decode(java.lang.String)">decode</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="ALL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ALL</h4>
+<pre>public static final&nbsp;java.util.List&lt;java.lang.Class&lt;? extends <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a>&gt;&gt; ALL</pre>
+</li>
+</ul>
+<a id="ALL_INSTANCES">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ALL_INSTANCES</h4>
+<pre>public static final&nbsp;java.util.Map&lt;java.lang.Class&lt;?&gt;,&#8203;<a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;?&gt;&gt; ALL_INSTANCES</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PrimitiveDecoders</h4>
+<pre>public&nbsp;PrimitiveDecoders()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="willDecode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>willDecode</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;willDecode&#8203;(java.lang.String&nbsp;s)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html#willDecode(java.lang.String)">Decoder.Text</a></code></span></div>
+<div class="block">Answer whether the given String can be decoded into an object of type T.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.Text.html#willDecode(java.lang.String)">willDecode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="PrimitiveDecoders.html" title="type parameter in PrimitiveDecoders">T</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the string being tested for decodability.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether this decoder can decoded the supplied string.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PrimitiveDecoders.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/ReaderDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/ReaderDecoder.html
new file mode 100644
index 00000000..16cdf262
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/ReaderDecoder.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ReaderDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReaderDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class ReaderDecoder" class="title">Class ReaderDecoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.ReaderDecoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></code>, <code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.io.Reader&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ReaderDecoder</span>
+extends <a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a>
+implements <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.io.Reader&gt;</pre>
+<div class="block">Built in <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>Reader</code>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket">Decoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;<a href="../../../../../javax/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket">Decoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ReaderDecoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.io.Reader</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.lang.String)">decode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Decode the given String into an object of type T.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#willDecode(java.lang.String)">willDecode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Answer whether the given String can be decoded into an object of type T.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Decoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a></h3>
+<code><a href="../../../../../javax/websocket/Decoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Decoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReaderDecoder</h4>
+<pre>public&nbsp;ReaderDecoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="willDecode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>willDecode</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;willDecode&#8203;(java.lang.String&nbsp;s)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html#willDecode(java.lang.String)">Decoder.Text</a></code></span></div>
+<div class="block">Answer whether the given String can be decoded into an object of type T.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.Text.html#willDecode(java.lang.String)">willDecode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.io.Reader&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the string being tested for decodability.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether this decoder can decoded the supplied string.</dd>
+</dl>
+</li>
+</ul>
+<a id="decode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public&nbsp;java.io.Reader&nbsp;decode&#8203;(java.lang.String&nbsp;s)
+                      throws <a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html#decode(java.lang.String)">Decoder.Text</a></code></span></div>
+<div class="block">Decode the given String into an object of type T.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Decoder.Text.html#decode(java.lang.String)">decode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;java.io.Reader&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - string to be decoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded message as an object of type T</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/DecodeException.html" title="class in javax.websocket">DecodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderDecoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/ToStringEncoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/ToStringEncoder.html
new file mode 100644
index 00000000..a04157a3
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/ToStringEncoder.html
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ToStringEncoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ToStringEncoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ToStringEncoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.coder</a></div>
+<h2 title="Class ToStringEncoder" class="title">Class ToStringEncoder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder.CoderAdapter</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.coder.ToStringEncoder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></code>, <code><a href="../../../../../javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;java.lang.Object&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ToStringEncoder</span>
+extends <a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a>
+implements <a href="../../../../../javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;java.lang.Object&gt;</pre>
+<div class="block">Fall-back encoder - encoders any object to string using <code>Object.toString()</code> method.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Martin Matula (martin.matula at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="../../../../../javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;<a href="../../../../../javax/websocket/Encoder.Binary.html" title="type parameter in Encoder.Binary">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.BinaryStream.html" title="interface in javax.websocket">Encoder.BinaryStream</a>&lt;<a href="../../../../../javax/websocket/Encoder.BinaryStream.html" title="type parameter in Encoder.BinaryStream">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;<a href="../../../../../javax/websocket/Encoder.Text.html" title="type parameter in Encoder.Text">T</a>&gt;, <a href="../../../../../javax/websocket/Encoder.TextStream.html" title="interface in javax.websocket">Encoder.TextStream</a>&lt;<a href="../../../../../javax/websocket/Encoder.TextStream.html" title="type parameter in Encoder.TextStream">T</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ToStringEncoder</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encode(java.lang.Object)">encode</a></span>&#8203;(java.lang.Object&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Encode the given object into a String.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.coder.CoderAdapter">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></h3>
+<code><a href="CoderAdapter.html#destroy()">destroy</a>, <a href="CoderAdapter.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Encoder">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a></h3>
+<code><a href="../../../../../javax/websocket/Encoder.html#destroy()">destroy</a>, <a href="../../../../../javax/websocket/Encoder.html#init(javax.websocket.EndpointConfig)">init</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ToStringEncoder</h4>
+<pre>public&nbsp;ToStringEncoder()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="encode(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>encode</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;encode&#8203;(java.lang.Object&nbsp;object)
+                        throws <a href="../../../../../javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../javax/websocket/Encoder.Text.html#encode(T)">Encoder.Text</a></code></span></div>
+<div class="block">Encode the given object into a String.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/Encoder.Text.html#encode(T)">encode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;java.lang.Object&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - the object being encoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the encoded object as a string.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../javax/websocket/EncodeException.html" title="class in javax.websocket">EncodeException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ToStringEncoder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/CoderAdapter.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/CoderAdapter.html
new file mode 100644
index 00000000..9ba022d7
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/CoderAdapter.html
@@ -0,0 +1,286 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.CoderAdapter (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.CoderAdapter (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.CoderAdapter" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.CoderAdapter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.coder">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.coder</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.coder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Wrapper of coders storing the coder coder class (and optionally coder instance), return type of the encode / decode
+ method and coder class.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">InputStreamDecoder</a></span></code></th>
+<td class="colLast">
+<div class="block">Built in <a href="../../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>InputStream</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for byte array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for <code>ByteBuffer</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Collection of decoders for all primitive types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">ReaderDecoder</a></span></code></th>
+<td class="colLast">
+<div class="block">Built in <a href="../../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>Reader</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder">ToStringEncoder</a></span></code></th>
+<td class="colLast">
+<div class="block">Fall-back encoder - encoders any object to string using <code>Object.toString()</code> method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/CoderWrapper.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/CoderWrapper.html
new file mode 100644
index 00000000..3d5cb29b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/CoderWrapper.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.CoderWrapper (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.CoderWrapper (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.CoderWrapper" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.CoderWrapper</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.CoderWrapper</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/InputStreamDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/InputStreamDecoder.html
new file mode 100644
index 00000000..f91b4196
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/InputStreamDecoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.InputStreamDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.InputStreamDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.InputStreamDecoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.InputStreamDecoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.InputStreamDecoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/NoOpByteArrayCoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/NoOpByteArrayCoder.html
new file mode 100644
index 00000000..39555839
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/NoOpByteArrayCoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.NoOpByteArrayCoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.NoOpByteArrayCoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.NoOpByteArrayCoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.NoOpByteArrayCoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.NoOpByteArrayCoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/NoOpByteBufferCoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/NoOpByteBufferCoder.html
new file mode 100644
index 00000000..d749a75c
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/NoOpByteBufferCoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.NoOpByteBufferCoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.NoOpByteBufferCoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.NoOpByteBufferCoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.NoOpByteBufferCoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.NoOpByteBufferCoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/NoOpTextCoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/NoOpTextCoder.html
new file mode 100644
index 00000000..e8fd7abb
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/NoOpTextCoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.NoOpTextCoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.NoOpTextCoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.NoOpTextCoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.NoOpTextCoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.NoOpTextCoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.BooleanDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.BooleanDecoder.html
new file mode 100644
index 00000000..0f636ece
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.BooleanDecoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.BooleanDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.BooleanDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.BooleanDecoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.PrimitiveDecoders.BooleanDecoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.PrimitiveDecoders.BooleanDecoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ByteDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ByteDecoder.html
new file mode 100644
index 00000000..21f580dc
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ByteDecoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ByteDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ByteDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ByteDecoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.PrimitiveDecoders.ByteDecoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.PrimitiveDecoders.ByteDecoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.CharacterDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.CharacterDecoder.html
new file mode 100644
index 00000000..22b7fea8
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.CharacterDecoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.CharacterDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.CharacterDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.CharacterDecoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.PrimitiveDecoders.CharacterDecoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.PrimitiveDecoders.CharacterDecoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.DoubleDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.DoubleDecoder.html
new file mode 100644
index 00000000..514f5ae4
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.DoubleDecoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.DoubleDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.DoubleDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.DoubleDecoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.PrimitiveDecoders.DoubleDecoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.PrimitiveDecoders.DoubleDecoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.FloatDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.FloatDecoder.html
new file mode 100644
index 00000000..bd9910b8
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.FloatDecoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.FloatDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.FloatDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.FloatDecoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.PrimitiveDecoders.FloatDecoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.PrimitiveDecoders.FloatDecoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.IntegerDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.IntegerDecoder.html
new file mode 100644
index 00000000..0170b828
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.IntegerDecoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.IntegerDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.IntegerDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.IntegerDecoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.PrimitiveDecoders.IntegerDecoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.PrimitiveDecoders.IntegerDecoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.LongDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.LongDecoder.html
new file mode 100644
index 00000000..80354cf4
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.LongDecoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.LongDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.LongDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.LongDecoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.PrimitiveDecoders.LongDecoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.PrimitiveDecoders.LongDecoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ShortDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ShortDecoder.html
new file mode 100644
index 00000000..f87e6364
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ShortDecoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ShortDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ShortDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ShortDecoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.PrimitiveDecoders.ShortDecoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.PrimitiveDecoders.ShortDecoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.html
new file mode 100644
index 00000000..bfcd804e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.PrimitiveDecoders</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.coder">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.coder</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.coder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/ReaderDecoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/ReaderDecoder.html
new file mode 100644
index 00000000..6f22ff73
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/ReaderDecoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.ReaderDecoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.ReaderDecoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.ReaderDecoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.ReaderDecoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.ReaderDecoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/ToStringEncoder.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/ToStringEncoder.html
new file mode 100644
index 00000000..4a0255c8
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/ToStringEncoder.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.ToStringEncoder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.ToStringEncoder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.coder.ToStringEncoder" class="title">Uses of Class<br>org.glassfish.tyrus.core.coder.ToStringEncoder</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.coder.ToStringEncoder</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/package-summary.html
new file mode 100644
index 00000000..4ce73e48
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/package-summary.html
@@ -0,0 +1,255 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.coder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.coder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.core.coder</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder">CoderAdapter</a></th>
+<td class="colLast">
+<div class="block">Adapter for <a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> which implements lifecycle
+ methods.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder">CoderWrapper</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Wrapper of coders storing the coder coder class (and optionally coder instance), return type of the encode / decode
+ method and coder class.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder">InputStreamDecoder</a></th>
+<td class="colLast">
+<div class="block">Built in <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>InputStream</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteArrayCoder</a></th>
+<td class="colLast">
+<div class="block"><a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for byte array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpByteBufferCoder</a></th>
+<td class="colLast">
+<div class="block"><a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> implementation for <code>ByteBuffer</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder">NoOpTextCoder</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Collection of decoders for all primitive types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.BooleanDecoder</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ByteDecoder</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.CharacterDecoder</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.DoubleDecoder</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.FloatDecoder</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.IntegerDecoder</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.LongDecoder</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder">PrimitiveDecoders.ShortDecoder</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder">ReaderDecoder</a></th>
+<td class="colLast">
+<div class="block">Built in <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> for <code>Reader</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder">ToStringEncoder</a></th>
+<td class="colLast">
+<div class="block">Fall-back encoder - encoders any object to string using <code>Object.toString()</code> method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/package-tree.html
new file mode 100644
index 00000000..dc1e5edd
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/package-tree.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.coder Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.coder Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.core.coder</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">CoderAdapter</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">CoderWrapper</span></a>&lt;T&gt; (implements javax.websocket.<a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a>, javax.websocket.<a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">InputStreamDecoder</span></a> (implements javax.websocket.<a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;T&gt;)</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">NoOpByteArrayCoder</span></a> (implements javax.websocket.<a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;T&gt;, javax.websocket.<a href="../../../../../javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;T&gt;)</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">NoOpByteBufferCoder</span></a> (implements javax.websocket.<a href="../../../../../javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;T&gt;, javax.websocket.<a href="../../../../../javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;T&gt;)</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">NoOpTextCoder</span></a> (implements javax.websocket.<a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;T&gt;, javax.websocket.<a href="../../../../../javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;T&gt;)</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders</span></a>&lt;T&gt; (implements javax.websocket.<a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;T&gt;)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.BooleanDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.ByteDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.CharacterDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.DoubleDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.FloatDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.IntegerDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.LongDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.ShortDecoder</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">ReaderDecoder</span></a> (implements javax.websocket.<a href="../../../../../javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;T&gt;)</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">ToStringEncoder</span></a> (implements javax.websocket.<a href="../../../../../javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;T&gt;)</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/coder/package-use.html b/apidocs/1.20/org/glassfish/tyrus/core/coder/package-use.html
new file mode 100644
index 00000000..c0e3446b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/coder/package-use.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.coder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.coder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.core.coder" class="title">Uses of Package<br>org.glassfish.tyrus.core.coder</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.core.coder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.coder">org.glassfish.tyrus.core.coder</a></th>
+<td class="colLast">
+<div class="block">Encoder and decoder adapters and built-in implementations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.coder">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.coder</a> used by <a href="package-summary.html">org.glassfish.tyrus.core.coder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/CoderAdapter.html#org.glassfish.tyrus.core.coder">CoderAdapter</a></th>
+<td class="colLast">
+<div class="block">Adapter for <a href="../../../../../javax/websocket/Encoder.html" title="interface in javax.websocket"><code>Encoder</code></a> and <a href="../../../../../javax/websocket/Decoder.html" title="interface in javax.websocket"><code>Decoder</code></a> which implements lifecycle
+ methods.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/PrimitiveDecoders.html#org.glassfish.tyrus.core.coder">PrimitiveDecoders</a></th>
+<td class="colLast">
+<div class="block">Collection of decoders for all primitive types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/collection/LazyValue.html b/apidocs/1.20/org/glassfish/tyrus/core/collection/LazyValue.html
new file mode 100644
index 00000000..87925a12
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/collection/LazyValue.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>LazyValue (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LazyValue (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LazyValue.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.collection</a></div>
+<h2 title="Interface LazyValue" class="title">Interface LazyValue&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;</code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">LazyValue&lt;T&gt;</span>
+extends <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;</pre>
+<div class="block">Lazily initialized <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value</code></a>.
+ <p>
+ Instances of this interface are initialized lazily during the first call to their
+ <a href="Value.html#get()"><code>value retrieval method</code></a>. Information about the initialization state
+ of a <code>LazyValue</code> instance is available via <a href="#isInitialized()"><code>isInitialized()</code></a> method.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isInitialized()">isInitialized</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the lazy value has been initialized already (i.e.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.collection.Value">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.glassfish.tyrus.core.collection.<a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a></h3>
+<code><a href="Value.html#get()">get</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isInitialized()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isInitialized</h4>
+<pre class="methodSignature">boolean&nbsp;isInitialized()</pre>
+<div class="block">Check if the lazy value has been initialized already (i.e. its <a href="Value.html#get()"><code>Value.get()</code></a> method
+ has already been called previously) or not.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the lazy value has already been initialized, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LazyValue.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/collection/Value.html b/apidocs/1.20/org/glassfish/tyrus/core/collection/Value.html
new file mode 100644
index 00000000..f0e9b5c3
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/collection/Value.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Value (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Value (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Value.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.collection</a></div>
+<h2 title="Interface Value" class="title">Interface Value&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - value type.</dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">LazyValue</a>&lt;T&gt;</code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">Value&lt;T&gt;</span></pre>
+<div class="block">A generic value provider.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Value.html" title="type parameter in Value">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get()">get</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the stored value.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="get()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature"><a href="Value.html" title="type parameter in Value">T</a>&nbsp;get()</pre>
+<div class="block">Get the stored value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>stored value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Value.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/collection/Values.html b/apidocs/1.20/org/glassfish/tyrus/core/collection/Values.html
new file mode 100644
index 00000000..fe969d8c
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/collection/Values.html
@@ -0,0 +1,397 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Values (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Values (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":9,"i3":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Values.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.collection</a></div>
+<h2 title="Class Values" class="title">Class Values</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.collection.Values</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">Values</span>
+extends java.lang.Object</pre>
+<div class="block">A collection of <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>Value provider</code></a> factory &amp; utility methods.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#eager(org.glassfish.tyrus.core.collection.Value)">eager</a></span>&#8203;(<a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;&nbsp;delegate)</code></th>
+<td class="colLast">
+<div class="block">Get a new eagerly initialized <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#empty()">empty</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get an empty <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a> whose <a href="Value.html#get()"><code>get()</code></a>
+ method always returns <code>null</code>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">LazyValue</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lazy(org.glassfish.tyrus.core.collection.Value)">lazy</a></span>&#8203;(<a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;&nbsp;delegate)</code></th>
+<td class="colLast">
+<div class="block">Get a new lazily initialized <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#of(T)">of</a></span>&#8203;(T&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">
+ Get a new constant <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a> whose <a href="Value.html#get()"><code>get()</code></a>
+ method always returns the instance supplied to the <code>value</code> parameter.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="empty()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>empty</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;&nbsp;empty()</pre>
+<div class="block">Get an empty <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a> whose <a href="Value.html#get()"><code>get()</code></a>
+ method always returns <code>null</code>.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - value type.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>empty value provider.</dd>
+</dl>
+</li>
+</ul>
+<a id="of(java.lang.Object)">
+<!--   -->
+</a><a id="of(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>of</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;&nbsp;of&#8203;(T&nbsp;value)</pre>
+<div class="block"><p>
+ Get a new constant <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a> whose <a href="Value.html#get()"><code>get()</code></a>
+ method always returns the instance supplied to the <code>value</code> parameter.
+ </p>
+ <p>
+ In case the supplied value constant is <code>null</code>, an <a href="#empty()"><code>empty</code></a> value
+ provider is returned.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - value type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - value instance to be provided.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>constant value provider.</dd>
+</dl>
+</li>
+</ul>
+<a id="lazy(org.glassfish.tyrus.core.collection.Value)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lazy</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">LazyValue</a>&lt;T&gt;&nbsp;lazy&#8203;(<a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;&nbsp;delegate)</pre>
+<div class="block">Get a new lazily initialized <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a>.
+ <p>
+ The value returned by its <a href="Value.html#get()"><code>get()</code></a> method is lazily retrieved during a first
+ call to the method from the supplied <code>delegate</code> value provider and is then cached for
+ a subsequent retrieval.
+ </p>
+ <p>
+ The implementation of the returned lazy value provider is thread-safe and is guaranteed to
+ invoke the <code>get()</code> method on the supplied <code>delegate</code> value provider instance at
+ most once.
+ </p>
+ <p>
+ If the supplied value provider is <code>null</code>, an <a href="#empty()"><code>empty</code></a> value
+ provider is returned.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - value type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>delegate</code> - value provider delegate that will be used to lazily initialize the value provider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>lazily initialized value provider.</dd>
+</dl>
+</li>
+</ul>
+<a id="eager(org.glassfish.tyrus.core.collection.Value)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>eager</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;&nbsp;eager&#8203;(<a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;&nbsp;delegate)</pre>
+<div class="block">Get a new eagerly initialized <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a>.
+ <p>
+ The value returned by its <a href="Value.html#get()"><code>get()</code></a> method is eagerly computed from the supplied
+ <code>delegate</code> value provider and is then stored in a final field for a subsequent retrieval.
+ </p>
+ <p>
+ The implementation of the returned eager value provider is thread-safe and is guaranteed to
+ invoke the <code>get()</code> method on the supplied <code>delegate</code> value provider instance once
+ and only once.
+ </p>
+ <p>
+ If the supplied value provider is <code>null</code>, an <a href="#empty()"><code>empty</code></a> value
+ provider is returned.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - value type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>delegate</code> - value provider delegate that will be used to eagerly initialize the value provider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>eagerly initialized, constant value provider.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Values.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/collection/class-use/LazyValue.html b/apidocs/1.20/org/glassfish/tyrus/core/collection/class-use/LazyValue.html
new file mode 100644
index 00000000..355ba06c
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/collection/class-use/LazyValue.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.collection.LazyValue (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.collection.LazyValue (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.collection.LazyValue" class="title">Uses of Interface<br>org.glassfish.tyrus.core.collection.LazyValue</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">LazyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.collection">org.glassfish.tyrus.core.collection</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.collection">
+<!--   -->
+</a>
+<h3>Uses of <a href="../LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">LazyValue</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.collection</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.collection</a> that return <a href="../LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">LazyValue</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">LazyValue</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Values.</span><code><span class="memberNameLink"><a href="../Values.html#lazy(org.glassfish.tyrus.core.collection.Value)">lazy</a></span>&#8203;(<a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;&nbsp;delegate)</code></th>
+<td class="colLast">
+<div class="block">Get a new lazily initialized <a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/collection/class-use/Value.html b/apidocs/1.20/org/glassfish/tyrus/core/collection/class-use/Value.html
new file mode 100644
index 00000000..d308e359
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/collection/class-use/Value.html
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.collection.Value (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.collection.Value (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.collection.Value" class="title">Uses of Interface<br>org.glassfish.tyrus.core.collection.Value</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.collection">org.glassfish.tyrus.core.collection</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.collection">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.collection</a></h3>
+<table class="useSummary">
+<caption><span>Subinterfaces of <a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.collection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">LazyValue</a>&lt;T&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Lazily initialized <a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.collection</a> that return <a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Values.</span><code><span class="memberNameLink"><a href="../Values.html#eager(org.glassfish.tyrus.core.collection.Value)">eager</a></span>&#8203;(<a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;&nbsp;delegate)</code></th>
+<td class="colLast">
+<div class="block">Get a new eagerly initialized <a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Values.</span><code><span class="memberNameLink"><a href="../Values.html#empty()">empty</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get an empty <a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a> whose <a href="../Value.html#get()"><code>get()</code></a>
+ method always returns <code>null</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Values.</span><code><span class="memberNameLink"><a href="../Values.html#of(T)">of</a></span>&#8203;(T&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">
+ Get a new constant <a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a> whose <a href="../Value.html#get()"><code>get()</code></a>
+ method always returns the instance supplied to the <code>value</code> parameter.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.collection</a> with parameters of type <a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Values.</span><code><span class="memberNameLink"><a href="../Values.html#eager(org.glassfish.tyrus.core.collection.Value)">eager</a></span>&#8203;(<a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;&nbsp;delegate)</code></th>
+<td class="colLast">
+<div class="block">Get a new eagerly initialized <a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">LazyValue</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Values.</span><code><span class="memberNameLink"><a href="../Values.html#lazy(org.glassfish.tyrus.core.collection.Value)">lazy</a></span>&#8203;(<a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;&nbsp;delegate)</code></th>
+<td class="colLast">
+<div class="block">Get a new lazily initialized <a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value provider</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Value.html" title="interface in org.glassfish.tyrus.core.collection">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/collection/class-use/Values.html b/apidocs/1.20/org/glassfish/tyrus/core/collection/class-use/Values.html
new file mode 100644
index 00000000..81c1fe46
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/collection/class-use/Values.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.collection.Values (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.collection.Values (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Values.html" title="class in org.glassfish.tyrus.core.collection">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.collection.Values" class="title">Uses of Class<br>org.glassfish.tyrus.core.collection.Values</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.collection.Values</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Values.html" title="class in org.glassfish.tyrus.core.collection">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/collection/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/core/collection/package-summary.html
new file mode 100644
index 00000000..d329efbe
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/collection/package-summary.html
@@ -0,0 +1,193 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.collection (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.collection (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.core.collection</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="LazyValue.html" title="interface in org.glassfish.tyrus.core.collection">LazyValue</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Lazily initialized <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Value.html" title="interface in org.glassfish.tyrus.core.collection">Value</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">A generic value provider.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Values.html" title="class in org.glassfish.tyrus.core.collection">Values</a></th>
+<td class="colLast">
+<div class="block">A collection of <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>Value provider</code></a> factory &amp; utility methods.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/collection/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/core/collection/package-tree.html
new file mode 100644
index 00000000..561f6f18
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/collection/package-tree.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.collection Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.collection Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.core.collection</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.core.collection.<a href="Values.html" title="class in org.glassfish.tyrus.core.collection"><span class="typeNameLink">Values</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.collection.<a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><span class="typeNameLink">Value</span></a>&lt;T&gt;
+<ul>
+<li class="circle">org.glassfish.tyrus.core.collection.<a href="LazyValue.html" title="interface in org.glassfish.tyrus.core.collection"><span class="typeNameLink">LazyValue</span></a>&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/collection/package-use.html b/apidocs/1.20/org/glassfish/tyrus/core/collection/package-use.html
new file mode 100644
index 00000000..f63ead3a
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/collection/package-use.html
@@ -0,0 +1,193 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.collection (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.collection (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.core.collection" class="title">Uses of Package<br>org.glassfish.tyrus.core.collection</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.core.collection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.collection">org.glassfish.tyrus.core.collection</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.collection">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.collection</a> used by <a href="package-summary.html">org.glassfish.tyrus.core.collection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/LazyValue.html#org.glassfish.tyrus.core.collection">LazyValue</a></th>
+<td class="colLast">
+<div class="block">Lazily initialized <a href="Value.html" title="interface in org.glassfish.tyrus.core.collection"><code>value</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Value.html#org.glassfish.tyrus.core.collection">Value</a></th>
+<td class="colLast">
+<div class="block">A generic value provider.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html b/apidocs/1.20/org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html
new file mode 100644
index 00000000..2f54b787
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ExtendedExtension.ExtensionContext (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ExtendedExtension.ExtensionContext (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ExtendedExtension.ExtensionContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.extension</a></div>
+<h2 title="Interface ExtendedExtension.ExtensionContext" class="title">Interface ExtendedExtension.ExtensionContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">ExtendedExtension.ExtensionContext</span></pre>
+<div class="block">Context present as a parameter in all <a href="ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension"><code>ExtendedExtension</code></a> methods. Maintains per
+ connection state of current extension.
+ <p>
+ Context is created right before <a href="ExtendedExtension.html#onExtensionNegotiation(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)"><code>ExtendedExtension.onExtensionNegotiation(ExtendedExtension.ExtensionContext,
+ java.util.List)</code></a> method call (server-side) or <a href="ExtendedExtension.html#onHandshakeResponse(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)"><code>ExtendedExtension.onHandshakeResponse(ExtendedExtension.ExtensionContext,
+ java.util.List)</code></a> method call (client-side). Last chance to access it is within <a href="ExtendedExtension.html#destroy(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)"><code>ExtendedExtension.destroy(ExtendedExtension.ExtensionContext)</code></a> method invocation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Mutable, not synchronised property map.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;getProperties()</pre>
+<div class="block">Mutable, not synchronised property map.
+ <p>
+ Synchronisation is not necessary if you are accessing this map only during <a href="ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension"><code>ExtendedExtension</code></a> methods
+ invocation.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>property map.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ExtendedExtension.ExtensionContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/extension/ExtendedExtension.html b/apidocs/1.20/org/glassfish/tyrus/core/extension/ExtendedExtension.html
new file mode 100644
index 00000000..cb2bb4ce
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/extension/ExtendedExtension.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ExtendedExtension (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ExtendedExtension (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ExtendedExtension.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.extension</a></div>
+<h2 title="Interface ExtendedExtension" class="title">Interface ExtendedExtension</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ExtendedExtension</span>
+extends <a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a></pre>
+<div class="block">WebSocket <a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a>.
+ <p>
+ Capable of parameters negotiation, incoming and outgoing frames processing.
+ <p>
+ Extensions are ordered as they appear in handshake response headers, as per RFC 6455, chapter 9.1. It does not state
+ any ordering in regards of sender/receiver side and current implementation reflects that. See TODO below for
+ possible
+ issue related to ordering.
+ <p>
+ Let's say we have negotiated two extensions, ext1 and ext2 in this order without parameters, so handshake response
+ headers will be: "sec-websocket-extensions: ext1, ext2". Prefix "c_" means client side, prefix "s_" server side.
+ <pre>
+   client -&gt; server
+
+                +--------+   +--------+                  +--------+   +--------+
+   client  &gt;----| c_ext1 |--&gt;| c_ext2 |--&gt; [network] --&gt; | s_ext1 |--&gt;| s_ext2 |--&gt; server
+                +--------+   +--------+                  +--------+   +--------+
+
+   client &lt;- server
+
+                +--------+   +--------+                  +--------+   +--------+
+   client  &lt;----| c_ext2 |&lt;--| c_ext1 |&lt;-- [network] &lt;-- | s_ext2 |&lt;--| s_ext1 |&lt;-- server
+                +--------+   +--------+                  +--------+   +--------+
+ </pre>
+ <p>
+ Any exception thrown from processIncoming or processOutgoing will be logged. Rest of extension chain will be invoked
+ without any modifications done in "faulty" extension. <a href="../../../../../javax/websocket/OnError.html" title="annotation in javax.websocket"><code>OnError</code></a> won't be triggered. (this
+ might
+ change).
+ <pre>TODO:\
+ - naming.
+ - ordering - we might need to ensure that compression/decompression is invoked first when receiving and last when
+ sending message (to enable access to uncompressed data for other extensions).
+ - param negotiation.
+ - param validation.
+ - general validation - two extensions using same rsv bit cannot be "negotiated" for same session/connection.
+ - negotiation exception handling (onExtensionNegotiation)
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a></span></code></th>
+<td class="colLast">
+<div class="block">Context present as a parameter in all <a href="ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension"><code>ExtendedExtension</code></a> methods.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.javax.websocket.Extension">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a></h3>
+<code><a href="../../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroy(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">destroy</a></span>&#8203;(<a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Context lifecycle method.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onExtensionNegotiation(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)">onExtensionNegotiation</a></span>&#8203;(<a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+                      java.util.List&lt;<a href="../../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;requestedParameters)</code></th>
+<td class="colLast">
+<div class="block">Parameter negotiation.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onHandshakeResponse(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)">onHandshakeResponse</a></span>&#8203;(<a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+                   java.util.List&lt;<a href="../../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;responseParameters)</code></th>
+<td class="colLast">
+<div class="block">Called only on the client side when handshake response arrives.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#processIncoming(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)">processIncoming</a></span>&#8203;(<a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+               <a href="../frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Process incoming frame.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#processOutgoing(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)">processOutgoing</a></span>&#8203;(<a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+               <a href="../frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Process outgoing frame.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.Extension">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a></h3>
+<code><a href="../../../../../javax/websocket/Extension.html#getName()">getName</a>, <a href="../../../../../javax/websocket/Extension.html#getParameters()">getParameters</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="processIncoming(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>processIncoming</h4>
+<pre class="methodSignature"><a href="../frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;processIncoming&#8203;(<a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+                      <a href="../frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</pre>
+<div class="block">Process incoming frame.
+ <p>
+ Passed frame is unmasked in case it was masked when received (server to client communication).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - per-connection/session context.</dd>
+<dd><code>frame</code> - websocket frame representation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>processed frame. Can be new instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="processOutgoing(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>processOutgoing</h4>
+<pre class="methodSignature"><a href="../frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;processOutgoing&#8203;(<a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+                      <a href="../frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</pre>
+<div class="block">Process outgoing frame.
+ <p>
+ Passed frame is unmasked. Frame payload will be masked when required (server to client communication).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - per-connection/session context.</dd>
+<dd><code>frame</code> - websocket frame representation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>processed frame. Can be new instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="onExtensionNegotiation(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onExtensionNegotiation</h4>
+<pre class="methodSignature">java.util.List&lt;<a href="../../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;onExtensionNegotiation&#8203;(<a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+                                                           java.util.List&lt;<a href="../../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;requestedParameters)</pre>
+<div class="block">Parameter negotiation. Executed before handshake response is sent to the client (server only). Returned
+ list of parameters will be present in handshake response headers.
+ <p>
+ TODO: Seems like list of all "requested" extensions should be passed (at least all with the same name) - the
+ TODO: extension implementation should be able to choose which version (parameter set) will be used for the
+ TODO: established WebSocket session. (We should also properly describe that this method will be called only once
+ TODO: per extension per websocket session and have the possibility to NOT add this extension to negotiated
+ TODO: extensions).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - extension context.</dd>
+<dd><code>requestedParameters</code> - requested parameters (from handshake request).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>parameters to be present in handshake response.</dd>
+</dl>
+</li>
+</ul>
+<a id="onHandshakeResponse(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onHandshakeResponse</h4>
+<pre class="methodSignature">void&nbsp;onHandshakeResponse&#8203;(<a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+                         java.util.List&lt;<a href="../../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;responseParameters)</pre>
+<div class="block">Called only on the client side when handshake response arrives.
+ <p>
+ Can be used to process extension parameters returned from server side.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - extension context.</dd>
+<dd><code>responseParameters</code> - extension parameters returned from the server.</dd>
+</dl>
+</li>
+</ul>
+<a id="destroy(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>destroy</h4>
+<pre class="methodSignature">void&nbsp;destroy&#8203;(<a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context)</pre>
+<div class="block">Context lifecycle method. <a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension"><code>ExtendedExtension.ExtensionContext</code></a> won't be used
+ after this method is called.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - extension context to be destroyed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ExtendedExtension.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.ExtensionContext.html b/apidocs/1.20/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.ExtensionContext.html
new file mode 100644
index 00000000..03bd01d3
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.ExtensionContext.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext" class="title">Uses of Interface<br>org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.extension">org.glassfish.tyrus.core.extension</a></th>
+<td class="colLast">
+<div class="block">WebSocket Extension support.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a> in <a href="../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#handshake(org.glassfish.tyrus.core.TyrusEndpointWrapper,org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">handshake</a></span>&#8203;(<a href="../../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+         <a href="../../../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+         <a href="../../../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response,
+         <a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;extensionContext)</code></th>
+<td class="colLast">
+<div class="block">Server side handshake processing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#setExtensionContext(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">setExtensionContext</a></span>&#8203;(<a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;extensionContext)</code></th>
+<td class="colLast">
+<div class="block">Client side.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.extension">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.extension</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.extension</a> with parameters of type <a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExtendedExtension.</span><code><span class="memberNameLink"><a href="../ExtendedExtension.html#destroy(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">destroy</a></span>&#8203;(<a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Context lifecycle method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../../../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExtendedExtension.</span><code><span class="memberNameLink"><a href="../ExtendedExtension.html#onExtensionNegotiation(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)">onExtensionNegotiation</a></span>&#8203;(<a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+                      java.util.List&lt;<a href="../../../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;requestedParameters)</code></th>
+<td class="colLast">
+<div class="block">Parameter negotiation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExtendedExtension.</span><code><span class="memberNameLink"><a href="../ExtendedExtension.html#onHandshakeResponse(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,java.util.List)">onHandshakeResponse</a></span>&#8203;(<a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+                   java.util.List&lt;<a href="../../../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt;&nbsp;responseParameters)</code></th>
+<td class="colLast">
+<div class="block">Called only on the client side when handshake response arrives.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExtendedExtension.</span><code><span class="memberNameLink"><a href="../ExtendedExtension.html#processIncoming(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)">processIncoming</a></span>&#8203;(<a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+               <a href="../../frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Process incoming frame.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExtendedExtension.</span><code><span class="memberNameLink"><a href="../ExtendedExtension.html#processOutgoing(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)">processOutgoing</a></span>&#8203;(<a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+               <a href="../../frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Process outgoing frame.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.html b/apidocs/1.20/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.html
new file mode 100644
index 00000000..fc195d72
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension" class="title">Uses of Interface<br>org.glassfish.tyrus.core.extension.ExtendedExtension</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.extension.ExtendedExtension</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/extension/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/core/extension/package-summary.html
new file mode 100644
index 00000000..3fcdddeb
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/extension/package-summary.html
@@ -0,0 +1,181 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.extension (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.extension (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.core.extension</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">WebSocket Extension support.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension</a></th>
+<td class="colLast">
+<div class="block">WebSocket <a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a></th>
+<td class="colLast">
+<div class="block">Context present as a parameter in all <a href="ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension"><code>ExtendedExtension</code></a> methods.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/extension/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/core/extension/package-tree.html
new file mode 100644
index 00000000..ba520853
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/extension/package-tree.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.extension Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.extension Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.core.extension</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.extension.<a href="ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension"><span class="typeNameLink">ExtendedExtension.ExtensionContext</span></a></li>
+<li class="circle">javax.websocket.<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><span class="typeNameLink">Extension</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.extension.<a href="ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension"><span class="typeNameLink">ExtendedExtension</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/extension/package-use.html b/apidocs/1.20/org/glassfish/tyrus/core/extension/package-use.html
new file mode 100644
index 00000000..bf188376
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/extension/package-use.html
@@ -0,0 +1,214 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.extension (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.extension (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.core.extension" class="title">Uses of Package<br>org.glassfish.tyrus.core.extension</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.core.extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.extension">org.glassfish.tyrus.core.extension</a></th>
+<td class="colLast">
+<div class="block">WebSocket Extension support.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.extension</a> used by <a href="../package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ExtendedExtension.ExtensionContext.html#org.glassfish.tyrus.core">ExtendedExtension.ExtensionContext</a></th>
+<td class="colLast">
+<div class="block">Context present as a parameter in all <a href="ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension"><code>ExtendedExtension</code></a> methods.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.extension">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.extension</a> used by <a href="package-summary.html">org.glassfish.tyrus.core.extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ExtendedExtension.ExtensionContext.html#org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a></th>
+<td class="colLast">
+<div class="block">Context present as a parameter in all <a href="ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension"><code>ExtendedExtension</code></a> methods.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/BinaryFrame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/BinaryFrame.html
new file mode 100644
index 00000000..71ac06b2
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/BinaryFrame.html
@@ -0,0 +1,424 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>BinaryFrame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BinaryFrame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BinaryFrame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.frame</a></div>
+<h2 title="Class BinaryFrame" class="title">Class BinaryFrame</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame.Frame</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame.TyrusFrame</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.frame.BinaryFrame</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">BinaryFrame</span>
+extends <a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></pre>
+<div class="block">Binary frame representation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.frame.TyrusFrame">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></h3>
+<code><a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.frame.Frame">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></h3>
+<code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(byte%5B%5D,boolean,boolean)">BinaryFrame</a></span>&#8203;(byte[]&nbsp;payload,
+           boolean&nbsp;continuation,
+           boolean&nbsp;fin)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">BinaryFrame</a></span>&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,boolean)">BinaryFrame</a></span>&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+           boolean&nbsp;continuation)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">
+<div class="block">Execution part of frame processing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.frame.TyrusFrame">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></h3>
+<code><a href="TyrusFrame.html#getFrameType()">getFrameType</a>, <a href="TyrusFrame.html#wrap(org.glassfish.tyrus.core.frame.Frame,byte,java.nio.ByteBuffer)">wrap</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.frame.Frame">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></h3>
+<code><a href="Frame.html#builder()">builder</a>, <a href="Frame.html#builder(org.glassfish.tyrus.core.frame.Frame)">builder</a>, <a href="Frame.html#getMaskingKey()">getMaskingKey</a>, <a href="Frame.html#getOpcode()">getOpcode</a>, <a href="Frame.html#getPayloadData()">getPayloadData</a>, <a href="Frame.html#getPayloadLength()">getPayloadLength</a>, <a href="Frame.html#isControlFrame()">isControlFrame</a>, <a href="Frame.html#isFin()">isFin</a>, <a href="Frame.html#isMask()">isMask</a>, <a href="Frame.html#isRsv1()">isRsv1</a>, <a href="Frame.html#isRsv2()">isRsv2</a>, <a href="Frame.html#isRsv3()">isRsv3</a>, <a href="Frame.html#toString()">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.frame.Frame)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BinaryFrame</h4>
+<pre>public&nbsp;BinaryFrame&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - original (binary) frame.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.frame.Frame,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BinaryFrame</h4>
+<pre>public&nbsp;BinaryFrame&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+                   boolean&nbsp;continuation)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - original (binary) frame.</dd>
+<dd><code>continuation</code> - <code>true</code> when this frame is continuation frame, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(byte[],boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BinaryFrame</h4>
+<pre>public&nbsp;BinaryFrame&#8203;(byte[]&nbsp;payload,
+                   boolean&nbsp;continuation,
+                   boolean&nbsp;fin)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>payload</code> - frame payload.</dd>
+<dd><code>continuation</code> - <code>true</code> <code>true</code> when this frame is continuation frame, <code>false</code> otherwise.</dd>
+<dd><code>fin</code> - <code>true</code> when this frame is last in current partial message batch. Standard
+                     (non-continuous) frames have this bit set to <code>true</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="respond(org.glassfish.tyrus.core.TyrusWebSocket)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>respond</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;respond&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="TyrusFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">TyrusFrame</a></code></span></div>
+<div class="block">Execution part of frame processing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="TyrusFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></code>&nbsp;in class&nbsp;<code><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - socket on which the appropriate action will be performed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BinaryFrame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/CloseFrame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/CloseFrame.html
new file mode 100644
index 00000000..ccdc01a7
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/CloseFrame.html
@@ -0,0 +1,419 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CloseFrame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CloseFrame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloseFrame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.frame</a></div>
+<h2 title="Class CloseFrame" class="title">Class CloseFrame</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame.Frame</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame.TyrusFrame</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.frame.CloseFrame</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">CloseFrame</span>
+extends <a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></pre>
+<div class="block">Close frame representation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.frame.TyrusFrame">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></h3>
+<code><a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.frame.Frame">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></h3>
+<code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.websocket.CloseReason)">CloseFrame</a></span>&#8203;(<a href="../../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">CloseFrame</a></span>&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCloseReason()">getCloseReason</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get close reason.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">
+<div class="block">Execution part of frame processing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.frame.TyrusFrame">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></h3>
+<code><a href="TyrusFrame.html#getFrameType()">getFrameType</a>, <a href="TyrusFrame.html#wrap(org.glassfish.tyrus.core.frame.Frame,byte,java.nio.ByteBuffer)">wrap</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.frame.Frame">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></h3>
+<code><a href="Frame.html#builder()">builder</a>, <a href="Frame.html#builder(org.glassfish.tyrus.core.frame.Frame)">builder</a>, <a href="Frame.html#getMaskingKey()">getMaskingKey</a>, <a href="Frame.html#getOpcode()">getOpcode</a>, <a href="Frame.html#getPayloadData()">getPayloadData</a>, <a href="Frame.html#getPayloadLength()">getPayloadLength</a>, <a href="Frame.html#isControlFrame()">isControlFrame</a>, <a href="Frame.html#isFin()">isFin</a>, <a href="Frame.html#isMask()">isMask</a>, <a href="Frame.html#isRsv1()">isRsv1</a>, <a href="Frame.html#isRsv2()">isRsv2</a>, <a href="Frame.html#isRsv3()">isRsv3</a>, <a href="Frame.html#toString()">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.frame.Frame)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CloseFrame</h4>
+<pre>public&nbsp;CloseFrame&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - original (close) frame.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CloseFrame</h4>
+<pre>public&nbsp;CloseFrame&#8203;(<a href="../../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;closeReason)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>closeReason</code> - close reason used to construct close frame.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getCloseReason()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCloseReason</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;getCloseReason()</pre>
+<div class="block">Get close reason.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>close reason.</dd>
+</dl>
+</li>
+</ul>
+<a id="respond(org.glassfish.tyrus.core.TyrusWebSocket)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>respond</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;respond&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="TyrusFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">TyrusFrame</a></code></span></div>
+<div class="block">Execution part of frame processing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="TyrusFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></code>&nbsp;in class&nbsp;<code><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - socket on which the appropriate action will be performed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloseFrame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/Frame.Builder.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/Frame.Builder.html
new file mode 100644
index 00000000..993d212b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/Frame.Builder.html
@@ -0,0 +1,557 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Frame.Builder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Frame.Builder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Frame.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.frame</a></div>
+<h2 title="Class Frame.Builder" class="title">Class Frame.Builder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.frame.Frame.Builder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></dd>
+</dl>
+<hr>
+<pre>public static final class <span class="typeNameLabel">Frame.Builder</span>
+extends java.lang.Object</pre>
+<div class="block">Frame builder.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Builder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">Builder</a></span>&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build new frame.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fin(boolean)">fin</a></span>&#8203;(boolean&nbsp;fin)</code></th>
+<td class="colLast">
+<div class="block">Set FIN flag.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mask(boolean)">mask</a></span>&#8203;(boolean&nbsp;mask)</code></th>
+<td class="colLast">
+<div class="block">Currently not used.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maskingKey(java.lang.Integer)">maskingKey</a></span>&#8203;(java.lang.Integer&nbsp;maskingKey)</code></th>
+<td class="colLast">
+<div class="block">Set masking key.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#opcode(byte)">opcode</a></span>&#8203;(byte&nbsp;opcode)</code></th>
+<td class="colLast">
+<div class="block">Set opcode.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#payloadData(byte%5B%5D)">payloadData</a></span>&#8203;(byte[]&nbsp;payloadData)</code></th>
+<td class="colLast">
+<div class="block">Set payload data.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#payloadLength(long)">payloadLength</a></span>&#8203;(long&nbsp;payloadLength)</code></th>
+<td class="colLast">
+<div class="block">Set payload length.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rsv1(boolean)">rsv1</a></span>&#8203;(boolean&nbsp;rsv1)</code></th>
+<td class="colLast">
+<div class="block">Set RSV1 flag.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rsv2(boolean)">rsv2</a></span>&#8203;(boolean&nbsp;rsv2)</code></th>
+<td class="colLast">
+<div class="block">Set RSV2 flag.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rsv3(boolean)">rsv3</a></span>&#8203;(boolean&nbsp;rsv3)</code></th>
+<td class="colLast">
+<div class="block">Set RSV3 flag.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Builder</h4>
+<pre>public&nbsp;Builder()</pre>
+<div class="block">Constructor.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.frame.Frame)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Builder</h4>
+<pre>public&nbsp;Builder&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - frame used as a base for building new frame.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public&nbsp;<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;build()</pre>
+<div class="block">Build new frame.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>built frame.</dd>
+</dl>
+</li>
+</ul>
+<a id="fin(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fin</h4>
+<pre class="methodSignature">public&nbsp;<a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a>&nbsp;fin&#8203;(boolean&nbsp;fin)</pre>
+<div class="block">Set FIN flag.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fin</code> - value to be set as FIN.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="rsv1(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rsv1</h4>
+<pre class="methodSignature">public&nbsp;<a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a>&nbsp;rsv1&#8203;(boolean&nbsp;rsv1)</pre>
+<div class="block">Set RSV1 flag.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rsv1</code> - value to be set as RSV1.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="rsv2(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rsv2</h4>
+<pre class="methodSignature">public&nbsp;<a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a>&nbsp;rsv2&#8203;(boolean&nbsp;rsv2)</pre>
+<div class="block">Set RSV2 flag.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rsv2</code> - value to be set as RSV2.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="rsv3(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rsv3</h4>
+<pre class="methodSignature">public&nbsp;<a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a>&nbsp;rsv3&#8203;(boolean&nbsp;rsv3)</pre>
+<div class="block">Set RSV3 flag.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rsv3</code> - value to be set as RSV3.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="mask(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mask</h4>
+<pre class="methodSignature">public&nbsp;<a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a>&nbsp;mask&#8203;(boolean&nbsp;mask)</pre>
+<div class="block">Currently not used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mask</code> - not used.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="opcode(byte)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>opcode</h4>
+<pre class="methodSignature">public&nbsp;<a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a>&nbsp;opcode&#8203;(byte&nbsp;opcode)</pre>
+<div class="block">Set opcode.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>opcode</code> - opcode to be set. (4 bits).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="payloadLength(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>payloadLength</h4>
+<pre class="methodSignature">public&nbsp;<a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a>&nbsp;payloadLength&#8203;(long&nbsp;payloadLength)</pre>
+<div class="block">Set payload length.
+ <p>
+ Payload length is automatically set to payloadData length when <a href="#payloadData(byte%5B%5D)"><code>payloadData(byte[])</code></a> is called. This
+ method can limit the data used for this frame by setting smaller value than payloadData.length.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>payloadLength</code> - payload length. Must not be greater than payloadData.length.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#payloadData(byte%5B%5D)"><code>payloadData(byte[])</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="maskingKey(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maskingKey</h4>
+<pre class="methodSignature">public&nbsp;<a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a>&nbsp;maskingKey&#8203;(java.lang.Integer&nbsp;maskingKey)</pre>
+<div class="block">Set masking key. Default value is <code>null</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>maskingKey</code> - masking key.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="payloadData(byte[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>payloadData</h4>
+<pre class="methodSignature">public&nbsp;<a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a>&nbsp;payloadData&#8203;(byte[]&nbsp;payloadData)</pre>
+<div class="block">Set payload data. <a href="#payloadLength(long)"><code>payloadLength(long)</code></a> is also updated with payloadData.length.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>payloadData</code> - data to be set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#payloadLength(long)"><code>payloadLength(long)</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Frame.Builder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/Frame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/Frame.html
new file mode 100644
index 00000000..f05c5078
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/Frame.html
@@ -0,0 +1,619 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Frame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Frame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Frame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.frame</a></div>
+<h2 title="Class Frame" class="title">Class Frame</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.frame.Frame</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">Frame</span>
+extends java.lang.Object</pre>
+<div class="block">WebSocket frame representation.
+ <pre>TODO:
+ - masking (isMask is currently ignored)
+ - validation
+ - payloadLength is limited to int</pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">Frame builder.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">Frame</a></span>&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Copy constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#builder()">builder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#builder(org.glassfish.tyrus.core.frame.Frame)">builder</a></span>&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> based on provided frame.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.Integer</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaskingKey()">getMaskingKey</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get masking key.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOpcode()">getOpcode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get opcode.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPayloadData()">getPayloadData</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get payload data.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPayloadLength()">getPayloadLength</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get payload length.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isControlFrame()">isControlFrame</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get information about frame type.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isFin()">isFin</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get FIN value.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isMask()">isMask</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Currently not used.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRsv1()">isRsv1</a></span>()</code></th>
+<td class="colLast">
+<div class="block">GET RSV1 value.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRsv2()">isRsv2</a></span>()</code></th>
+<td class="colLast">
+<div class="block">GET RSV2 value.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRsv3()">isRsv3</a></span>()</code></th>
+<td class="colLast">
+<div class="block">GET RSV3 value.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.frame.Frame)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Frame</h4>
+<pre>protected&nbsp;Frame&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</pre>
+<div class="block">Copy constructor.
+ <p>
+ Note: this is shallow copy. Payload is *not* copied to new array.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - copied frame.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isFin()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isFin</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isFin()</pre>
+<div class="block">Get FIN value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when FIN flag is set, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="isRsv1()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isRsv1</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isRsv1()</pre>
+<div class="block">GET RSV1 value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when RSV1 flag is set, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="isRsv2()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isRsv2</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isRsv2()</pre>
+<div class="block">GET RSV2 value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when RSV2 flag is set, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="isRsv3()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isRsv3</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isRsv3()</pre>
+<div class="block">GET RSV3 value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when RSV3 flag is set, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="isMask()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isMask</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isMask()</pre>
+<div class="block">Currently not used.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>not used.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOpcode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOpcode</h4>
+<pre class="methodSignature">public&nbsp;byte&nbsp;getOpcode()</pre>
+<div class="block">Get opcode.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>opcode (4 bit value).</dd>
+</dl>
+</li>
+</ul>
+<a id="getPayloadLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPayloadLength</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;getPayloadLength()</pre>
+<div class="block">Get payload length.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>payload length.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMaskingKey()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaskingKey</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Integer&nbsp;getMaskingKey()</pre>
+<div class="block">Get masking key.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>masking key (32 bit value) or <code>null</code> when the frame should not be masked.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPayloadData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPayloadData</h4>
+<pre class="methodSignature">public&nbsp;byte[]&nbsp;getPayloadData()</pre>
+<div class="block">Get payload data.
+ <p>
+ Changes done to returned array won't be propagated to current <a href="Frame.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame</code></a> instance. If you need to modify
+ payload, you have to create new instance, see <code>Builder#Frame(Frame)</code>. Length of returned array will
+ be always same as <a href="#getPayloadLength()"><code>getPayloadLength()</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>payload data.</dd>
+</dl>
+</li>
+</ul>
+<a id="isControlFrame()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isControlFrame</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isControlFrame()</pre>
+<div class="block">Get information about frame type.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when this frame is control (close, ping, pong) frame, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="builder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>builder</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a>&nbsp;builder()</pre>
+<div class="block">Create new <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="builder(org.glassfish.tyrus.core.frame.Frame)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>builder</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a>&nbsp;builder&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</pre>
+<div class="block">Create new <a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> based on provided frame.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - frame used as a base for building new frame.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new builder instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Frame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/PingFrame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/PingFrame.html
new file mode 100644
index 00000000..a50ef620
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/PingFrame.html
@@ -0,0 +1,394 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PingFrame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PingFrame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PingFrame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.frame</a></div>
+<h2 title="Class PingFrame" class="title">Class PingFrame</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame.Frame</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame.TyrusFrame</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.frame.PingFrame</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">PingFrame</span>
+extends <a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></pre>
+<div class="block">Ping frame representation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.frame.TyrusFrame">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></h3>
+<code><a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.frame.Frame">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></h3>
+<code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(byte%5B%5D)">PingFrame</a></span>&#8203;(byte[]&nbsp;payload)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">PingFrame</a></span>&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">
+<div class="block">Execution part of frame processing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.frame.TyrusFrame">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></h3>
+<code><a href="TyrusFrame.html#getFrameType()">getFrameType</a>, <a href="TyrusFrame.html#wrap(org.glassfish.tyrus.core.frame.Frame,byte,java.nio.ByteBuffer)">wrap</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.frame.Frame">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></h3>
+<code><a href="Frame.html#builder()">builder</a>, <a href="Frame.html#builder(org.glassfish.tyrus.core.frame.Frame)">builder</a>, <a href="Frame.html#getMaskingKey()">getMaskingKey</a>, <a href="Frame.html#getOpcode()">getOpcode</a>, <a href="Frame.html#getPayloadData()">getPayloadData</a>, <a href="Frame.html#getPayloadLength()">getPayloadLength</a>, <a href="Frame.html#isControlFrame()">isControlFrame</a>, <a href="Frame.html#isFin()">isFin</a>, <a href="Frame.html#isMask()">isMask</a>, <a href="Frame.html#isRsv1()">isRsv1</a>, <a href="Frame.html#isRsv2()">isRsv2</a>, <a href="Frame.html#isRsv3()">isRsv3</a>, <a href="Frame.html#toString()">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.frame.Frame)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PingFrame</h4>
+<pre>public&nbsp;PingFrame&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - original (ping) frame.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(byte[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PingFrame</h4>
+<pre>public&nbsp;PingFrame&#8203;(byte[]&nbsp;payload)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>payload</code> - ping frame payload.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="respond(org.glassfish.tyrus.core.TyrusWebSocket)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>respond</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;respond&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="TyrusFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">TyrusFrame</a></code></span></div>
+<div class="block">Execution part of frame processing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="TyrusFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></code>&nbsp;in class&nbsp;<code><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - socket on which the appropriate action will be performed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PingFrame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/PongFrame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/PongFrame.html
new file mode 100644
index 00000000..9ba0f75f
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/PongFrame.html
@@ -0,0 +1,394 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PongFrame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PongFrame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PongFrame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.frame</a></div>
+<h2 title="Class PongFrame" class="title">Class PongFrame</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame.Frame</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame.TyrusFrame</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.frame.PongFrame</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">PongFrame</span>
+extends <a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></pre>
+<div class="block">Pong frame representation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.frame.TyrusFrame">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></h3>
+<code><a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.frame.Frame">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></h3>
+<code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(byte%5B%5D)">PongFrame</a></span>&#8203;(byte[]&nbsp;payload)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">PongFrame</a></span>&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">
+<div class="block">Execution part of frame processing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.frame.TyrusFrame">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></h3>
+<code><a href="TyrusFrame.html#getFrameType()">getFrameType</a>, <a href="TyrusFrame.html#wrap(org.glassfish.tyrus.core.frame.Frame,byte,java.nio.ByteBuffer)">wrap</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.frame.Frame">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></h3>
+<code><a href="Frame.html#builder()">builder</a>, <a href="Frame.html#builder(org.glassfish.tyrus.core.frame.Frame)">builder</a>, <a href="Frame.html#getMaskingKey()">getMaskingKey</a>, <a href="Frame.html#getOpcode()">getOpcode</a>, <a href="Frame.html#getPayloadData()">getPayloadData</a>, <a href="Frame.html#getPayloadLength()">getPayloadLength</a>, <a href="Frame.html#isControlFrame()">isControlFrame</a>, <a href="Frame.html#isFin()">isFin</a>, <a href="Frame.html#isMask()">isMask</a>, <a href="Frame.html#isRsv1()">isRsv1</a>, <a href="Frame.html#isRsv2()">isRsv2</a>, <a href="Frame.html#isRsv3()">isRsv3</a>, <a href="Frame.html#toString()">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.frame.Frame)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PongFrame</h4>
+<pre>public&nbsp;PongFrame&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - original (pong) frame.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(byte[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PongFrame</h4>
+<pre>public&nbsp;PongFrame&#8203;(byte[]&nbsp;payload)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>payload</code> - pong frame payload.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="respond(org.glassfish.tyrus.core.TyrusWebSocket)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>respond</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;respond&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="TyrusFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">TyrusFrame</a></code></span></div>
+<div class="block">Execution part of frame processing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="TyrusFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></code>&nbsp;in class&nbsp;<code><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - socket on which the appropriate action will be performed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PongFrame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/TextFrame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/TextFrame.html
new file mode 100644
index 00000000..55b49cfa
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/TextFrame.html
@@ -0,0 +1,496 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TextFrame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TextFrame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TextFrame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.frame</a></div>
+<h2 title="Class TextFrame" class="title">Class TextFrame</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame.Frame</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame.TyrusFrame</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.frame.TextFrame</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">TextFrame</span>
+extends <a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></pre>
+<div class="block">Text frame representation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.frame.TyrusFrame">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></h3>
+<code><a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.frame.Frame">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></h3>
+<code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,boolean,boolean)">TextFrame</a></span>&#8203;(java.lang.String&nbsp;message,
+         boolean&nbsp;continuation,
+         boolean&nbsp;fin)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,java.nio.ByteBuffer)">TextFrame</a></span>&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+         java.nio.ByteBuffer&nbsp;remainder)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,java.nio.ByteBuffer,boolean)">TextFrame</a></span>&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+         java.nio.ByteBuffer&nbsp;remainder,
+         boolean&nbsp;continuation)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.nio.ByteBuffer</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemainder()">getRemainder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Remainder after UTF-8 decoding.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTextPayload()">getTextPayload</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get text payload.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">
+<div class="block">Execution part of frame processing.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.frame.TyrusFrame">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></h3>
+<code><a href="TyrusFrame.html#getFrameType()">getFrameType</a>, <a href="TyrusFrame.html#wrap(org.glassfish.tyrus.core.frame.Frame,byte,java.nio.ByteBuffer)">wrap</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.frame.Frame">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></h3>
+<code><a href="Frame.html#builder()">builder</a>, <a href="Frame.html#builder(org.glassfish.tyrus.core.frame.Frame)">builder</a>, <a href="Frame.html#getMaskingKey()">getMaskingKey</a>, <a href="Frame.html#getOpcode()">getOpcode</a>, <a href="Frame.html#getPayloadData()">getPayloadData</a>, <a href="Frame.html#getPayloadLength()">getPayloadLength</a>, <a href="Frame.html#isControlFrame()">isControlFrame</a>, <a href="Frame.html#isFin()">isFin</a>, <a href="Frame.html#isMask()">isMask</a>, <a href="Frame.html#isRsv1()">isRsv1</a>, <a href="Frame.html#isRsv2()">isRsv2</a>, <a href="Frame.html#isRsv3()">isRsv3</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.frame.Frame,java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TextFrame</h4>
+<pre>public&nbsp;TextFrame&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+                 java.nio.ByteBuffer&nbsp;remainder)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - original (text) frame.</dd>
+<dd><code>remainder</code> - UTF-8 decoding remainder from previously processed frame.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.frame.Frame,java.nio.ByteBuffer,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TextFrame</h4>
+<pre>public&nbsp;TextFrame&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+                 java.nio.ByteBuffer&nbsp;remainder,
+                 boolean&nbsp;continuation)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - original (text) frame.</dd>
+<dd><code>remainder</code> - UTF-8 decoding remainder from previously processed frame.</dd>
+<dd><code>continuation</code> - <code>true</code> when this frame is continuation frame, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TextFrame</h4>
+<pre>public&nbsp;TextFrame&#8203;(java.lang.String&nbsp;message,
+                 boolean&nbsp;continuation,
+                 boolean&nbsp;fin)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - text message (will be encoded using strict UTF-8 encoding).</dd>
+<dd><code>continuation</code> - <code>true</code> when this frame is continuation frame, <code>false</code> otherwise.</dd>
+<dd><code>fin</code> - <code>true</code> when this frame is last in current partial message batch. Standard
+                     (non-continuous) frames have this bit set to <code>true</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getTextPayload()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTextPayload</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getTextPayload()</pre>
+<div class="block">Get text payload.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>text payload.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRemainder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemainder</h4>
+<pre class="methodSignature">public&nbsp;java.nio.ByteBuffer&nbsp;getRemainder()</pre>
+<div class="block">Remainder after UTF-8 decoding.
+ <p>
+ This might be removed in the future, if encoding part will be separated from text frame impl.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>UTF-8 decoding remainder. Used internally to decoding next incoming frame.</dd>
+</dl>
+</li>
+</ul>
+<a id="respond(org.glassfish.tyrus.core.TyrusWebSocket)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>respond</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;respond&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="TyrusFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">TyrusFrame</a></code></span></div>
+<div class="block">Execution part of frame processing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="TyrusFrame.html#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></code>&nbsp;in class&nbsp;<code><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - socket on which the appropriate action will be performed.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="Frame.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TextFrame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html
new file mode 100644
index 00000000..cb546d0b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html
@@ -0,0 +1,499 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusFrame.FrameType (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusFrame.FrameType (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusFrame.FrameType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.frame</a></div>
+<h2 title="Enum TyrusFrame.FrameType" class="title">Enum TyrusFrame.FrameType</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.frame.TyrusFrame.FrameType</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">TyrusFrame.FrameType</span>
+extends java.lang.Enum&lt;<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&gt;</pre>
+<div class="block">An Enumeration of frame types.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#BINARY">BINARY</a></span></code></th>
+<td class="colLast">
+<div class="block">Binary frame.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#BINARY_CONTINUATION">BINARY_CONTINUATION</a></span></code></th>
+<td class="colLast">
+<div class="block">Continuation binary frame.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CLOSE">CLOSE</a></span></code></th>
+<td class="colLast">
+<div class="block">Close frame.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PING">PING</a></span></code></th>
+<td class="colLast">
+<div class="block">Ping frame.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PONG">PONG</a></span></code></th>
+<td class="colLast">
+<div class="block">Pong frame.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TEXT">TEXT</a></span></code></th>
+<td class="colLast">
+<div class="block">Text frame.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TEXT_CONTINUATION">TEXT_CONTINUATION</a></span></code></th>
+<td class="colLast">
+<div class="block">Continuation text frame.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="TEXT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT</h4>
+<pre>public static final&nbsp;<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a> TEXT</pre>
+<div class="block">Text frame.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="TextFrame.html" title="class in org.glassfish.tyrus.core.frame"><code>TextFrame</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="TEXT_CONTINUATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_CONTINUATION</h4>
+<pre>public static final&nbsp;<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a> TEXT_CONTINUATION</pre>
+<div class="block">Continuation text frame.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="TextFrame.html" title="class in org.glassfish.tyrus.core.frame"><code>TextFrame</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="BINARY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BINARY</h4>
+<pre>public static final&nbsp;<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a> BINARY</pre>
+<div class="block">Binary frame.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame"><code>BinaryFrame</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="BINARY_CONTINUATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BINARY_CONTINUATION</h4>
+<pre>public static final&nbsp;<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a> BINARY_CONTINUATION</pre>
+<div class="block">Continuation binary frame.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame"><code>BinaryFrame</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="PING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PING</h4>
+<pre>public static final&nbsp;<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a> PING</pre>
+<div class="block">Ping frame.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PingFrame.html" title="class in org.glassfish.tyrus.core.frame"><code>PingFrame</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="PONG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PONG</h4>
+<pre>public static final&nbsp;<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a> PONG</pre>
+<div class="block">Pong frame.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PongFrame.html" title="class in org.glassfish.tyrus.core.frame"><code>PongFrame</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="CLOSE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLOSE</h4>
+<pre>public static final&nbsp;<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a> CLOSE</pre>
+<div class="block">Close frame.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="CloseFrame.html" title="class in org.glassfish.tyrus.core.frame"><code>CloseFrame</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (TyrusFrame.FrameType c : TyrusFrame.FrameType.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusFrame.FrameType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/TyrusFrame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/TyrusFrame.html
new file mode 100644
index 00000000..5120a941
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/TyrusFrame.html
@@ -0,0 +1,434 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusFrame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusFrame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":6,"i2":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusFrame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.frame</a></div>
+<h2 title="Class TyrusFrame" class="title">Class TyrusFrame</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame.Frame</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.frame.TyrusFrame</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a></code>, <code><a href="CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a></code>, <code><a href="PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a></code>, <code><a href="PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a></code>, <code><a href="TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">TyrusFrame</span>
+extends <a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></pre>
+<div class="block">Frame representation used in Tyrus runtime.
+ <p>
+ Enriched <a href="Frame.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame</code></a> representation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></span></code></th>
+<td class="colLast">
+<div class="block">An Enumeration of frame types.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.frame.Frame">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></h3>
+<code><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,org.glassfish.tyrus.core.frame.TyrusFrame.FrameType)">TyrusFrame</a></span>&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+          <a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&nbsp;frameType)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFrameType()">getFrameType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the type of the frame.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#respond(org.glassfish.tyrus.core.TyrusWebSocket)">respond</a></span>&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">
+<div class="block">Execution part of frame processing.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#wrap(org.glassfish.tyrus.core.frame.Frame,byte,java.nio.ByteBuffer)">wrap</a></span>&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+    byte&nbsp;inFragmentedType,
+    java.nio.ByteBuffer&nbsp;remainder)</code></th>
+<td class="colLast">
+<div class="block"><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame"><code>TyrusFrame</code></a> factory method.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.frame.Frame">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.frame.<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></h3>
+<code><a href="Frame.html#builder()">builder</a>, <a href="Frame.html#builder(org.glassfish.tyrus.core.frame.Frame)">builder</a>, <a href="Frame.html#getMaskingKey()">getMaskingKey</a>, <a href="Frame.html#getOpcode()">getOpcode</a>, <a href="Frame.html#getPayloadData()">getPayloadData</a>, <a href="Frame.html#getPayloadLength()">getPayloadLength</a>, <a href="Frame.html#isControlFrame()">isControlFrame</a>, <a href="Frame.html#isFin()">isFin</a>, <a href="Frame.html#isMask()">isMask</a>, <a href="Frame.html#isRsv1()">isRsv1</a>, <a href="Frame.html#isRsv2()">isRsv2</a>, <a href="Frame.html#isRsv3()">isRsv3</a>, <a href="Frame.html#toString()">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.frame.Frame,org.glassfish.tyrus.core.frame.TyrusFrame.FrameType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TyrusFrame</h4>
+<pre>protected&nbsp;TyrusFrame&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+                     <a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&nbsp;frameType)</pre>
+<div class="block">Constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - enriched frame.</dd>
+<dd><code>frameType</code> - type of the frame.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="respond(org.glassfish.tyrus.core.TyrusWebSocket)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>respond</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;respond&#8203;(<a href="../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</pre>
+<div class="block">Execution part of frame processing.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - socket on which the appropriate action will be performed.</dd>
+</dl>
+</li>
+</ul>
+<a id="getFrameType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFrameType</h4>
+<pre class="methodSignature">public&nbsp;<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&nbsp;getFrameType()</pre>
+<div class="block">Returns the type of the frame. It is used for distinguishing frame types in monitoring.
+ <p>
+ TODO: consider moving this to "MonitoredFrame" or something like this;</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>type of the frame.</dd>
+</dl>
+</li>
+</ul>
+<a id="wrap(org.glassfish.tyrus.core.frame.Frame,byte,java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>wrap</h4>
+<pre class="methodSignature">public static&nbsp;<a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a>&nbsp;wrap&#8203;(<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+                              byte&nbsp;inFragmentedType,
+                              java.nio.ByteBuffer&nbsp;remainder)</pre>
+<div class="block"><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame"><code>TyrusFrame</code></a> factory method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frame</code> - original plain frame.</dd>
+<dd><code>inFragmentedType</code> - type of fragment (text or binary).</dd>
+<dd><code>remainder</code> - decoding remainder. Used only for partial text frames.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new TyrusFrame.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusFrame.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/BinaryFrame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/BinaryFrame.html
new file mode 100644
index 00000000..169df1aa
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/BinaryFrame.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.BinaryFrame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.BinaryFrame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.frame.BinaryFrame" class="title">Uses of Class<br>org.glassfish.tyrus.core.frame.BinaryFrame</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a> in <a href="../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#onFragment(org.glassfish.tyrus.core.frame.BinaryFrame,boolean)">onFragment</a></span>&#8203;(<a href="../BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a>&nbsp;frame,
+          boolean&nbsp;last)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when a fragmented binary message has
+ been received.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#onMessage(org.glassfish.tyrus.core.frame.BinaryFrame)">onMessage</a></span>&#8203;(<a href="../BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when a binary message has been received.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/CloseFrame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/CloseFrame.html
new file mode 100644
index 00000000..927f89bd
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/CloseFrame.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.CloseFrame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.CloseFrame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.frame.CloseFrame" class="title">Uses of Class<br>org.glassfish.tyrus.core.frame.CloseFrame</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a> in <a href="../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#onClose(org.glassfish.tyrus.core.frame.CloseFrame)">onClose</a></span>&#8203;(<a href="../CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when the remote endpoint sent a closing frame.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/Frame.Builder.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/Frame.Builder.html
new file mode 100644
index 00000000..37e7845a
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/Frame.Builder.html
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.Frame.Builder (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.Frame.Builder (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.frame.Frame.Builder" class="title">Uses of Class<br>org.glassfish.tyrus.core.frame.Frame.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.frame">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.frame</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.frame</a> that return <a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Frame.</span><code><span class="memberNameLink"><a href="../Frame.html#builder()">builder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Frame.</span><code><span class="memberNameLink"><a href="../Frame.html#builder(org.glassfish.tyrus.core.frame.Frame)">builder</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> based on provided frame.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Frame.Builder.</span><code><span class="memberNameLink"><a href="../Frame.Builder.html#fin(boolean)">fin</a></span>&#8203;(boolean&nbsp;fin)</code></th>
+<td class="colLast">
+<div class="block">Set FIN flag.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Frame.Builder.</span><code><span class="memberNameLink"><a href="../Frame.Builder.html#mask(boolean)">mask</a></span>&#8203;(boolean&nbsp;mask)</code></th>
+<td class="colLast">
+<div class="block">Currently not used.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Frame.Builder.</span><code><span class="memberNameLink"><a href="../Frame.Builder.html#maskingKey(java.lang.Integer)">maskingKey</a></span>&#8203;(java.lang.Integer&nbsp;maskingKey)</code></th>
+<td class="colLast">
+<div class="block">Set masking key.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Frame.Builder.</span><code><span class="memberNameLink"><a href="../Frame.Builder.html#opcode(byte)">opcode</a></span>&#8203;(byte&nbsp;opcode)</code></th>
+<td class="colLast">
+<div class="block">Set opcode.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Frame.Builder.</span><code><span class="memberNameLink"><a href="../Frame.Builder.html#payloadData(byte%5B%5D)">payloadData</a></span>&#8203;(byte[]&nbsp;payloadData)</code></th>
+<td class="colLast">
+<div class="block">Set payload data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Frame.Builder.</span><code><span class="memberNameLink"><a href="../Frame.Builder.html#payloadLength(long)">payloadLength</a></span>&#8203;(long&nbsp;payloadLength)</code></th>
+<td class="colLast">
+<div class="block">Set payload length.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Frame.Builder.</span><code><span class="memberNameLink"><a href="../Frame.Builder.html#rsv1(boolean)">rsv1</a></span>&#8203;(boolean&nbsp;rsv1)</code></th>
+<td class="colLast">
+<div class="block">Set RSV1 flag.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Frame.Builder.</span><code><span class="memberNameLink"><a href="../Frame.Builder.html#rsv2(boolean)">rsv2</a></span>&#8203;(boolean&nbsp;rsv2)</code></th>
+<td class="colLast">
+<div class="block">Set RSV2 flag.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Frame.Builder.</span><code><span class="memberNameLink"><a href="../Frame.Builder.html#rsv3(boolean)">rsv3</a></span>&#8203;(boolean&nbsp;rsv3)</code></th>
+<td class="colLast">
+<div class="block">Set RSV3 flag.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/Frame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/Frame.html
new file mode 100644
index 00000000..cf932ee3
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/Frame.html
@@ -0,0 +1,652 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.Frame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.Frame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.frame.Frame" class="title">Uses of Class<br>org.glassfish.tyrus.core.frame.Frame</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.extension">org.glassfish.tyrus.core.extension</a></th>
+<td class="colLast">
+<div class="block">WebSocket Extension support.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a> in <a href="../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#unframe(java.nio.ByteBuffer)">unframe</a></span>&#8203;(java.nio.ByteBuffer&nbsp;buffer)</code></th>
+<td class="colLast">
+<div class="block">TODO!</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> that return types with arguments of type <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#close(int,java.lang.String)">close</a></span>&#8203;(int&nbsp;code,
+     java.lang.String&nbsp;reason)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#send(byte%5B%5D)">send</a></span>&#8203;(byte[]&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#send(byte%5B%5D,org.glassfish.tyrus.spi.WriterInfo)">send</a></span>&#8203;(byte[]&nbsp;data,
+    <a href="../../../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#send(java.lang.String)">send</a></span>&#8203;(java.lang.String&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#send(java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">send</a></span>&#8203;(java.lang.String&nbsp;data,
+    <a href="../../../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#sendBinary(byte%5B%5D)">sendBinary</a></span>&#8203;(byte[]&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#sendBinary(byte%5B%5D,boolean)">sendBinary</a></span>&#8203;(byte[]&nbsp;bytes,
+          boolean&nbsp;last)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#sendBinary(byte%5B%5D,boolean,org.glassfish.tyrus.spi.WriterInfo)">sendBinary</a></span>&#8203;(byte[]&nbsp;bytes,
+          boolean&nbsp;last,
+          <a href="../../../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Sends a fragment of a complete message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#sendBinary(byte%5B%5D,int,int,boolean)">sendBinary</a></span>&#8203;(byte[]&nbsp;bytes,
+          int&nbsp;off,
+          int&nbsp;len,
+          boolean&nbsp;last)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#sendBinary(byte%5B%5D,int,int,boolean,org.glassfish.tyrus.spi.WriterInfo)">sendBinary</a></span>&#8203;(byte[]&nbsp;bytes,
+          int&nbsp;off,
+          int&nbsp;len,
+          boolean&nbsp;last,
+          <a href="../../../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Sends a fragment of a complete message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#sendBinary(byte%5B%5D,org.glassfish.tyrus.spi.WriterInfo)">sendBinary</a></span>&#8203;(byte[]&nbsp;data,
+          <a href="../../../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Send a binary frame to the remote endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#sendPing(byte%5B%5D)">sendPing</a></span>&#8203;(byte[]&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Sends a <code>ping</code> frame with the specified payload (if any).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#sendPong(byte%5B%5D)">sendPong</a></span>&#8203;(byte[]&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Sends a <code>ping</code> frame with the specified payload (if any).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#sendRawFrame(java.nio.ByteBuffer)">sendRawFrame</a></span>&#8203;(java.nio.ByteBuffer&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Raw frame is always whole (not partial).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#sendRawFrame(java.nio.ByteBuffer)">sendRawFrame</a></span>&#8203;(java.nio.ByteBuffer&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Send a frame to the remote endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#sendText(java.lang.String)">sendText</a></span>&#8203;(java.lang.String&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#sendText(java.lang.String,boolean)">sendText</a></span>&#8203;(java.lang.String&nbsp;fragment,
+        boolean&nbsp;last)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#sendText(java.lang.String,boolean,org.glassfish.tyrus.spi.WriterInfo)">sendText</a></span>&#8203;(java.lang.String&nbsp;fragment,
+        boolean&nbsp;last,
+        <a href="../../../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Sends a fragment of a complete message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#sendText(java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">sendText</a></span>&#8203;(java.lang.String&nbsp;data,
+        <a href="../../../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Send a text frame to the remote endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#stream(boolean,byte%5B%5D,int,int)">stream</a></span>&#8203;(boolean&nbsp;last,
+      byte[]&nbsp;bytes,
+      int&nbsp;off,
+      int&nbsp;len)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#stream(boolean,byte%5B%5D,int,int,org.glassfish.tyrus.spi.WriterInfo)">stream</a></span>&#8203;(boolean&nbsp;last,
+      byte[]&nbsp;bytes,
+      int&nbsp;off,
+      int&nbsp;len,
+      <a href="../../../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#stream(boolean,java.lang.String)">stream</a></span>&#8203;(boolean&nbsp;last,
+      java.lang.String&nbsp;fragment)</code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#stream(boolean,java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">stream</a></span>&#8203;(boolean&nbsp;last,
+      java.lang.String&nbsp;fragment,
+      <a href="../../../spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#process(org.glassfish.tyrus.core.frame.Frame,org.glassfish.tyrus.core.TyrusWebSocket)">process</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+       <a href="../../TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a>&nbsp;socket)</code></th>
+<td class="colLast">
+<div class="block">TODO.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.extension">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a> in <a href="../../extension/package-summary.html">org.glassfish.tyrus.core.extension</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../extension/package-summary.html">org.glassfish.tyrus.core.extension</a> that return <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExtendedExtension.</span><code><span class="memberNameLink"><a href="../../extension/ExtendedExtension.html#processIncoming(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)">processIncoming</a></span>&#8203;(<a href="../../extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+               <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Process incoming frame.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExtendedExtension.</span><code><span class="memberNameLink"><a href="../../extension/ExtendedExtension.html#processOutgoing(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)">processOutgoing</a></span>&#8203;(<a href="../../extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+               <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Process outgoing frame.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../extension/package-summary.html">org.glassfish.tyrus.core.extension</a> with parameters of type <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExtendedExtension.</span><code><span class="memberNameLink"><a href="../../extension/ExtendedExtension.html#processIncoming(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)">processIncoming</a></span>&#8203;(<a href="../../extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+               <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Process incoming frame.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExtendedExtension.</span><code><span class="memberNameLink"><a href="../../extension/ExtendedExtension.html#processOutgoing(org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext,org.glassfish.tyrus.core.frame.Frame)">processOutgoing</a></span>&#8203;(<a href="../../extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;context,
+               <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Process outgoing frame.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.frame">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.frame</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a></span></code></th>
+<td class="colLast">
+<div class="block">Binary frame representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a></span></code></th>
+<td class="colLast">
+<div class="block">Close frame representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a></span></code></th>
+<td class="colLast">
+<div class="block">Ping frame representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a></span></code></th>
+<td class="colLast">
+<div class="block">Pong frame representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></span></code></th>
+<td class="colLast">
+<div class="block">Text frame representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></span></code></th>
+<td class="colLast">
+<div class="block">Frame representation used in Tyrus runtime.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.frame</a> that return <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Frame.Builder.</span><code><span class="memberNameLink"><a href="../Frame.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build new frame.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.frame</a> with parameters of type <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Frame.</span><code><span class="memberNameLink"><a href="../Frame.html#builder(org.glassfish.tyrus.core.frame.Frame)">builder</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><code>Frame.Builder</code></a> based on provided frame.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusFrame.</span><code><span class="memberNameLink"><a href="../TyrusFrame.html#wrap(org.glassfish.tyrus.core.frame.Frame,byte,java.nio.ByteBuffer)">wrap</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+    byte&nbsp;inFragmentedType,
+    java.nio.ByteBuffer&nbsp;remainder)</code></th>
+<td class="colLast">
+<div class="block"><a href="../TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame"><code>TyrusFrame</code></a> factory method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.core.frame</a> with parameters of type <a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../BinaryFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">BinaryFrame</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../BinaryFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,boolean)">BinaryFrame</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+           boolean&nbsp;continuation)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Frame.Builder.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">Builder</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../CloseFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">CloseFrame</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Frame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">Frame</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Copy constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PingFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">PingFrame</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PongFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame)">PongFrame</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TextFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,java.nio.ByteBuffer)">TextFrame</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+         java.nio.ByteBuffer&nbsp;remainder)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TextFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,java.nio.ByteBuffer,boolean)">TextFrame</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+         java.nio.ByteBuffer&nbsp;remainder,
+         boolean&nbsp;continuation)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TyrusFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,org.glassfish.tyrus.core.frame.TyrusFrame.FrameType)">TyrusFrame</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+          <a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&nbsp;frameType)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/PingFrame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/PingFrame.html
new file mode 100644
index 00000000..36455f96
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/PingFrame.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.PingFrame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.PingFrame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PingFrame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.frame.PingFrame" class="title">Uses of Class<br>org.glassfish.tyrus.core.frame.PingFrame</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a> in <a href="../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#onPing(org.glassfish.tyrus.core.frame.PingFrame)">onPing</a></span>&#8203;(<a href="../PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when the remote endpoint has sent a ping frame.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PingFrame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/PongFrame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/PongFrame.html
new file mode 100644
index 00000000..f4c2edb6
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/PongFrame.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.PongFrame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.PongFrame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PongFrame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.frame.PongFrame" class="title">Uses of Class<br>org.glassfish.tyrus.core.frame.PongFrame</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a> in <a href="../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#onPong(org.glassfish.tyrus.core.frame.PongFrame)">onPong</a></span>&#8203;(<a href="../PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when the remote endpoint has sent a pong
+ frame.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PongFrame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/TextFrame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/TextFrame.html
new file mode 100644
index 00000000..7a7cb150
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/TextFrame.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.TextFrame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.TextFrame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TextFrame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.frame.TextFrame" class="title">Uses of Class<br>org.glassfish.tyrus.core.frame.TextFrame</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a> in <a href="../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#onFragment(org.glassfish.tyrus.core.frame.TextFrame,boolean)">onFragment</a></span>&#8203;(<a href="../TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a>&nbsp;frame,
+          boolean&nbsp;last)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when a fragmented textual message has
+ been received.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocket.html#onMessage(org.glassfish.tyrus.core.frame.TextFrame)">onMessage</a></span>&#8203;(<a href="../TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a>&nbsp;frame)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when a text message has been received.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TextFrame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.FrameType.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.FrameType.html
new file mode 100644
index 00000000..e961b7c1
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.FrameType.html
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame.FrameType (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame.FrameType (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame.FrameType" class="title">Uses of Class<br>org.glassfish.tyrus.core.frame.TyrusFrame.FrameType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.monitoring">org.glassfish.tyrus.core.monitoring</a></th>
+<td class="colLast">
+<div class="block">Monitoring interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.frame">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.frame</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.frame</a> that return <a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusFrame.</span><code><span class="memberNameLink"><a href="../TyrusFrame.html#getFrameType()">getFrameType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the type of the frame.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusFrame.FrameType.</span><code><span class="memberNameLink"><a href="../TyrusFrame.FrameType.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusFrame.FrameType.</span><code><span class="memberNameLink"><a href="../TyrusFrame.FrameType.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.core.frame</a> with parameters of type <a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TyrusFrame.html#%3Cinit%3E(org.glassfish.tyrus.core.frame.Frame,org.glassfish.tyrus.core.frame.TyrusFrame.FrameType)">TyrusFrame</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+          <a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&nbsp;frameType)</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.monitoring">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a> in <a href="../../monitoring/package-summary.html">org.glassfish.tyrus.core.monitoring</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../monitoring/package-summary.html">org.glassfish.tyrus.core.monitoring</a> with parameters of type <a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageEventListener.</span><code><span class="memberNameLink"><a href="../../monitoring/MessageEventListener.html#onFrameReceived(org.glassfish.tyrus.core.frame.TyrusFrame.FrameType,long)">onFrameReceived</a></span>&#8203;(<a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&nbsp;frameType,
+               long&nbsp;payloadLength)</code></th>
+<td class="colLast">
+<div class="block">Called when a frame has been received.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageEventListener.</span><code><span class="memberNameLink"><a href="../../monitoring/MessageEventListener.html#onFrameSent(org.glassfish.tyrus.core.frame.TyrusFrame.FrameType,long)">onFrameSent</a></span>&#8203;(<a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&nbsp;frameType,
+           long&nbsp;payloadLength)</code></th>
+<td class="colLast">
+<div class="block">Called when a frame has been sent.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.html
new file mode 100644
index 00000000..9f2f87a9
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.html
@@ -0,0 +1,245 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame" class="title">Uses of Class<br>org.glassfish.tyrus.core.frame.TyrusFrame</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.frame">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.frame</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a></span></code></th>
+<td class="colLast">
+<div class="block">Binary frame representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a></span></code></th>
+<td class="colLast">
+<div class="block">Close frame representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a></span></code></th>
+<td class="colLast">
+<div class="block">Ping frame representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a></span></code></th>
+<td class="colLast">
+<div class="block">Pong frame representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></span></code></th>
+<td class="colLast">
+<div class="block">Text frame representation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.frame</a> that return <a href="../TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusFrame.</span><code><span class="memberNameLink"><a href="../TyrusFrame.html#wrap(org.glassfish.tyrus.core.frame.Frame,byte,java.nio.ByteBuffer)">wrap</a></span>&#8203;(<a href="../Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&nbsp;frame,
+    byte&nbsp;inFragmentedType,
+    java.nio.ByteBuffer&nbsp;remainder)</code></th>
+<td class="colLast">
+<div class="block"><a href="../TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame"><code>TyrusFrame</code></a> factory method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/package-summary.html
new file mode 100644
index 00000000..f9634b4b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/package-summary.html
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.frame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.frame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.core.frame</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">WebSocket frame representations.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame">BinaryFrame</a></th>
+<td class="colLast">
+<div class="block">Binary frame representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="CloseFrame.html" title="class in org.glassfish.tyrus.core.frame">CloseFrame</a></th>
+<td class="colLast">
+<div class="block">Close frame representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame">Frame.Builder</a></th>
+<td class="colLast">
+<div class="block">Frame builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PingFrame.html" title="class in org.glassfish.tyrus.core.frame">PingFrame</a></th>
+<td class="colLast">
+<div class="block">Ping frame representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PongFrame.html" title="class in org.glassfish.tyrus.core.frame">PongFrame</a></th>
+<td class="colLast">
+<div class="block">Pong frame representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TextFrame.html" title="class in org.glassfish.tyrus.core.frame">TextFrame</a></th>
+<td class="colLast">
+<div class="block">Text frame representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame">TyrusFrame</a></th>
+<td class="colLast">
+<div class="block">Frame representation used in Tyrus runtime.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></th>
+<td class="colLast">
+<div class="block">An Enumeration of frame types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/package-tree.html
new file mode 100644
index 00000000..642e7bd2
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/package-tree.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.frame Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.frame Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.core.frame</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="Frame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">Frame</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">TyrusFrame</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">BinaryFrame</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="CloseFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">CloseFrame</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="PingFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">PingFrame</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="PongFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">PongFrame</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="TextFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">TextFrame</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">Frame.Builder</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame"><span class="typeNameLink">TyrusFrame.FrameType</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/frame/package-use.html b/apidocs/1.20/org/glassfish/tyrus/core/frame/package-use.html
new file mode 100644
index 00000000..44f58fc5
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/frame/package-use.html
@@ -0,0 +1,312 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.frame (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.frame (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.core.frame" class="title">Uses of Package<br>org.glassfish.tyrus.core.frame</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.core.frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.extension">org.glassfish.tyrus.core.extension</a></th>
+<td class="colLast">
+<div class="block">WebSocket Extension support.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.monitoring">org.glassfish.tyrus.core.monitoring</a></th>
+<td class="colLast">
+<div class="block">Monitoring interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.frame</a> used by <a href="../package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/BinaryFrame.html#org.glassfish.tyrus.core">BinaryFrame</a></th>
+<td class="colLast">
+<div class="block">Binary frame representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/CloseFrame.html#org.glassfish.tyrus.core">CloseFrame</a></th>
+<td class="colLast">
+<div class="block">Close frame representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Frame.html#org.glassfish.tyrus.core">Frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/PingFrame.html#org.glassfish.tyrus.core">PingFrame</a></th>
+<td class="colLast">
+<div class="block">Ping frame representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/PongFrame.html#org.glassfish.tyrus.core">PongFrame</a></th>
+<td class="colLast">
+<div class="block">Pong frame representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/TextFrame.html#org.glassfish.tyrus.core">TextFrame</a></th>
+<td class="colLast">
+<div class="block">Text frame representation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.extension">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.frame</a> used by <a href="../extension/package-summary.html">org.glassfish.tyrus.core.extension</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Frame.html#org.glassfish.tyrus.core.extension">Frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.frame">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.frame</a> used by <a href="package-summary.html">org.glassfish.tyrus.core.frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Frame.html#org.glassfish.tyrus.core.frame">Frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Frame.Builder.html#org.glassfish.tyrus.core.frame">Frame.Builder</a></th>
+<td class="colLast">
+<div class="block">Frame builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusFrame.html#org.glassfish.tyrus.core.frame">TyrusFrame</a></th>
+<td class="colLast">
+<div class="block">Frame representation used in Tyrus runtime.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusFrame.FrameType.html#org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a></th>
+<td class="colLast">
+<div class="block">An Enumeration of frame types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.monitoring">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.frame</a> used by <a href="../monitoring/package-summary.html">org.glassfish.tyrus.core.monitoring</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusFrame.FrameType.html#org.glassfish.tyrus.core.monitoring">TyrusFrame.FrameType</a></th>
+<td class="colLast">
+<div class="block">An Enumeration of frame types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/l10n/Localizable.html b/apidocs/1.20/org/glassfish/tyrus/core/l10n/Localizable.html
new file mode 100644
index 00000000..cafa9283
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/l10n/Localizable.html
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Localizable (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Localizable (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Localizable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.l10n</a></div>
+<h2 title="Interface Localizable" class="title">Interface Localizable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessage</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">Localizable</span></pre>
+<div class="block">Localizable message.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>WS Development Team</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#NOT_LOCALIZABLE">NOT_LOCALIZABLE</a></span></code></th>
+<td class="colLast">
+<div class="block">Special constant that represents a message that is not localizable.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.Object[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getArguments()">getArguments</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the arguments for message formatting.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getKey()">getKey</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Gets the key in the resource bundle.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResourceBundleName()">getResourceBundleName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the name of the localization messages resource bundle.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="NOT_LOCALIZABLE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NOT_LOCALIZABLE</h4>
+<pre>static final&nbsp;java.lang.String NOT_LOCALIZABLE</pre>
+<div class="block">Special constant that represents a message that is not localizable.
+ <p>
+ Use of "new" is to create an unique instance.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.glassfish.tyrus.core.l10n.Localizable.NOT_LOCALIZABLE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getKey()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getKey</h4>
+<pre class="methodSignature">java.lang.String&nbsp;getKey()</pre>
+<div class="block">Gets the key in the resource bundle.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>if this method returns <a href="#NOT_LOCALIZABLE"><code>NOT_LOCALIZABLE</code></a>, that means the message is not localizable, and the first
+ item of <a href="#getArguments()"><code>getArguments()</code></a> array holds a <code>String</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getArguments()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getArguments</h4>
+<pre class="methodSignature">java.lang.Object[]&nbsp;getArguments()</pre>
+<div class="block">Returns the arguments for message formatting.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>can be an array of length 0 but never be <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getResourceBundleName()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getResourceBundleName</h4>
+<pre class="methodSignature">java.lang.String&nbsp;getResourceBundleName()</pre>
+<div class="block">Get the name of the localization messages resource bundle.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the localization messages resource bundle name.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Localizable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/l10n/LocalizableMessage.html b/apidocs/1.20/org/glassfish/tyrus/core/l10n/LocalizableMessage.html
new file mode 100644
index 00000000..5c3926fc
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/l10n/LocalizableMessage.html
@@ -0,0 +1,397 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>LocalizableMessage (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LocalizableMessage (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalizableMessage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.l10n</a></div>
+<h2 title="Class LocalizableMessage" class="title">Class LocalizableMessage</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.l10n.LocalizableMessage</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></dd>
+</dl>
+<hr>
+<pre>public final class <span class="typeNameLabel">LocalizableMessage</span>
+extends java.lang.Object
+implements <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></pre>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>WS Development Team</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.core.l10n.Localizable">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.glassfish.tyrus.core.l10n.<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></h3>
+<code><a href="Localizable.html#NOT_LOCALIZABLE">NOT_LOCALIZABLE</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.Object...)">LocalizableMessage</a></span>&#8203;(java.lang.String&nbsp;bundlename,
+                  java.lang.String&nbsp;key,
+                  java.lang.Object...&nbsp;args)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.Object[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getArguments()">getArguments</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the arguments for message formatting.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getKey()">getKey</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Gets the key in the resource bundle.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResourceBundleName()">getResourceBundleName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the name of the localization messages resource bundle.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LocalizableMessage</h4>
+<pre>public&nbsp;LocalizableMessage&#8203;(java.lang.String&nbsp;bundlename,
+                          java.lang.String&nbsp;key,
+                          java.lang.Object...&nbsp;args)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getKey()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getKey</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getKey()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Localizable.html#getKey()">Localizable</a></code></span></div>
+<div class="block">Gets the key in the resource bundle.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="Localizable.html#getKey()">getKey</a></code>&nbsp;in interface&nbsp;<code><a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>if this method returns <a href="Localizable.html#NOT_LOCALIZABLE"><code>Localizable.NOT_LOCALIZABLE</code></a>, that means the message is not localizable, and the first
+ item of <a href="Localizable.html#getArguments()"><code>Localizable.getArguments()</code></a> array holds a <code>String</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getArguments()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getArguments</h4>
+<pre class="methodSignature">public&nbsp;java.lang.Object[]&nbsp;getArguments()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Localizable.html#getArguments()">Localizable</a></code></span></div>
+<div class="block">Returns the arguments for message formatting.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="Localizable.html#getArguments()">getArguments</a></code>&nbsp;in interface&nbsp;<code><a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>can be an array of length 0 but never be <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getResourceBundleName()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getResourceBundleName</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getResourceBundleName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Localizable.html#getResourceBundleName()">Localizable</a></code></span></div>
+<div class="block">Get the name of the localization messages resource bundle.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="Localizable.html#getResourceBundleName()">getResourceBundleName</a></code>&nbsp;in interface&nbsp;<code><a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the localization messages resource bundle name.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalizableMessage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html b/apidocs/1.20/org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html
new file mode 100644
index 00000000..0c27e06f
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>LocalizableMessageFactory (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LocalizableMessageFactory (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalizableMessageFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.l10n</a></div>
+<h2 title="Class LocalizableMessageFactory" class="title">Class LocalizableMessageFactory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.l10n.LocalizableMessageFactory</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">LocalizableMessageFactory</span>
+extends java.lang.Object</pre>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>WS Development Team</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">LocalizableMessageFactory</a></span>&#8203;(java.lang.String&nbsp;bundlename)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMessage(java.lang.String,java.lang.Object...)">getMessage</a></span>&#8203;(java.lang.String&nbsp;key,
+          java.lang.Object...&nbsp;args)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LocalizableMessageFactory</h4>
+<pre>public&nbsp;LocalizableMessageFactory&#8203;(java.lang.String&nbsp;bundlename)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getMessage(java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMessage</h4>
+<pre class="methodSignature">public&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;getMessage&#8203;(java.lang.String&nbsp;key,
+                              java.lang.Object...&nbsp;args)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalizableMessageFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/l10n/LocalizationMessages.html b/apidocs/1.20/org/glassfish/tyrus/core/l10n/LocalizationMessages.html
new file mode 100644
index 00000000..d416ecf8
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/l10n/LocalizationMessages.html
@@ -0,0 +1,3334 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>LocalizationMessages (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LocalizationMessages (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9,"i61":9,"i62":9,"i63":9,"i64":9,"i65":9,"i66":9,"i67":9,"i68":9,"i69":9,"i70":9,"i71":9,"i72":9,"i73":9,"i74":9,"i75":9,"i76":9,"i77":9,"i78":9,"i79":9,"i80":9,"i81":9,"i82":9,"i83":9,"i84":9,"i85":9,"i86":9,"i87":9,"i88":9,"i89":9,"i90":9,"i91":9,"i92":9,"i93":9,"i94":9,"i95":9,"i96":9,"i97":9,"i98":9,"i99":9,"i100":9,"i101":9,"i102":9,"i103":9,"i104":9,"i105":9,"i106":9,"i107":9,"i108":9,"i109":9,"i110":9,"i111":9,"i112":9,"i113":9,"i114":9,"i115":9,"i116":9,"i117":9,"i118":9,"i119":9,"i120":9,"i121":9,"i122":9,"i123":9,"i124":9,"i125":9,"i126":9,"i127":9,"i128":9,"i129":9,"i130":9,"i131":9,"i132":9,"i133":9,"i134":9,"i135":9,"i136":9,"i137":9,"i138":9,"i139":9,"i140":9,"i141":9,"i142":9,"i143":9,"i144":9,"i145":9,"i146":9,"i147":9,"i148":9,"i149":9,"i150":9,"i151":9,"i152":9,"i153":9,"i154":9,"i155":9,"i156":9,"i157":9,"i158":9,"i159":9,"i160":9,"i161":9,"i162":9,"i163":9,"i164":9,"i165":9,"i166":9,"i167":9,"i168":9,"i169":9,"i170":9,"i171":9,"i172":9,"i173":9,"i174":9,"i175":9,"i176":9,"i177":9,"i178":9,"i179":9,"i180":9,"i181":9,"i182":9,"i183":9,"i184":9,"i185":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalizationMessages.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.l10n</a></div>
+<h2 title="Class LocalizationMessages" class="title">Class LocalizationMessages</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.l10n.LocalizationMessages</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">LocalizationMessages</span>
+extends java.lang.Object</pre>
+<div class="block">Defines string formatting method for each constant in the resource file</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">LocalizationMessages</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_DATA_TOO_LONG(java.lang.Object)">APPLICATION_DATA_TOO_LONG</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">{0} applicationData exceeded the maximum allowed payload of 125 bytes.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ARGUMENT_NOT_NULL(java.lang.Object)">ARGUMENT_NOT_NULL</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Argument ''{0}'' cannot be null.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AUTHENTICATION_CREATE_AUTH_HEADER_FAILED()">AUTHENTICATION_CREATE_AUTH_HEADER_FAILED</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Could not add authorization header in http request.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AUTHENTICATION_CREDENTIALS_MISSING()">AUTHENTICATION_CREDENTIALS_MISSING</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Credentials are missing.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AUTHENTICATION_DIGEST_NO_SUCH_ALG()">AUTHENTICATION_DIGEST_NO_SUCH_ALG</a></span>()</code></th>
+<td class="colLast">
+<div class="block">No such algorithm to generate authorization digest http header.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AUTHENTICATION_DIGEST_QOP_UNSUPPORTED(java.lang.Object)">AUTHENTICATION_DIGEST_QOP_UNSUPPORTED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">The 'qop' (quality of protection) = {0} extension requested by the server is not supported by Tyrus.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AUTHENTICATION_FAILED()">AUTHENTICATION_FAILED</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Authentication failed.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#BINARY_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">BINARY_MESSAGE_HANDLER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Binary message handler not found.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#BINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">BINARY_MESSAGE_OUT_OF_ORDER</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Binary message received out of order.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#BUFFER_OVERFLOW()">BUFFER_OVERFLOW</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Buffer overflow.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(java.lang.Object,java.lang.Object)">CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                       java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Class {0}.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CLASS_CHECKER_FORBIDDEN_RETURN_TYPE(java.lang.Object,java.lang.Object)">CLASS_CHECKER_FORBIDDEN_RETURN_TYPE</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                   java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Method: {0}.{1}: has got unsupported return type.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(java.lang.Object,java.lang.Object)">CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                              java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Method: {0}.{1}: @OnClose has got different params than Session or CloseReason.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                              java.lang.Object&nbsp;arg1,
+                                              java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">
+<div class="block">Method: {0}.{1}: {2} is not allowed as parameter type for method annotated with @OnError.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                             java.lang.Object&nbsp;arg1,
+                                             java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">
+<div class="block">Method: {0}.{1}: {2} has got multiple parameters of identical type.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CLASS_CHECKER_MANDATORY_PARAM_MISSING(java.lang.Object,java.lang.Object)">CLASS_CHECKER_MANDATORY_PARAM_MISSING</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                     java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Method: {0}.{1}: does not have mandatory Throwable param.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(java.lang.Object,java.lang.Object)">CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                       java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Method: {0}.{1}: has got multiple parameters of identical type.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CLASS_NOT_INSTANTIATED(java.lang.Object)">CLASS_NOT_INSTANTIATED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Class {0} couldn''t be instantiated.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CLIENT_CANNOT_CONNECT(java.lang.Object)">CLIENT_CANNOT_CONNECT</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Client cannot connect to "{0}".</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#COMPONENT_PROVIDER_NOT_FOUND(java.lang.Object)">COMPONENT_PROVIDER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Component provider for class {0} not found.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#COMPONENT_PROVIDER_THREW_EXCEPTION(java.lang.Object)">COMPONENT_PROVIDER_THREW_EXCEPTION</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Component provider threw exception when providing instance of class {0}.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONNECTION_HAS_BEEN_CLOSED()">CONNECTION_HAS_BEEN_CLOSED</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The connection has been closed.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONNECTION_NULL()">CONNECTION_NULL</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Connection is null.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTROL_FRAME_FRAGMENTED()">CONTROL_FRAME_FRAGMENTED</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Fragmented control frame.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTROL_FRAME_LENGTH()">CONTROL_FRAME_LENGTH</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Control frame payloads must be no greater than 125 bytes.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DATA_UNEXPECTED_LENGTH(java.lang.Object,java.lang.Object)">DATA_UNEXPECTED_LENGTH</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                      java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Data read ({0}) is not the expected size ({1}).</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR(java.lang.Object,java.lang.Object,java.lang.Object)">DEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                        java.lang.Object&nbsp;arg1,
+                                        java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">
+<div class="block">{0}.</div>
+</td>
+</tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object,java.lang.Object)">DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                     java.lang.Object&nbsp;arg1,
+                                     java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">
+<div class="block">A dependent class, {0}, of the class {1} implementing the provider {2} is not found.</div>
+</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ENCODING_FAILED()">ENCODING_FAILED</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Encoding failed.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ENDPOINT_ANNOTATION_NOT_FOUND(java.lang.Object,java.lang.Object)">ENDPOINT_ANNOTATION_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                             java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">{0} annotation not found on class {1}.</div>
+</td>
+</tr>
+<tr id="i30" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ENDPOINT_EXCEPTION_FROM_ON_ERROR(java.lang.Object)">ENDPOINT_EXCEPTION_FROM_ON_ERROR</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Exception thrown from onError method {0}.</div>
+</td>
+</tr>
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">ENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                  java.lang.Object&nbsp;arg1,
+                                  java.lang.Object&nbsp;arg2,
+                                  java.lang.Object&nbsp;arg3)</code></th>
+<td class="colLast">
+<div class="block">MaxMessageSize {0} on method {1} in endpoint {2} is larger than the container incoming buffer size {3}.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ENDPOINT_MULTIPLE_METHODS(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">ENDPOINT_MULTIPLE_METHODS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                         java.lang.Object&nbsp;arg1,
+                         java.lang.Object&nbsp;arg2,
+                         java.lang.Object&nbsp;arg3)</code></th>
+<td class="colLast">
+<div class="block">Multiple methods using {0} annotation in class {1}: {2} and {3}.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ENDPOINT_MULTIPLE_SESSION_PARAM(java.lang.Object)">ENDPOINT_MULTIPLE_SESSION_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Method {0} has got two or more Session parameters.</div>
+</td>
+</tr>
+<tr id="i34" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ENDPOINT_UNHANDLED_EXCEPTION(java.lang.Object)">ENDPOINT_UNHANDLED_EXCEPTION</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Unhandled exception in endpoint {0}.</div>
+</td>
+</tr>
+<tr id="i35" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ENDPOINT_UNKNOWN_PARAMS(java.lang.Object,java.lang.Object,java.lang.Object)">ENDPOINT_UNKNOWN_PARAMS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                       java.lang.Object&nbsp;arg1,
+                       java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">
+<div class="block">Unknown parameter(s) for {0}.{1} method annotated with @OnError annotation: {2}.</div>
+</td>
+</tr>
+<tr id="i36" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ENDPOINT_WRONG_PARAMS(java.lang.Object,java.lang.Object)">ENDPOINT_WRONG_PARAMS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                     java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Method: {0}.{1}: has got wrong number of params.</div>
+</td>
+</tr>
+<tr id="i37" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ENDPOINT_WRONG_PATH_PARAM(java.lang.Object,java.lang.Object)">ENDPOINT_WRONG_PATH_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                         java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Method: {0}: {1} is not allowed type for @PathParameter.</div>
+</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EQUIVALENT_PATHS(java.lang.Object,java.lang.Object)">EQUIVALENT_PATHS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Found equivalent paths.</div>
+</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">ERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Error caught while loading SPI providers.</div>
+</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">EXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Exception caught while loading SPI providers.</div>
+</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EXTENSION_EXCEPTION(java.lang.Object,java.lang.Object)">EXTENSION_EXCEPTION</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                   java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Extension ''{0}'' threw an exception during processOutgoing method invocation: "{1}".</div>
+</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FRAGMENT_INVALID_OPCODE()">FRAGMENT_INVALID_OPCODE</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Fragment sent but opcode was not 0.</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FRAME_WRITE_CANCELLED()">FRAME_WRITE_CANCELLED</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Frame writing was canceled.</div>
+</td>
+</tr>
+<tr id="i44" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP()">HANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Infinite HTTP Redirection loop detected.</div>
+</td>
+</tr>
+<tr id="i45" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION(java.lang.Object)">HANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Redirect attempts exceeded maximum allowed limit of ({0}) redirects.</div>
+</td>
+</tr>
+<tr id="i46" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR(java.lang.Object)">HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Invalid URI in Location header: "{0}".</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING()">HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Missing or empty Location header in 3xx HTTP Redirect response.</div>
+</td>
+</tr>
+<tr id="i48" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(java.lang.Object)">HANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Received HTTP response status code: {0} and redirect processing is not enabled.</div>
+</td>
+</tr>
+<tr id="i49" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HANDSHAKE_HTTP_RETRY_AFTER_MESSAGE()">HANDSHAKE_HTTP_RETRY_AFTER_MESSAGE</a></span>()</code></th>
+<td class="colLast">
+<div class="block">HTTP Status code 503 - Service Unavailable.</div>
+</td>
+</tr>
+<tr id="i50" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HEADERS_MISSING()">HEADERS_MISSING</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Missing headers required for WebSocket negotiation.</div>
+</td>
+</tr>
+<tr id="i51" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ILLEGAL_CONFIG_SYNTAX()">ILLEGAL_CONFIG_SYNTAX</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Illegal configuration-file syntax.</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ILLEGAL_PROVIDER_CLASS_NAME(java.lang.Object)">ILLEGAL_PROVIDER_CLASS_NAME</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Illegal provider-class name: {0}.</div>
+</td>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ILLEGAL_UTF_8_SEQUENCE()">ILLEGAL_UTF_8_SEQUENCE</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Illegal UTF-8 Sequence.</div>
+</td>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#INVALID_HEADER(java.lang.Object,java.lang.Object)">INVALID_HEADER</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+              java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Invalid {0} header value: "{1}".</div>
+</td>
+</tr>
+<tr id="i55" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#INVALID_RESPONSE_CODE(java.lang.Object,java.lang.Object)">INVALID_RESPONSE_CODE</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                     java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Response code was not {0}: {1}.</div>
+</td>
+</tr>
+<tr id="i56" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#IOEXCEPTION_CLOSE()">IOEXCEPTION_CLOSE</a></span>()</code></th>
+<td class="colLast">
+<div class="block">IOException thrown when closing connection.</div>
+</td>
+</tr>
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableAPPLICATION_DATA_TOO_LONG(java.lang.Object)">localizableAPPLICATION_DATA_TOO_LONG</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i58" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableARGUMENT_NOT_NULL(java.lang.Object)">localizableARGUMENT_NOT_NULL</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i59" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableAUTHENTICATION_CREATE_AUTH_HEADER_FAILED()">localizableAUTHENTICATION_CREATE_AUTH_HEADER_FAILED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i60" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableAUTHENTICATION_CREDENTIALS_MISSING()">localizableAUTHENTICATION_CREDENTIALS_MISSING</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i61" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableAUTHENTICATION_DIGEST_NO_SUCH_ALG()">localizableAUTHENTICATION_DIGEST_NO_SUCH_ALG</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i62" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableAUTHENTICATION_DIGEST_QOP_UNSUPPORTED(java.lang.Object)">localizableAUTHENTICATION_DIGEST_QOP_UNSUPPORTED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i63" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableAUTHENTICATION_FAILED()">localizableAUTHENTICATION_FAILED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i64" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableBINARY_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">localizableBINARY_MESSAGE_HANDLER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i65" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableBINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">localizableBINARY_MESSAGE_OUT_OF_ORDER</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i66" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableBUFFER_OVERFLOW()">localizableBUFFER_OVERFLOW</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i67" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                  java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i68" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCLASS_CHECKER_FORBIDDEN_RETURN_TYPE(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_FORBIDDEN_RETURN_TYPE</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                              java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i69" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                         java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i70" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                         java.lang.Object&nbsp;arg1,
+                                                         java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i71" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                        java.lang.Object&nbsp;arg1,
+                                                        java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i72" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCLASS_CHECKER_MANDATORY_PARAM_MISSING(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_MANDATORY_PARAM_MISSING</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i73" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                  java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i74" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCLASS_NOT_INSTANTIATED(java.lang.Object)">localizableCLASS_NOT_INSTANTIATED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i75" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCLIENT_CANNOT_CONNECT(java.lang.Object)">localizableCLIENT_CANNOT_CONNECT</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i76" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCOMPONENT_PROVIDER_NOT_FOUND(java.lang.Object)">localizableCOMPONENT_PROVIDER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i77" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCOMPONENT_PROVIDER_THREW_EXCEPTION(java.lang.Object)">localizableCOMPONENT_PROVIDER_THREW_EXCEPTION</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i78" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCONNECTION_HAS_BEEN_CLOSED()">localizableCONNECTION_HAS_BEEN_CLOSED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i79" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCONNECTION_NULL()">localizableCONNECTION_NULL</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i80" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCONTROL_FRAME_FRAGMENTED()">localizableCONTROL_FRAME_FRAGMENTED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i81" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableCONTROL_FRAME_LENGTH()">localizableCONTROL_FRAME_LENGTH</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i82" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableDATA_UNEXPECTED_LENGTH(java.lang.Object,java.lang.Object)">localizableDATA_UNEXPECTED_LENGTH</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                 java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i83" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableDEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR(java.lang.Object,java.lang.Object,java.lang.Object)">localizableDEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                   java.lang.Object&nbsp;arg1,
+                                                   java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i84" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableDEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object,java.lang.Object)">localizableDEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                java.lang.Object&nbsp;arg1,
+                                                java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i85" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableENCODING_FAILED()">localizableENCODING_FAILED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i86" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableENDPOINT_ANNOTATION_NOT_FOUND(java.lang.Object,java.lang.Object)">localizableENDPOINT_ANNOTATION_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                        java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i87" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableENDPOINT_EXCEPTION_FROM_ON_ERROR(java.lang.Object)">localizableENDPOINT_EXCEPTION_FROM_ON_ERROR</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i88" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">localizableENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                             java.lang.Object&nbsp;arg1,
+                                             java.lang.Object&nbsp;arg2,
+                                             java.lang.Object&nbsp;arg3)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i89" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableENDPOINT_MULTIPLE_METHODS(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">localizableENDPOINT_MULTIPLE_METHODS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                    java.lang.Object&nbsp;arg1,
+                                    java.lang.Object&nbsp;arg2,
+                                    java.lang.Object&nbsp;arg3)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i90" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableENDPOINT_MULTIPLE_SESSION_PARAM(java.lang.Object)">localizableENDPOINT_MULTIPLE_SESSION_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i91" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableENDPOINT_UNHANDLED_EXCEPTION(java.lang.Object)">localizableENDPOINT_UNHANDLED_EXCEPTION</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i92" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableENDPOINT_UNKNOWN_PARAMS(java.lang.Object,java.lang.Object,java.lang.Object)">localizableENDPOINT_UNKNOWN_PARAMS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                  java.lang.Object&nbsp;arg1,
+                                  java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i93" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableENDPOINT_WRONG_PARAMS(java.lang.Object,java.lang.Object)">localizableENDPOINT_WRONG_PARAMS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i94" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableENDPOINT_WRONG_PATH_PARAM(java.lang.Object,java.lang.Object)">localizableENDPOINT_WRONG_PATH_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                    java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i95" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableEQUIVALENT_PATHS(java.lang.Object,java.lang.Object)">localizableEQUIVALENT_PATHS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                           java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i96" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">localizableERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i97" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableEXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">localizableEXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i98" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableEXTENSION_EXCEPTION(java.lang.Object,java.lang.Object)">localizableEXTENSION_EXCEPTION</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                              java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i99" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableFRAGMENT_INVALID_OPCODE()">localizableFRAGMENT_INVALID_OPCODE</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i100" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableFRAME_WRITE_CANCELLED()">localizableFRAME_WRITE_CANCELLED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i101" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableHANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP()">localizableHANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i102" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableHANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION(java.lang.Object)">localizableHANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i103" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR(java.lang.Object)">localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i104" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING()">localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i105" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableHANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(java.lang.Object)">localizableHANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i106" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableHANDSHAKE_HTTP_RETRY_AFTER_MESSAGE()">localizableHANDSHAKE_HTTP_RETRY_AFTER_MESSAGE</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i107" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableHEADERS_MISSING()">localizableHEADERS_MISSING</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i108" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableILLEGAL_CONFIG_SYNTAX()">localizableILLEGAL_CONFIG_SYNTAX</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i109" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableILLEGAL_PROVIDER_CLASS_NAME(java.lang.Object)">localizableILLEGAL_PROVIDER_CLASS_NAME</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i110" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableILLEGAL_UTF_8_SEQUENCE()">localizableILLEGAL_UTF_8_SEQUENCE</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i111" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableINVALID_HEADER(java.lang.Object,java.lang.Object)">localizableINVALID_HEADER</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                         java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i112" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableINVALID_RESPONSE_CODE(java.lang.Object,java.lang.Object)">localizableINVALID_RESPONSE_CODE</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i113" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableIOEXCEPTION_CLOSE()">localizableIOEXCEPTION_CLOSE</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i114" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableMAX_SESSIONS_PER_APP_EXCEEDED()">localizableMAX_SESSIONS_PER_APP_EXCEEDED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i115" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableMAX_SESSIONS_PER_ENDPOINT_EXCEEDED()">localizableMAX_SESSIONS_PER_ENDPOINT_EXCEEDED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i116" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableMAX_SESSIONS_PER_REMOTEADDR_EXCEEDED()">localizableMAX_SESSIONS_PER_REMOTEADDR_EXCEEDED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i117" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableMESSAGE_HANDLER_ALREADY_REGISTERED_BINARY()">localizableMESSAGE_HANDLER_ALREADY_REGISTERED_BINARY</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i118" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableMESSAGE_HANDLER_ALREADY_REGISTERED_PONG()">localizableMESSAGE_HANDLER_ALREADY_REGISTERED_PONG</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i119" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TEXT()">localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TEXT</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i120" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(java.lang.Object)">localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TYPE</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i121" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableMESSAGE_HANDLER_DECODER_NOT_REGISTERED(java.lang.Object)">localizableMESSAGE_HANDLER_DECODER_NOT_REGISTERED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i122" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableMESSAGE_HANDLER_ILLEGAL_ARGUMENT(java.lang.Object)">localizableMESSAGE_HANDLER_ILLEGAL_ARGUMENT</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i123" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableMESSAGE_HANDLER_PARTIAL_INVALID_TYPE(java.lang.Object)">localizableMESSAGE_HANDLER_PARTIAL_INVALID_TYPE</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i124" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableMESSAGE_HANDLER_WHOLE_OR_PARTIAL()">localizableMESSAGE_HANDLER_WHOLE_OR_PARTIAL</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i125" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableMESSAGE_TOO_LONG(java.lang.Object,java.lang.Object)">localizableMESSAGE_TOO_LONG</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                           java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i126" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableNO_DECODER_FOUND()">localizableNO_DECODER_FOUND</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i127" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableORIGIN_NOT_VERIFIED()">localizableORIGIN_NOT_VERIFIED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i128" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizablePARTIAL_BINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">localizablePARTIAL_BINARY_MESSAGE_OUT_OF_ORDER</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i129" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizablePARTIAL_MESSAGE_BUFFER_OVERFLOW()">localizablePARTIAL_MESSAGE_BUFFER_OVERFLOW</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i130" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizablePARTIAL_TEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">localizablePARTIAL_TEXT_MESSAGE_OUT_OF_ORDER</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i131" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizablePROVIDER_CLASS_COULD_NOT_BE_LOADED(java.lang.Object,java.lang.Object,java.lang.Object)">localizablePROVIDER_CLASS_COULD_NOT_BE_LOADED</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                             java.lang.Object&nbsp;arg1,
+                                             java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i132" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizablePROVIDER_COULD_NOT_BE_CREATED(java.lang.Object,java.lang.Object,java.lang.Object)">localizablePROVIDER_COULD_NOT_BE_CREATED</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                        java.lang.Object&nbsp;arg1,
+                                        java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i133" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizablePROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object)">localizablePROVIDER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                             java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i134" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableRSV_INCORRECTLY_SET()">localizableRSV_INCORRECTLY_SET</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i135" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableSEC_KEY_INVALID_LENGTH(java.lang.Object)">localizableSEC_KEY_INVALID_LENGTH</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i136" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableSEC_KEY_INVALID_SERVER()">localizableSEC_KEY_INVALID_SERVER</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i137" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableSEC_KEY_NULL_NOT_ALLOWED()">localizableSEC_KEY_NULL_NOT_ALLOWED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i138" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableSEND_MESSAGE_INFRAGMENT()">localizableSEND_MESSAGE_INFRAGMENT</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i139" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableSESSION_CLOSED_IDLE_TIMEOUT()">localizableSESSION_CLOSED_IDLE_TIMEOUT</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i140" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableSOCKET_NOT_CONNECTED()">localizableSOCKET_NOT_CONNECTED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i141" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableTEXT_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">localizableTEXT_MESSAGE_HANDLER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i142" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableTEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">localizableTEXT_MESSAGE_OUT_OF_ORDER</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i143" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableUNEXPECTED_END_FRAGMENT()">localizableUNEXPECTED_END_FRAGMENT</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i144" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableUNEXPECTED_ERROR_CONNECTION_CLOSE()">localizableUNEXPECTED_ERROR_CONNECTION_CLOSE</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i145" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableUNEXPECTED_STATE(java.lang.Object)">localizableUNEXPECTED_STATE</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i146" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableUNHANDLED_TEXT_MESSAGE(java.lang.Object)">localizableUNHANDLED_TEXT_MESSAGE</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i147" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableURI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(java.lang.Object,java.lang.Object)">localizableURI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                    java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i148" class="altColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableURI_COMPONENT_ENCODED_OCTET_MALFORMED(java.lang.Object)">localizableURI_COMPONENT_ENCODED_OCTET_MALFORMED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i149" class="rowColor">
+<td class="colFirst"><code>static <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localizableURI_COMPONENT_INVALID_CHARACTER(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">localizableURI_COMPONENT_INVALID_CHARACTER</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                          java.lang.Object&nbsp;arg1,
+                                          java.lang.Object&nbsp;arg2,
+                                          java.lang.Object&nbsp;arg3)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i150" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MAX_SESSIONS_PER_APP_EXCEEDED()">MAX_SESSIONS_PER_APP_EXCEEDED</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Maximal number of open sessions per application exceeded.</div>
+</td>
+</tr>
+<tr id="i151" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MAX_SESSIONS_PER_ENDPOINT_EXCEEDED()">MAX_SESSIONS_PER_ENDPOINT_EXCEEDED</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Maximal number of open sessions per endpoint exceeded.</div>
+</td>
+</tr>
+<tr id="i152" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MAX_SESSIONS_PER_REMOTEADDR_EXCEEDED()">MAX_SESSIONS_PER_REMOTEADDR_EXCEEDED</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Maximal number of open sessions per remote address exceeded.</div>
+</td>
+</tr>
+<tr id="i153" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MESSAGE_HANDLER_ALREADY_REGISTERED_BINARY()">MESSAGE_HANDLER_ALREADY_REGISTERED_BINARY</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Binary MessageHandler already registered.</div>
+</td>
+</tr>
+<tr id="i154" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MESSAGE_HANDLER_ALREADY_REGISTERED_PONG()">MESSAGE_HANDLER_ALREADY_REGISTERED_PONG</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Pong MessageHandler already registered.</div>
+</td>
+</tr>
+<tr id="i155" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MESSAGE_HANDLER_ALREADY_REGISTERED_TEXT()">MESSAGE_HANDLER_ALREADY_REGISTERED_TEXT</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Text MessageHandler already registered.</div>
+</td>
+</tr>
+<tr id="i156" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(java.lang.Object)">MESSAGE_HANDLER_ALREADY_REGISTERED_TYPE</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">MessageHandler for type: {0} already registered.</div>
+</td>
+</tr>
+<tr id="i157" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MESSAGE_HANDLER_DECODER_NOT_REGISTERED(java.lang.Object)">MESSAGE_HANDLER_DECODER_NOT_REGISTERED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Decoder for type: {0} has not been registered.</div>
+</td>
+</tr>
+<tr id="i158" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MESSAGE_HANDLER_ILLEGAL_ARGUMENT(java.lang.Object)">MESSAGE_HANDLER_ILLEGAL_ARGUMENT</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Illegal MessageHandler argument value: {0}.</div>
+</td>
+</tr>
+<tr id="i159" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MESSAGE_HANDLER_PARTIAL_INVALID_TYPE(java.lang.Object)">MESSAGE_HANDLER_PARTIAL_INVALID_TYPE</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Partial MessageHandler can''t be of type: {0}.</div>
+</td>
+</tr>
+<tr id="i160" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MESSAGE_HANDLER_WHOLE_OR_PARTIAL()">MESSAGE_HANDLER_WHOLE_OR_PARTIAL</a></span>()</code></th>
+<td class="colLast">
+<div class="block">MessageHandler must implement MessageHandler.Whole or MessageHandler.Partial.</div>
+</td>
+</tr>
+<tr id="i161" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MESSAGE_TOO_LONG(java.lang.Object,java.lang.Object)">MESSAGE_TOO_LONG</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Message too long; allowed message size is {0} bytes.</div>
+</td>
+</tr>
+<tr id="i162" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#NO_DECODER_FOUND()">NO_DECODER_FOUND</a></span>()</code></th>
+<td class="colLast">
+<div class="block">No decoder found.</div>
+</td>
+</tr>
+<tr id="i163" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ORIGIN_NOT_VERIFIED()">ORIGIN_NOT_VERIFIED</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Origin not verified.</div>
+</td>
+</tr>
+<tr id="i164" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PARTIAL_BINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">PARTIAL_BINARY_MESSAGE_OUT_OF_ORDER</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Partial binary message received out of order.</div>
+</td>
+</tr>
+<tr id="i165" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PARTIAL_MESSAGE_BUFFER_OVERFLOW()">PARTIAL_MESSAGE_BUFFER_OVERFLOW</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Partial message could not be delivered due to buffer overflow.</div>
+</td>
+</tr>
+<tr id="i166" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PARTIAL_TEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">PARTIAL_TEXT_MESSAGE_OUT_OF_ORDER</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Partial text message received out of order.</div>
+</td>
+</tr>
+<tr id="i167" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PROVIDER_CLASS_COULD_NOT_BE_LOADED(java.lang.Object,java.lang.Object,java.lang.Object)">PROVIDER_CLASS_COULD_NOT_BE_LOADED</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                  java.lang.Object&nbsp;arg1,
+                                  java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">
+<div class="block">The class {0} implementing provider {1} could not be loaded: {2}</div>
+</td>
+</tr>
+<tr id="i168" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PROVIDER_COULD_NOT_BE_CREATED(java.lang.Object,java.lang.Object,java.lang.Object)">PROVIDER_COULD_NOT_BE_CREATED</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                             java.lang.Object&nbsp;arg1,
+                             java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">
+<div class="block">The class {0} implementing provider {1} could not be instantiated: {2}</div>
+</td>
+</tr>
+<tr id="i169" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object)">PROVIDER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                  java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">The class {0} implementing the provider {1} is not found.</div>
+</td>
+</tr>
+<tr id="i170" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#RSV_INCORRECTLY_SET()">RSV_INCORRECTLY_SET</a></span>()</code></th>
+<td class="colLast">
+<div class="block">RSV bit(s) incorrectly set.</div>
+</td>
+</tr>
+<tr id="i171" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SEC_KEY_INVALID_LENGTH(java.lang.Object)">SEC_KEY_INVALID_LENGTH</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Invalid Sec-WebSocket-Key length.</div>
+</td>
+</tr>
+<tr id="i172" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SEC_KEY_INVALID_SERVER()">SEC_KEY_INVALID_SERVER</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Sec-WebSocket-Key returned from server does not match expected response.</div>
+</td>
+</tr>
+<tr id="i173" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SEC_KEY_NULL_NOT_ALLOWED()">SEC_KEY_NULL_NOT_ALLOWED</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Null Sec-WebSocket-Key is not allowed.</div>
+</td>
+</tr>
+<tr id="i174" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SEND_MESSAGE_INFRAGMENT()">SEND_MESSAGE_INFRAGMENT</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Attempting to send a message while sending fragments of another.</div>
+</td>
+</tr>
+<tr id="i175" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SESSION_CLOSED_IDLE_TIMEOUT()">SESSION_CLOSED_IDLE_TIMEOUT</a></span>()</code></th>
+<td class="colLast">
+<div class="block">"Session closed by the container because of the idle timeout."</div>
+</td>
+</tr>
+<tr id="i176" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SOCKET_NOT_CONNECTED()">SOCKET_NOT_CONNECTED</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Socket is not connected.</div>
+</td>
+</tr>
+<tr id="i177" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">TEXT_MESSAGE_HANDLER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Text message handler not found.</div>
+</td>
+</tr>
+<tr id="i178" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">TEXT_MESSAGE_OUT_OF_ORDER</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Text message received out of order.</div>
+</td>
+</tr>
+<tr id="i179" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#UNEXPECTED_END_FRAGMENT()">UNEXPECTED_END_FRAGMENT</a></span>()</code></th>
+<td class="colLast">
+<div class="block">End fragment sent, but wasn''t processing any previous fragments.</div>
+</td>
+</tr>
+<tr id="i180" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#UNEXPECTED_ERROR_CONNECTION_CLOSE()">UNEXPECTED_ERROR_CONNECTION_CLOSE</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Unexpected error, closing connection.</div>
+</td>
+</tr>
+<tr id="i181" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#UNEXPECTED_STATE(java.lang.Object)">UNEXPECTED_STATE</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Unexpected state: {0}.</div>
+</td>
+</tr>
+<tr id="i182" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#UNHANDLED_TEXT_MESSAGE(java.lang.Object)">UNHANDLED_TEXT_MESSAGE</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Unhandled text message.</div>
+</td>
+</tr>
+<tr id="i183" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(java.lang.Object,java.lang.Object)">URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                         java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">
+<div class="block">Malformed percent-encoded octet at index {0}, invalid hexadecimal digit ''{1}''.</div>
+</td>
+</tr>
+<tr id="i184" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#URI_COMPONENT_ENCODED_OCTET_MALFORMED(java.lang.Object)">URI_COMPONENT_ENCODED_OCTET_MALFORMED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">
+<div class="block">Malformed percent-encoded octet at index {0}.</div>
+</td>
+</tr>
+<tr id="i185" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#URI_COMPONENT_INVALID_CHARACTER(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">URI_COMPONENT_INVALID_CHARACTER</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                               java.lang.Object&nbsp;arg1,
+                               java.lang.Object&nbsp;arg2,
+                               java.lang.Object&nbsp;arg3)</code></th>
+<td class="colLast">
+<div class="block">The string "{0}" for the URI component {1} contains an invalid character, ''{2}'', at index {3}.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LocalizationMessages</h4>
+<pre>public&nbsp;LocalizationMessages()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="localizableINVALID_HEADER(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableINVALID_HEADER</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableINVALID_HEADER&#8203;(java.lang.Object&nbsp;arg0,
+                                                    java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="INVALID_HEADER(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INVALID_HEADER</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;INVALID_HEADER&#8203;(java.lang.Object&nbsp;arg0,
+                                              java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Invalid {0} header value: "{1}".</div>
+</li>
+</ul>
+<a id="localizableBINARY_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableBINARY_MESSAGE_HANDLER_NOT_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableBINARY_MESSAGE_HANDLER_NOT_FOUND&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="BINARY_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BINARY_MESSAGE_HANDLER_NOT_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;BINARY_MESSAGE_HANDLER_NOT_FOUND&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Binary message handler not found. Session: ''{0}''.</div>
+</li>
+</ul>
+<a id="localizableSOCKET_NOT_CONNECTED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableSOCKET_NOT_CONNECTED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableSOCKET_NOT_CONNECTED()</pre>
+</li>
+</ul>
+<a id="SOCKET_NOT_CONNECTED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SOCKET_NOT_CONNECTED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;SOCKET_NOT_CONNECTED()</pre>
+<div class="block">Socket is not connected.</div>
+</li>
+</ul>
+<a id="localizableCLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR&#8203;(java.lang.Object&nbsp;arg0,
+                                                                             java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;CLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR&#8203;(java.lang.Object&nbsp;arg0,
+                                                                       java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Class {0}. {1}.</div>
+</li>
+</ul>
+<a id="localizableAUTHENTICATION_DIGEST_QOP_UNSUPPORTED(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableAUTHENTICATION_DIGEST_QOP_UNSUPPORTED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableAUTHENTICATION_DIGEST_QOP_UNSUPPORTED&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="AUTHENTICATION_DIGEST_QOP_UNSUPPORTED(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTHENTICATION_DIGEST_QOP_UNSUPPORTED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;AUTHENTICATION_DIGEST_QOP_UNSUPPORTED&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">The 'qop' (quality of protection) = {0} extension requested by the server is not supported by Tyrus. Cannot authenticate against the server using Http Digest Authentication.</div>
+</li>
+</ul>
+<a id="localizableMESSAGE_HANDLER_ALREADY_REGISTERED_BINARY()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableMESSAGE_HANDLER_ALREADY_REGISTERED_BINARY</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableMESSAGE_HANDLER_ALREADY_REGISTERED_BINARY()</pre>
+</li>
+</ul>
+<a id="MESSAGE_HANDLER_ALREADY_REGISTERED_BINARY()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MESSAGE_HANDLER_ALREADY_REGISTERED_BINARY</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;MESSAGE_HANDLER_ALREADY_REGISTERED_BINARY()</pre>
+<div class="block">Binary MessageHandler already registered.</div>
+</li>
+</ul>
+<a id="localizableSEND_MESSAGE_INFRAGMENT()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableSEND_MESSAGE_INFRAGMENT</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableSEND_MESSAGE_INFRAGMENT()</pre>
+</li>
+</ul>
+<a id="SEND_MESSAGE_INFRAGMENT()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SEND_MESSAGE_INFRAGMENT</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;SEND_MESSAGE_INFRAGMENT()</pre>
+<div class="block">Attempting to send a message while sending fragments of another.</div>
+</li>
+</ul>
+<a id="localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM&#8203;(java.lang.Object&nbsp;arg0,
+                                                                                   java.lang.Object&nbsp;arg1,
+                                                                                   java.lang.Object&nbsp;arg2)</pre>
+</li>
+</ul>
+<a id="CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM&#8203;(java.lang.Object&nbsp;arg0,
+                                                                             java.lang.Object&nbsp;arg1,
+                                                                             java.lang.Object&nbsp;arg2)</pre>
+<div class="block">Method: {0}.{1}: {2} has got multiple parameters of identical type.</div>
+</li>
+</ul>
+<a id="localizableURI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableURI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableURI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT&#8203;(java.lang.Object&nbsp;arg0,
+                                                                               java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;URI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT&#8203;(java.lang.Object&nbsp;arg0,
+                                                                         java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Malformed percent-encoded octet at index {0}, invalid hexadecimal digit ''{1}''.</div>
+</li>
+</ul>
+<a id="localizableTEXT_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableTEXT_MESSAGE_HANDLER_NOT_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableTEXT_MESSAGE_HANDLER_NOT_FOUND&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="TEXT_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_MESSAGE_HANDLER_NOT_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;TEXT_MESSAGE_HANDLER_NOT_FOUND&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Text message handler not found. Session: ''{0}''.</div>
+</li>
+</ul>
+<a id="localizableTEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableTEXT_MESSAGE_OUT_OF_ORDER</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableTEXT_MESSAGE_OUT_OF_ORDER&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="TEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_MESSAGE_OUT_OF_ORDER</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;TEXT_MESSAGE_OUT_OF_ORDER&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Text message received out of order. Session: ''{0}''.</div>
+</li>
+</ul>
+<a id="localizableMESSAGE_HANDLER_PARTIAL_INVALID_TYPE(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableMESSAGE_HANDLER_PARTIAL_INVALID_TYPE</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableMESSAGE_HANDLER_PARTIAL_INVALID_TYPE&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="MESSAGE_HANDLER_PARTIAL_INVALID_TYPE(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MESSAGE_HANDLER_PARTIAL_INVALID_TYPE</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;MESSAGE_HANDLER_PARTIAL_INVALID_TYPE&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Partial MessageHandler can''t be of type: {0}.</div>
+</li>
+</ul>
+<a id="localizableMESSAGE_HANDLER_DECODER_NOT_REGISTERED(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableMESSAGE_HANDLER_DECODER_NOT_REGISTERED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableMESSAGE_HANDLER_DECODER_NOT_REGISTERED&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="MESSAGE_HANDLER_DECODER_NOT_REGISTERED(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MESSAGE_HANDLER_DECODER_NOT_REGISTERED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;MESSAGE_HANDLER_DECODER_NOT_REGISTERED&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Decoder for type: {0} has not been registered.</div>
+</li>
+</ul>
+<a id="localizableINVALID_RESPONSE_CODE(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableINVALID_RESPONSE_CODE</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableINVALID_RESPONSE_CODE&#8203;(java.lang.Object&nbsp;arg0,
+                                                           java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="INVALID_RESPONSE_CODE(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INVALID_RESPONSE_CODE</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;INVALID_RESPONSE_CODE&#8203;(java.lang.Object&nbsp;arg0,
+                                                     java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Response code was not {0}: {1}.</div>
+</li>
+</ul>
+<a id="localizableSEC_KEY_NULL_NOT_ALLOWED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableSEC_KEY_NULL_NOT_ALLOWED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableSEC_KEY_NULL_NOT_ALLOWED()</pre>
+</li>
+</ul>
+<a id="SEC_KEY_NULL_NOT_ALLOWED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SEC_KEY_NULL_NOT_ALLOWED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;SEC_KEY_NULL_NOT_ALLOWED()</pre>
+<div class="block">Null Sec-WebSocket-Key is not allowed.</div>
+</li>
+</ul>
+<a id="localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM&#8203;(java.lang.Object&nbsp;arg0,
+                                                                                    java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM&#8203;(java.lang.Object&nbsp;arg0,
+                                                                              java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Method: {0}.{1}: @OnClose has got different params than Session or CloseReason.</div>
+</li>
+</ul>
+<a id="localizableEQUIVALENT_PATHS(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableEQUIVALENT_PATHS</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableEQUIVALENT_PATHS&#8203;(java.lang.Object&nbsp;arg0,
+                                                      java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="EQUIVALENT_PATHS(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EQUIVALENT_PATHS</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;EQUIVALENT_PATHS&#8203;(java.lang.Object&nbsp;arg0,
+                                                java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Found equivalent paths. Added path: ''{0}'' is equivalent with ''{1}''.</div>
+</li>
+</ul>
+<a id="localizableURI_COMPONENT_INVALID_CHARACTER(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableURI_COMPONENT_INVALID_CHARACTER</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableURI_COMPONENT_INVALID_CHARACTER&#8203;(java.lang.Object&nbsp;arg0,
+                                                                     java.lang.Object&nbsp;arg1,
+                                                                     java.lang.Object&nbsp;arg2,
+                                                                     java.lang.Object&nbsp;arg3)</pre>
+</li>
+</ul>
+<a id="URI_COMPONENT_INVALID_CHARACTER(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>URI_COMPONENT_INVALID_CHARACTER</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;URI_COMPONENT_INVALID_CHARACTER&#8203;(java.lang.Object&nbsp;arg0,
+                                                               java.lang.Object&nbsp;arg1,
+                                                               java.lang.Object&nbsp;arg2,
+                                                               java.lang.Object&nbsp;arg3)</pre>
+<div class="block">The string "{0}" for the URI component {1} contains an invalid character, ''{2}'', at index {3}.</div>
+</li>
+</ul>
+<a id="localizableMAX_SESSIONS_PER_REMOTEADDR_EXCEEDED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableMAX_SESSIONS_PER_REMOTEADDR_EXCEEDED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableMAX_SESSIONS_PER_REMOTEADDR_EXCEEDED()</pre>
+</li>
+</ul>
+<a id="MAX_SESSIONS_PER_REMOTEADDR_EXCEEDED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MAX_SESSIONS_PER_REMOTEADDR_EXCEEDED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;MAX_SESSIONS_PER_REMOTEADDR_EXCEEDED()</pre>
+<div class="block">Maximal number of open sessions per remote address exceeded.</div>
+</li>
+</ul>
+<a id="localizableAPPLICATION_DATA_TOO_LONG(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableAPPLICATION_DATA_TOO_LONG</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableAPPLICATION_DATA_TOO_LONG&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="APPLICATION_DATA_TOO_LONG(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_DATA_TOO_LONG</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;APPLICATION_DATA_TOO_LONG&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">{0} applicationData exceeded the maximum allowed payload of 125 bytes.</div>
+</li>
+</ul>
+<a id="localizableMESSAGE_TOO_LONG(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableMESSAGE_TOO_LONG</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableMESSAGE_TOO_LONG&#8203;(java.lang.Object&nbsp;arg0,
+                                                      java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="MESSAGE_TOO_LONG(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MESSAGE_TOO_LONG</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;MESSAGE_TOO_LONG&#8203;(java.lang.Object&nbsp;arg0,
+                                                java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Message too long; allowed message size is {0} bytes. (Current message length is {1} bytes).</div>
+</li>
+</ul>
+<a id="localizableAUTHENTICATION_DIGEST_NO_SUCH_ALG()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableAUTHENTICATION_DIGEST_NO_SUCH_ALG</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableAUTHENTICATION_DIGEST_NO_SUCH_ALG()</pre>
+</li>
+</ul>
+<a id="AUTHENTICATION_DIGEST_NO_SUCH_ALG()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTHENTICATION_DIGEST_NO_SUCH_ALG</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;AUTHENTICATION_DIGEST_NO_SUCH_ALG()</pre>
+<div class="block">No such algorithm to generate authorization digest http header.</div>
+</li>
+</ul>
+<a id="localizableHANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableHANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableHANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="HANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;HANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Received HTTP response status code: {0} and redirect processing is not enabled.</div>
+</li>
+</ul>
+<a id="localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING()</pre>
+</li>
+</ul>
+<a id="HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING()</pre>
+<div class="block">Missing or empty Location header in 3xx HTTP Redirect response.</div>
+</li>
+</ul>
+<a id="localizableARGUMENT_NOT_NULL(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableARGUMENT_NOT_NULL</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableARGUMENT_NOT_NULL&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="ARGUMENT_NOT_NULL(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ARGUMENT_NOT_NULL</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ARGUMENT_NOT_NULL&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Argument ''{0}'' cannot be null.</div>
+</li>
+</ul>
+<a id="localizableCOMPONENT_PROVIDER_NOT_FOUND(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCOMPONENT_PROVIDER_NOT_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCOMPONENT_PROVIDER_NOT_FOUND&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="COMPONENT_PROVIDER_NOT_FOUND(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>COMPONENT_PROVIDER_NOT_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;COMPONENT_PROVIDER_NOT_FOUND&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Component provider for class {0} not found.</div>
+</li>
+</ul>
+<a id="localizablePROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizablePROVIDER_NOT_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizablePROVIDER_NOT_FOUND&#8203;(java.lang.Object&nbsp;arg0,
+                                                        java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="PROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROVIDER_NOT_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;PROVIDER_NOT_FOUND&#8203;(java.lang.Object&nbsp;arg0,
+                                                  java.lang.Object&nbsp;arg1)</pre>
+<div class="block">The class {0} implementing the provider {1} is not found. The provider implementation is ignored.</div>
+</li>
+</ul>
+<a id="localizablePARTIAL_MESSAGE_BUFFER_OVERFLOW()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizablePARTIAL_MESSAGE_BUFFER_OVERFLOW</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizablePARTIAL_MESSAGE_BUFFER_OVERFLOW()</pre>
+</li>
+</ul>
+<a id="PARTIAL_MESSAGE_BUFFER_OVERFLOW()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PARTIAL_MESSAGE_BUFFER_OVERFLOW</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;PARTIAL_MESSAGE_BUFFER_OVERFLOW()</pre>
+<div class="block">Partial message could not be delivered due to buffer overflow.</div>
+</li>
+</ul>
+<a id="localizableRSV_INCORRECTLY_SET()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableRSV_INCORRECTLY_SET</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableRSV_INCORRECTLY_SET()</pre>
+</li>
+</ul>
+<a id="RSV_INCORRECTLY_SET()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RSV_INCORRECTLY_SET</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;RSV_INCORRECTLY_SET()</pre>
+<div class="block">RSV bit(s) incorrectly set.</div>
+</li>
+</ul>
+<a id="localizableURI_COMPONENT_ENCODED_OCTET_MALFORMED(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableURI_COMPONENT_ENCODED_OCTET_MALFORMED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableURI_COMPONENT_ENCODED_OCTET_MALFORMED&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="URI_COMPONENT_ENCODED_OCTET_MALFORMED(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>URI_COMPONENT_ENCODED_OCTET_MALFORMED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;URI_COMPONENT_ENCODED_OCTET_MALFORMED&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Malformed percent-encoded octet at index {0}.</div>
+</li>
+</ul>
+<a id="localizableCONTROL_FRAME_FRAGMENTED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCONTROL_FRAME_FRAGMENTED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCONTROL_FRAME_FRAGMENTED()</pre>
+</li>
+</ul>
+<a id="CONTROL_FRAME_FRAGMENTED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTROL_FRAME_FRAGMENTED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;CONTROL_FRAME_FRAGMENTED()</pre>
+<div class="block">Fragmented control frame.</div>
+</li>
+</ul>
+<a id="localizableCLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS&#8203;(java.lang.Object&nbsp;arg0,
+                                                                             java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;CLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS&#8203;(java.lang.Object&nbsp;arg0,
+                                                                       java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Method: {0}.{1}: has got multiple parameters of identical type.</div>
+</li>
+</ul>
+<a id="localizableAUTHENTICATION_CREATE_AUTH_HEADER_FAILED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableAUTHENTICATION_CREATE_AUTH_HEADER_FAILED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableAUTHENTICATION_CREATE_AUTH_HEADER_FAILED()</pre>
+</li>
+</ul>
+<a id="AUTHENTICATION_CREATE_AUTH_HEADER_FAILED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTHENTICATION_CREATE_AUTH_HEADER_FAILED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;AUTHENTICATION_CREATE_AUTH_HEADER_FAILED()</pre>
+<div class="block">Could not add authorization header in http request.</div>
+</li>
+</ul>
+<a id="localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TYPE</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TYPE&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="MESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MESSAGE_HANDLER_ALREADY_REGISTERED_TYPE</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;MESSAGE_HANDLER_ALREADY_REGISTERED_TYPE&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">MessageHandler for type: {0} already registered.</div>
+</li>
+</ul>
+<a id="localizableCLASS_CHECKER_MANDATORY_PARAM_MISSING(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCLASS_CHECKER_MANDATORY_PARAM_MISSING</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCLASS_CHECKER_MANDATORY_PARAM_MISSING&#8203;(java.lang.Object&nbsp;arg0,
+                                                                           java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="CLASS_CHECKER_MANDATORY_PARAM_MISSING(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_CHECKER_MANDATORY_PARAM_MISSING</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;CLASS_CHECKER_MANDATORY_PARAM_MISSING&#8203;(java.lang.Object&nbsp;arg0,
+                                                                     java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Method: {0}.{1}: does not have mandatory Throwable param.</div>
+</li>
+</ul>
+<a id="localizableENDPOINT_WRONG_PATH_PARAM(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableENDPOINT_WRONG_PATH_PARAM</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableENDPOINT_WRONG_PATH_PARAM&#8203;(java.lang.Object&nbsp;arg0,
+                                                               java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="ENDPOINT_WRONG_PATH_PARAM(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENDPOINT_WRONG_PATH_PARAM</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ENDPOINT_WRONG_PATH_PARAM&#8203;(java.lang.Object&nbsp;arg0,
+                                                         java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Method: {0}: {1} is not allowed type for @PathParameter.</div>
+</li>
+</ul>
+<a id="localizableCONNECTION_HAS_BEEN_CLOSED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCONNECTION_HAS_BEEN_CLOSED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCONNECTION_HAS_BEEN_CLOSED()</pre>
+</li>
+</ul>
+<a id="CONNECTION_HAS_BEEN_CLOSED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONNECTION_HAS_BEEN_CLOSED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;CONNECTION_HAS_BEEN_CLOSED()</pre>
+<div class="block">The connection has been closed.</div>
+</li>
+</ul>
+<a id="localizableHANDSHAKE_HTTP_RETRY_AFTER_MESSAGE()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableHANDSHAKE_HTTP_RETRY_AFTER_MESSAGE</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableHANDSHAKE_HTTP_RETRY_AFTER_MESSAGE()</pre>
+</li>
+</ul>
+<a id="HANDSHAKE_HTTP_RETRY_AFTER_MESSAGE()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HANDSHAKE_HTTP_RETRY_AFTER_MESSAGE</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;HANDSHAKE_HTTP_RETRY_AFTER_MESSAGE()</pre>
+<div class="block">HTTP Status code 503 - Service Unavailable.</div>
+</li>
+</ul>
+<a id="localizableDEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableDEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableDEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND&#8203;(java.lang.Object&nbsp;arg0,
+                                                                           java.lang.Object&nbsp;arg1,
+                                                                           java.lang.Object&nbsp;arg2)</pre>
+</li>
+</ul>
+<a id="DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;DEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND&#8203;(java.lang.Object&nbsp;arg0,
+                                                                     java.lang.Object&nbsp;arg1,
+                                                                     java.lang.Object&nbsp;arg2)</pre>
+<div class="block">A dependent class, {0}, of the class {1} implementing the provider {2} is not found. The provider implementation is ignored.</div>
+</li>
+</ul>
+<a id="localizableFRAME_WRITE_CANCELLED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableFRAME_WRITE_CANCELLED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableFRAME_WRITE_CANCELLED()</pre>
+</li>
+</ul>
+<a id="FRAME_WRITE_CANCELLED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FRAME_WRITE_CANCELLED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;FRAME_WRITE_CANCELLED()</pre>
+<div class="block">Frame writing was canceled.</div>
+</li>
+</ul>
+<a id="localizableUNEXPECTED_ERROR_CONNECTION_CLOSE()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableUNEXPECTED_ERROR_CONNECTION_CLOSE</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableUNEXPECTED_ERROR_CONNECTION_CLOSE()</pre>
+</li>
+</ul>
+<a id="UNEXPECTED_ERROR_CONNECTION_CLOSE()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNEXPECTED_ERROR_CONNECTION_CLOSE</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;UNEXPECTED_ERROR_CONNECTION_CLOSE()</pre>
+<div class="block">Unexpected error, closing connection.</div>
+</li>
+</ul>
+<a id="localizableENDPOINT_MULTIPLE_SESSION_PARAM(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableENDPOINT_MULTIPLE_SESSION_PARAM</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableENDPOINT_MULTIPLE_SESSION_PARAM&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="ENDPOINT_MULTIPLE_SESSION_PARAM(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENDPOINT_MULTIPLE_SESSION_PARAM</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ENDPOINT_MULTIPLE_SESSION_PARAM&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Method {0} has got two or more Session parameters.</div>
+</li>
+</ul>
+<a id="localizableUNEXPECTED_STATE(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableUNEXPECTED_STATE</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableUNEXPECTED_STATE&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="UNEXPECTED_STATE(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNEXPECTED_STATE</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;UNEXPECTED_STATE&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Unexpected state: {0}.</div>
+</li>
+</ul>
+<a id="localizableDEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableDEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableDEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR&#8203;(java.lang.Object&nbsp;arg0,
+                                                                              java.lang.Object&nbsp;arg1,
+                                                                              java.lang.Object&nbsp;arg2)</pre>
+</li>
+</ul>
+<a id="DEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;DEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR&#8203;(java.lang.Object&nbsp;arg0,
+                                                                        java.lang.Object&nbsp;arg1,
+                                                                        java.lang.Object&nbsp;arg2)</pre>
+<div class="block">{0}. A dependent class of the class {1} implementing the provider {2} is malformed. The provider implementation is ignored. Check if the malformed class is part of a stubbed jar that used for compiling only.</div>
+</li>
+</ul>
+<a id="localizableENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG&#8203;(java.lang.Object&nbsp;arg0,
+                                                                        java.lang.Object&nbsp;arg1,
+                                                                        java.lang.Object&nbsp;arg2,
+                                                                        java.lang.Object&nbsp;arg3)</pre>
+</li>
+</ul>
+<a id="ENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG&#8203;(java.lang.Object&nbsp;arg0,
+                                                                  java.lang.Object&nbsp;arg1,
+                                                                  java.lang.Object&nbsp;arg2,
+                                                                  java.lang.Object&nbsp;arg3)</pre>
+<div class="block">MaxMessageSize {0} on method {1} in endpoint {2} is larger than the container incoming buffer size {3}.</div>
+</li>
+</ul>
+<a id="localizableBINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableBINARY_MESSAGE_OUT_OF_ORDER</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableBINARY_MESSAGE_OUT_OF_ORDER&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="BINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BINARY_MESSAGE_OUT_OF_ORDER</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;BINARY_MESSAGE_OUT_OF_ORDER&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Binary message received out of order. Session: ''{0}''.</div>
+</li>
+</ul>
+<a id="localizableENCODING_FAILED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableENCODING_FAILED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableENCODING_FAILED()</pre>
+</li>
+</ul>
+<a id="ENCODING_FAILED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENCODING_FAILED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ENCODING_FAILED()</pre>
+<div class="block">Encoding failed.</div>
+</li>
+</ul>
+<a id="localizableENDPOINT_MULTIPLE_METHODS(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableENDPOINT_MULTIPLE_METHODS</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableENDPOINT_MULTIPLE_METHODS&#8203;(java.lang.Object&nbsp;arg0,
+                                                               java.lang.Object&nbsp;arg1,
+                                                               java.lang.Object&nbsp;arg2,
+                                                               java.lang.Object&nbsp;arg3)</pre>
+</li>
+</ul>
+<a id="ENDPOINT_MULTIPLE_METHODS(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENDPOINT_MULTIPLE_METHODS</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ENDPOINT_MULTIPLE_METHODS&#8203;(java.lang.Object&nbsp;arg0,
+                                                         java.lang.Object&nbsp;arg1,
+                                                         java.lang.Object&nbsp;arg2,
+                                                         java.lang.Object&nbsp;arg3)</pre>
+<div class="block">Multiple methods using {0} annotation in class {1}: {2} and {3}. The latter will be ignored.</div>
+</li>
+</ul>
+<a id="localizablePROVIDER_COULD_NOT_BE_CREATED(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizablePROVIDER_COULD_NOT_BE_CREATED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizablePROVIDER_COULD_NOT_BE_CREATED&#8203;(java.lang.Object&nbsp;arg0,
+                                                                   java.lang.Object&nbsp;arg1,
+                                                                   java.lang.Object&nbsp;arg2)</pre>
+</li>
+</ul>
+<a id="PROVIDER_COULD_NOT_BE_CREATED(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROVIDER_COULD_NOT_BE_CREATED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;PROVIDER_COULD_NOT_BE_CREATED&#8203;(java.lang.Object&nbsp;arg0,
+                                                             java.lang.Object&nbsp;arg1,
+                                                             java.lang.Object&nbsp;arg2)</pre>
+<div class="block">The class {0} implementing provider {1} could not be instantiated: {2}</div>
+</li>
+</ul>
+<a id="localizableNO_DECODER_FOUND()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableNO_DECODER_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableNO_DECODER_FOUND()</pre>
+</li>
+</ul>
+<a id="NO_DECODER_FOUND()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NO_DECODER_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;NO_DECODER_FOUND()</pre>
+<div class="block">No decoder found.</div>
+</li>
+</ul>
+<a id="localizableENDPOINT_UNKNOWN_PARAMS(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableENDPOINT_UNKNOWN_PARAMS</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableENDPOINT_UNKNOWN_PARAMS&#8203;(java.lang.Object&nbsp;arg0,
+                                                             java.lang.Object&nbsp;arg1,
+                                                             java.lang.Object&nbsp;arg2)</pre>
+</li>
+</ul>
+<a id="ENDPOINT_UNKNOWN_PARAMS(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENDPOINT_UNKNOWN_PARAMS</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ENDPOINT_UNKNOWN_PARAMS&#8203;(java.lang.Object&nbsp;arg0,
+                                                       java.lang.Object&nbsp;arg1,
+                                                       java.lang.Object&nbsp;arg2)</pre>
+<div class="block">Unknown parameter(s) for {0}.{1} method annotated with @OnError annotation: {2}. This method will be ignored.</div>
+</li>
+</ul>
+<a id="localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TEXT()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TEXT</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TEXT()</pre>
+</li>
+</ul>
+<a id="MESSAGE_HANDLER_ALREADY_REGISTERED_TEXT()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MESSAGE_HANDLER_ALREADY_REGISTERED_TEXT</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;MESSAGE_HANDLER_ALREADY_REGISTERED_TEXT()</pre>
+<div class="block">Text MessageHandler already registered.</div>
+</li>
+</ul>
+<a id="localizablePROVIDER_CLASS_COULD_NOT_BE_LOADED(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizablePROVIDER_CLASS_COULD_NOT_BE_LOADED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizablePROVIDER_CLASS_COULD_NOT_BE_LOADED&#8203;(java.lang.Object&nbsp;arg0,
+                                                                        java.lang.Object&nbsp;arg1,
+                                                                        java.lang.Object&nbsp;arg2)</pre>
+</li>
+</ul>
+<a id="PROVIDER_CLASS_COULD_NOT_BE_LOADED(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROVIDER_CLASS_COULD_NOT_BE_LOADED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;PROVIDER_CLASS_COULD_NOT_BE_LOADED&#8203;(java.lang.Object&nbsp;arg0,
+                                                                  java.lang.Object&nbsp;arg1,
+                                                                  java.lang.Object&nbsp;arg2)</pre>
+<div class="block">The class {0} implementing provider {1} could not be loaded: {2}</div>
+</li>
+</ul>
+<a id="localizableAUTHENTICATION_CREDENTIALS_MISSING()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableAUTHENTICATION_CREDENTIALS_MISSING</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableAUTHENTICATION_CREDENTIALS_MISSING()</pre>
+</li>
+</ul>
+<a id="AUTHENTICATION_CREDENTIALS_MISSING()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTHENTICATION_CREDENTIALS_MISSING</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;AUTHENTICATION_CREDENTIALS_MISSING()</pre>
+<div class="block">Credentials are missing.</div>
+</li>
+</ul>
+<a id="localizableILLEGAL_CONFIG_SYNTAX()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableILLEGAL_CONFIG_SYNTAX</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableILLEGAL_CONFIG_SYNTAX()</pre>
+</li>
+</ul>
+<a id="ILLEGAL_CONFIG_SYNTAX()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ILLEGAL_CONFIG_SYNTAX</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ILLEGAL_CONFIG_SYNTAX()</pre>
+<div class="block">Illegal configuration-file syntax.</div>
+</li>
+</ul>
+<a id="localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM&#8203;(java.lang.Object&nbsp;arg0,
+                                                                                    java.lang.Object&nbsp;arg1,
+                                                                                    java.lang.Object&nbsp;arg2)</pre>
+</li>
+</ul>
+<a id="CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;CLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM&#8203;(java.lang.Object&nbsp;arg0,
+                                                                              java.lang.Object&nbsp;arg1,
+                                                                              java.lang.Object&nbsp;arg2)</pre>
+<div class="block">Method: {0}.{1}: {2} is not allowed as parameter type for method annotated with @OnError.</div>
+</li>
+</ul>
+<a id="localizableMAX_SESSIONS_PER_APP_EXCEEDED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableMAX_SESSIONS_PER_APP_EXCEEDED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableMAX_SESSIONS_PER_APP_EXCEEDED()</pre>
+</li>
+</ul>
+<a id="MAX_SESSIONS_PER_APP_EXCEEDED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MAX_SESSIONS_PER_APP_EXCEEDED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;MAX_SESSIONS_PER_APP_EXCEEDED()</pre>
+<div class="block">Maximal number of open sessions per application exceeded.</div>
+</li>
+</ul>
+<a id="localizableEXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableEXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableEXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()</pre>
+</li>
+</ul>
+<a id="EXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;EXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()</pre>
+<div class="block">Exception caught while loading SPI providers.</div>
+</li>
+</ul>
+<a id="localizableSEC_KEY_INVALID_LENGTH(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableSEC_KEY_INVALID_LENGTH</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableSEC_KEY_INVALID_LENGTH&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="SEC_KEY_INVALID_LENGTH(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SEC_KEY_INVALID_LENGTH</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;SEC_KEY_INVALID_LENGTH&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Invalid Sec-WebSocket-Key length. Should be 20 and is: {0}.</div>
+</li>
+</ul>
+<a id="localizableUNHANDLED_TEXT_MESSAGE(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableUNHANDLED_TEXT_MESSAGE</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableUNHANDLED_TEXT_MESSAGE&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="UNHANDLED_TEXT_MESSAGE(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNHANDLED_TEXT_MESSAGE</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;UNHANDLED_TEXT_MESSAGE&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Unhandled text message. Session: {0}.</div>
+</li>
+</ul>
+<a id="localizableBUFFER_OVERFLOW()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableBUFFER_OVERFLOW</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableBUFFER_OVERFLOW()</pre>
+</li>
+</ul>
+<a id="BUFFER_OVERFLOW()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BUFFER_OVERFLOW</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;BUFFER_OVERFLOW()</pre>
+<div class="block">Buffer overflow.</div>
+</li>
+</ul>
+<a id="localizableCONTROL_FRAME_LENGTH()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCONTROL_FRAME_LENGTH</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCONTROL_FRAME_LENGTH()</pre>
+</li>
+</ul>
+<a id="CONTROL_FRAME_LENGTH()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTROL_FRAME_LENGTH</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;CONTROL_FRAME_LENGTH()</pre>
+<div class="block">Control frame payloads must be no greater than 125 bytes.</div>
+</li>
+</ul>
+<a id="localizableHANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableHANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableHANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="HANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;HANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Redirect attempts exceeded maximum allowed limit of ({0}) redirects.</div>
+</li>
+</ul>
+<a id="localizableCOMPONENT_PROVIDER_THREW_EXCEPTION(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCOMPONENT_PROVIDER_THREW_EXCEPTION</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCOMPONENT_PROVIDER_THREW_EXCEPTION&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="COMPONENT_PROVIDER_THREW_EXCEPTION(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>COMPONENT_PROVIDER_THREW_EXCEPTION</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;COMPONENT_PROVIDER_THREW_EXCEPTION&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Component provider threw exception when providing instance of class {0}.</div>
+</li>
+</ul>
+<a id="localizableMAX_SESSIONS_PER_ENDPOINT_EXCEEDED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableMAX_SESSIONS_PER_ENDPOINT_EXCEEDED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableMAX_SESSIONS_PER_ENDPOINT_EXCEEDED()</pre>
+</li>
+</ul>
+<a id="MAX_SESSIONS_PER_ENDPOINT_EXCEEDED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MAX_SESSIONS_PER_ENDPOINT_EXCEEDED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;MAX_SESSIONS_PER_ENDPOINT_EXCEEDED()</pre>
+<div class="block">Maximal number of open sessions per endpoint exceeded.</div>
+</li>
+</ul>
+<a id="localizableERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()</pre>
+</li>
+</ul>
+<a id="ERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()</pre>
+<div class="block">Error caught while loading SPI providers.</div>
+</li>
+</ul>
+<a id="localizablePARTIAL_BINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizablePARTIAL_BINARY_MESSAGE_OUT_OF_ORDER</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizablePARTIAL_BINARY_MESSAGE_OUT_OF_ORDER&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="PARTIAL_BINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PARTIAL_BINARY_MESSAGE_OUT_OF_ORDER</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;PARTIAL_BINARY_MESSAGE_OUT_OF_ORDER&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Partial binary message received out of order. Session: ''{0}''.</div>
+</li>
+</ul>
+<a id="localizableMESSAGE_HANDLER_ILLEGAL_ARGUMENT(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableMESSAGE_HANDLER_ILLEGAL_ARGUMENT</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableMESSAGE_HANDLER_ILLEGAL_ARGUMENT&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="MESSAGE_HANDLER_ILLEGAL_ARGUMENT(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MESSAGE_HANDLER_ILLEGAL_ARGUMENT</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;MESSAGE_HANDLER_ILLEGAL_ARGUMENT&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Illegal MessageHandler argument value: {0}.</div>
+</li>
+</ul>
+<a id="localizableIOEXCEPTION_CLOSE()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableIOEXCEPTION_CLOSE</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableIOEXCEPTION_CLOSE()</pre>
+</li>
+</ul>
+<a id="IOEXCEPTION_CLOSE()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>IOEXCEPTION_CLOSE</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;IOEXCEPTION_CLOSE()</pre>
+<div class="block">IOException thrown when closing connection.</div>
+</li>
+</ul>
+<a id="localizableCLASS_NOT_INSTANTIATED(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCLASS_NOT_INSTANTIATED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCLASS_NOT_INSTANTIATED&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="CLASS_NOT_INSTANTIATED(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_NOT_INSTANTIATED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;CLASS_NOT_INSTANTIATED&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Class {0} couldn''t be instantiated.</div>
+</li>
+</ul>
+<a id="localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;HANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Invalid URI in Location header: "{0}".</div>
+</li>
+</ul>
+<a id="localizableSEC_KEY_INVALID_SERVER()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableSEC_KEY_INVALID_SERVER</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableSEC_KEY_INVALID_SERVER()</pre>
+</li>
+</ul>
+<a id="SEC_KEY_INVALID_SERVER()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SEC_KEY_INVALID_SERVER</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;SEC_KEY_INVALID_SERVER()</pre>
+<div class="block">Sec-WebSocket-Key returned from server does not match expected response.</div>
+</li>
+</ul>
+<a id="localizableHANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableHANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableHANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP()</pre>
+</li>
+</ul>
+<a id="HANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;HANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP()</pre>
+<div class="block">Infinite HTTP Redirection loop detected.</div>
+</li>
+</ul>
+<a id="localizableCLIENT_CANNOT_CONNECT(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCLIENT_CANNOT_CONNECT</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCLIENT_CANNOT_CONNECT&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="CLIENT_CANNOT_CONNECT(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_CANNOT_CONNECT</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;CLIENT_CANNOT_CONNECT&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Client cannot connect to "{0}".</div>
+</li>
+</ul>
+<a id="localizableAUTHENTICATION_FAILED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableAUTHENTICATION_FAILED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableAUTHENTICATION_FAILED()</pre>
+</li>
+</ul>
+<a id="AUTHENTICATION_FAILED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTHENTICATION_FAILED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;AUTHENTICATION_FAILED()</pre>
+<div class="block">Authentication failed.</div>
+</li>
+</ul>
+<a id="localizableENDPOINT_UNHANDLED_EXCEPTION(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableENDPOINT_UNHANDLED_EXCEPTION</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableENDPOINT_UNHANDLED_EXCEPTION&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="ENDPOINT_UNHANDLED_EXCEPTION(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENDPOINT_UNHANDLED_EXCEPTION</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ENDPOINT_UNHANDLED_EXCEPTION&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Unhandled exception in endpoint {0}.</div>
+</li>
+</ul>
+<a id="localizableILLEGAL_UTF_8_SEQUENCE()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableILLEGAL_UTF_8_SEQUENCE</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableILLEGAL_UTF_8_SEQUENCE()</pre>
+</li>
+</ul>
+<a id="ILLEGAL_UTF_8_SEQUENCE()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ILLEGAL_UTF_8_SEQUENCE</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ILLEGAL_UTF_8_SEQUENCE()</pre>
+<div class="block">Illegal UTF-8 Sequence.</div>
+</li>
+</ul>
+<a id="localizableSESSION_CLOSED_IDLE_TIMEOUT()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableSESSION_CLOSED_IDLE_TIMEOUT</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableSESSION_CLOSED_IDLE_TIMEOUT()</pre>
+</li>
+</ul>
+<a id="SESSION_CLOSED_IDLE_TIMEOUT()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SESSION_CLOSED_IDLE_TIMEOUT</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;SESSION_CLOSED_IDLE_TIMEOUT()</pre>
+<div class="block">"Session closed by the container because of the idle timeout."</div>
+</li>
+</ul>
+<a id="localizablePARTIAL_TEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizablePARTIAL_TEXT_MESSAGE_OUT_OF_ORDER</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizablePARTIAL_TEXT_MESSAGE_OUT_OF_ORDER&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="PARTIAL_TEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PARTIAL_TEXT_MESSAGE_OUT_OF_ORDER</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;PARTIAL_TEXT_MESSAGE_OUT_OF_ORDER&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Partial text message received out of order. Session: ''{0}''.</div>
+</li>
+</ul>
+<a id="localizableENDPOINT_ANNOTATION_NOT_FOUND(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableENDPOINT_ANNOTATION_NOT_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableENDPOINT_ANNOTATION_NOT_FOUND&#8203;(java.lang.Object&nbsp;arg0,
+                                                                   java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="ENDPOINT_ANNOTATION_NOT_FOUND(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENDPOINT_ANNOTATION_NOT_FOUND</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ENDPOINT_ANNOTATION_NOT_FOUND&#8203;(java.lang.Object&nbsp;arg0,
+                                                             java.lang.Object&nbsp;arg1)</pre>
+<div class="block">{0} annotation not found on class {1}.</div>
+</li>
+</ul>
+<a id="localizableMESSAGE_HANDLER_WHOLE_OR_PARTIAL()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableMESSAGE_HANDLER_WHOLE_OR_PARTIAL</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableMESSAGE_HANDLER_WHOLE_OR_PARTIAL()</pre>
+</li>
+</ul>
+<a id="MESSAGE_HANDLER_WHOLE_OR_PARTIAL()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MESSAGE_HANDLER_WHOLE_OR_PARTIAL</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;MESSAGE_HANDLER_WHOLE_OR_PARTIAL()</pre>
+<div class="block">MessageHandler must implement MessageHandler.Whole or MessageHandler.Partial.</div>
+</li>
+</ul>
+<a id="localizableMESSAGE_HANDLER_ALREADY_REGISTERED_PONG()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableMESSAGE_HANDLER_ALREADY_REGISTERED_PONG</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableMESSAGE_HANDLER_ALREADY_REGISTERED_PONG()</pre>
+</li>
+</ul>
+<a id="MESSAGE_HANDLER_ALREADY_REGISTERED_PONG()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MESSAGE_HANDLER_ALREADY_REGISTERED_PONG</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;MESSAGE_HANDLER_ALREADY_REGISTERED_PONG()</pre>
+<div class="block">Pong MessageHandler already registered.</div>
+</li>
+</ul>
+<a id="localizableORIGIN_NOT_VERIFIED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableORIGIN_NOT_VERIFIED</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableORIGIN_NOT_VERIFIED()</pre>
+</li>
+</ul>
+<a id="ORIGIN_NOT_VERIFIED()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ORIGIN_NOT_VERIFIED</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ORIGIN_NOT_VERIFIED()</pre>
+<div class="block">Origin not verified.</div>
+</li>
+</ul>
+<a id="localizableHEADERS_MISSING()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableHEADERS_MISSING</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableHEADERS_MISSING()</pre>
+</li>
+</ul>
+<a id="HEADERS_MISSING()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HEADERS_MISSING</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;HEADERS_MISSING()</pre>
+<div class="block">Missing headers required for WebSocket negotiation.</div>
+</li>
+</ul>
+<a id="localizableUNEXPECTED_END_FRAGMENT()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableUNEXPECTED_END_FRAGMENT</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableUNEXPECTED_END_FRAGMENT()</pre>
+</li>
+</ul>
+<a id="UNEXPECTED_END_FRAGMENT()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNEXPECTED_END_FRAGMENT</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;UNEXPECTED_END_FRAGMENT()</pre>
+<div class="block">End fragment sent, but wasn''t processing any previous fragments.</div>
+</li>
+</ul>
+<a id="localizableFRAGMENT_INVALID_OPCODE()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableFRAGMENT_INVALID_OPCODE</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableFRAGMENT_INVALID_OPCODE()</pre>
+</li>
+</ul>
+<a id="FRAGMENT_INVALID_OPCODE()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FRAGMENT_INVALID_OPCODE</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;FRAGMENT_INVALID_OPCODE()</pre>
+<div class="block">Fragment sent but opcode was not 0.</div>
+</li>
+</ul>
+<a id="localizableENDPOINT_EXCEPTION_FROM_ON_ERROR(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableENDPOINT_EXCEPTION_FROM_ON_ERROR</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableENDPOINT_EXCEPTION_FROM_ON_ERROR&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="ENDPOINT_EXCEPTION_FROM_ON_ERROR(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENDPOINT_EXCEPTION_FROM_ON_ERROR</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ENDPOINT_EXCEPTION_FROM_ON_ERROR&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Exception thrown from onError method {0}.</div>
+</li>
+</ul>
+<a id="localizableILLEGAL_PROVIDER_CLASS_NAME(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableILLEGAL_PROVIDER_CLASS_NAME</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableILLEGAL_PROVIDER_CLASS_NAME&#8203;(java.lang.Object&nbsp;arg0)</pre>
+</li>
+</ul>
+<a id="ILLEGAL_PROVIDER_CLASS_NAME(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ILLEGAL_PROVIDER_CLASS_NAME</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ILLEGAL_PROVIDER_CLASS_NAME&#8203;(java.lang.Object&nbsp;arg0)</pre>
+<div class="block">Illegal provider-class name: {0}.</div>
+</li>
+</ul>
+<a id="localizableEXTENSION_EXCEPTION(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableEXTENSION_EXCEPTION</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableEXTENSION_EXCEPTION&#8203;(java.lang.Object&nbsp;arg0,
+                                                         java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="EXTENSION_EXCEPTION(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EXTENSION_EXCEPTION</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;EXTENSION_EXCEPTION&#8203;(java.lang.Object&nbsp;arg0,
+                                                   java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Extension ''{0}'' threw an exception during processOutgoing method invocation: "{1}".</div>
+</li>
+</ul>
+<a id="localizableCLASS_CHECKER_FORBIDDEN_RETURN_TYPE(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCLASS_CHECKER_FORBIDDEN_RETURN_TYPE</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCLASS_CHECKER_FORBIDDEN_RETURN_TYPE&#8203;(java.lang.Object&nbsp;arg0,
+                                                                         java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="CLASS_CHECKER_FORBIDDEN_RETURN_TYPE(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_CHECKER_FORBIDDEN_RETURN_TYPE</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;CLASS_CHECKER_FORBIDDEN_RETURN_TYPE&#8203;(java.lang.Object&nbsp;arg0,
+                                                                   java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Method: {0}.{1}: has got unsupported return type.</div>
+</li>
+</ul>
+<a id="localizableDATA_UNEXPECTED_LENGTH(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableDATA_UNEXPECTED_LENGTH</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableDATA_UNEXPECTED_LENGTH&#8203;(java.lang.Object&nbsp;arg0,
+                                                            java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="DATA_UNEXPECTED_LENGTH(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DATA_UNEXPECTED_LENGTH</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;DATA_UNEXPECTED_LENGTH&#8203;(java.lang.Object&nbsp;arg0,
+                                                      java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Data read ({0}) is not the expected size ({1}).</div>
+</li>
+</ul>
+<a id="localizableCONNECTION_NULL()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableCONNECTION_NULL</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableCONNECTION_NULL()</pre>
+</li>
+</ul>
+<a id="CONNECTION_NULL()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONNECTION_NULL</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;CONNECTION_NULL()</pre>
+<div class="block">Connection is null.</div>
+</li>
+</ul>
+<a id="localizableENDPOINT_WRONG_PARAMS(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>localizableENDPOINT_WRONG_PARAMS</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;localizableENDPOINT_WRONG_PARAMS&#8203;(java.lang.Object&nbsp;arg0,
+                                                           java.lang.Object&nbsp;arg1)</pre>
+</li>
+</ul>
+<a id="ENDPOINT_WRONG_PARAMS(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ENDPOINT_WRONG_PARAMS</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;ENDPOINT_WRONG_PARAMS&#8203;(java.lang.Object&nbsp;arg0,
+                                                     java.lang.Object&nbsp;arg1)</pre>
+<div class="block">Method: {0}.{1}: has got wrong number of params.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalizationMessages.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/l10n/Localizer.html b/apidocs/1.20/org/glassfish/tyrus/core/l10n/Localizer.html
new file mode 100644
index 00000000..e73b398d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/l10n/Localizer.html
@@ -0,0 +1,340 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Localizer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Localizer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Localizer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.l10n</a></div>
+<h2 title="Class Localizer" class="title">Class Localizer</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.l10n.Localizer</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Localizer</span>
+extends java.lang.Object</pre>
+<div class="block">Localizes the <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n"><code>Localizable</code></a> into a message by using a configured <code>Locale</code>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>WS Development Team</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Localizer</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Locale)">Localizer</a></span>&#8203;(java.util.Locale&nbsp;l)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.util.Locale</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocale()">getLocale</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#localize(org.glassfish.tyrus.core.l10n.Localizable)">localize</a></span>&#8203;(<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;l)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Localizer</h4>
+<pre>public&nbsp;Localizer()</pre>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.util.Locale)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Localizer</h4>
+<pre>public&nbsp;Localizer&#8203;(java.util.Locale&nbsp;l)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getLocale()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLocale</h4>
+<pre class="methodSignature">public&nbsp;java.util.Locale&nbsp;getLocale()</pre>
+</li>
+</ul>
+<a id="localize(org.glassfish.tyrus.core.l10n.Localizable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>localize</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;localize&#8203;(<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;l)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Localizer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/Localizable.html b/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/Localizable.html
new file mode 100644
index 00000000..d611bf80
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/Localizable.html
@@ -0,0 +1,731 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.l10n.Localizable (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.l10n.Localizable (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.l10n.Localizable" class="title">Uses of Interface<br>org.glassfish.tyrus.core.l10n.Localizable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.l10n">org.glassfish.tyrus.core.l10n</a></th>
+<td class="colLast">
+<div class="block">Common internal localization utility classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.l10n">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.l10n</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../package-summary.html">org.glassfish.tyrus.core.l10n</a> that implement <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessage</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.l10n</a> that return <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizableMessageFactory.</span><code><span class="memberNameLink"><a href="../LocalizableMessageFactory.html#getMessage(java.lang.String,java.lang.Object...)">getMessage</a></span>&#8203;(java.lang.String&nbsp;key,
+          java.lang.Object...&nbsp;args)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableAPPLICATION_DATA_TOO_LONG(java.lang.Object)">localizableAPPLICATION_DATA_TOO_LONG</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableARGUMENT_NOT_NULL(java.lang.Object)">localizableARGUMENT_NOT_NULL</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableAUTHENTICATION_CREATE_AUTH_HEADER_FAILED()">localizableAUTHENTICATION_CREATE_AUTH_HEADER_FAILED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableAUTHENTICATION_CREDENTIALS_MISSING()">localizableAUTHENTICATION_CREDENTIALS_MISSING</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableAUTHENTICATION_DIGEST_NO_SUCH_ALG()">localizableAUTHENTICATION_DIGEST_NO_SUCH_ALG</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableAUTHENTICATION_DIGEST_QOP_UNSUPPORTED(java.lang.Object)">localizableAUTHENTICATION_DIGEST_QOP_UNSUPPORTED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableAUTHENTICATION_FAILED()">localizableAUTHENTICATION_FAILED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableBINARY_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">localizableBINARY_MESSAGE_HANDLER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableBINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">localizableBINARY_MESSAGE_OUT_OF_ORDER</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableBUFFER_OVERFLOW()">localizableBUFFER_OVERFLOW</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_ADD_MESSAGE_HANDLER_ERROR</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                  java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCLASS_CHECKER_FORBIDDEN_RETURN_TYPE(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_FORBIDDEN_RETURN_TYPE</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                              java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_CLOSE_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                         java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_ERROR_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                         java.lang.Object&nbsp;arg1,
+                                                         java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM(java.lang.Object,java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_FORBIDDEN_WEB_SOCKET_OPEN_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                        java.lang.Object&nbsp;arg1,
+                                                        java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCLASS_CHECKER_MANDATORY_PARAM_MISSING(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_MANDATORY_PARAM_MISSING</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS(java.lang.Object,java.lang.Object)">localizableCLASS_CHECKER_MULTIPLE_IDENTICAL_PARAMS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                  java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCLASS_NOT_INSTANTIATED(java.lang.Object)">localizableCLASS_NOT_INSTANTIATED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCLIENT_CANNOT_CONNECT(java.lang.Object)">localizableCLIENT_CANNOT_CONNECT</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCOMPONENT_PROVIDER_NOT_FOUND(java.lang.Object)">localizableCOMPONENT_PROVIDER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCOMPONENT_PROVIDER_THREW_EXCEPTION(java.lang.Object)">localizableCOMPONENT_PROVIDER_THREW_EXCEPTION</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCONNECTION_HAS_BEEN_CLOSED()">localizableCONNECTION_HAS_BEEN_CLOSED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCONNECTION_NULL()">localizableCONNECTION_NULL</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCONTROL_FRAME_FRAGMENTED()">localizableCONTROL_FRAME_FRAGMENTED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableCONTROL_FRAME_LENGTH()">localizableCONTROL_FRAME_LENGTH</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableDATA_UNEXPECTED_LENGTH(java.lang.Object,java.lang.Object)">localizableDATA_UNEXPECTED_LENGTH</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                 java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableDEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR(java.lang.Object,java.lang.Object,java.lang.Object)">localizableDEPENDENT_CLASS_OF_PROVIDER_FORMAT_ERROR</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                   java.lang.Object&nbsp;arg1,
+                                                   java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableDEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object,java.lang.Object)">localizableDEPENDENT_CLASS_OF_PROVIDER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                java.lang.Object&nbsp;arg1,
+                                                java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableENCODING_FAILED()">localizableENCODING_FAILED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableENDPOINT_ANNOTATION_NOT_FOUND(java.lang.Object,java.lang.Object)">localizableENDPOINT_ANNOTATION_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                        java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableENDPOINT_EXCEPTION_FROM_ON_ERROR(java.lang.Object)">localizableENDPOINT_EXCEPTION_FROM_ON_ERROR</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">localizableENDPOINT_MAX_MESSAGE_SIZE_TOO_LONG</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                             java.lang.Object&nbsp;arg1,
+                                             java.lang.Object&nbsp;arg2,
+                                             java.lang.Object&nbsp;arg3)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableENDPOINT_MULTIPLE_METHODS(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">localizableENDPOINT_MULTIPLE_METHODS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                    java.lang.Object&nbsp;arg1,
+                                    java.lang.Object&nbsp;arg2,
+                                    java.lang.Object&nbsp;arg3)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableENDPOINT_MULTIPLE_SESSION_PARAM(java.lang.Object)">localizableENDPOINT_MULTIPLE_SESSION_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableENDPOINT_UNHANDLED_EXCEPTION(java.lang.Object)">localizableENDPOINT_UNHANDLED_EXCEPTION</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableENDPOINT_UNKNOWN_PARAMS(java.lang.Object,java.lang.Object,java.lang.Object)">localizableENDPOINT_UNKNOWN_PARAMS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                  java.lang.Object&nbsp;arg1,
+                                  java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableENDPOINT_WRONG_PARAMS(java.lang.Object,java.lang.Object)">localizableENDPOINT_WRONG_PARAMS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableENDPOINT_WRONG_PATH_PARAM(java.lang.Object,java.lang.Object)">localizableENDPOINT_WRONG_PATH_PARAM</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                    java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableEQUIVALENT_PATHS(java.lang.Object,java.lang.Object)">localizableEQUIVALENT_PATHS</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                           java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">localizableERROR_CAUGHT_WHILE_LOADING_SPI_PROVIDERS</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableEXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS()">localizableEXCEPTION_CAUGHT_WHILE_LOADING_SPI_PROVIDERS</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableEXTENSION_EXCEPTION(java.lang.Object,java.lang.Object)">localizableEXTENSION_EXCEPTION</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                              java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableFRAGMENT_INVALID_OPCODE()">localizableFRAGMENT_INVALID_OPCODE</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableFRAME_WRITE_CANCELLED()">localizableFRAME_WRITE_CANCELLED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableHANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP()">localizableHANDSHAKE_HTTP_REDIRECTION_INFINITE_LOOP</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableHANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION(java.lang.Object)">localizableHANDSHAKE_HTTP_REDIRECTION_MAX_REDIRECTION</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR(java.lang.Object)">localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_ERROR</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING()">localizableHANDSHAKE_HTTP_REDIRECTION_NEW_LOCATION_MISSING</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableHANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED(java.lang.Object)">localizableHANDSHAKE_HTTP_REDIRECTION_NOT_ENABLED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableHANDSHAKE_HTTP_RETRY_AFTER_MESSAGE()">localizableHANDSHAKE_HTTP_RETRY_AFTER_MESSAGE</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableHEADERS_MISSING()">localizableHEADERS_MISSING</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableILLEGAL_CONFIG_SYNTAX()">localizableILLEGAL_CONFIG_SYNTAX</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableILLEGAL_PROVIDER_CLASS_NAME(java.lang.Object)">localizableILLEGAL_PROVIDER_CLASS_NAME</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableILLEGAL_UTF_8_SEQUENCE()">localizableILLEGAL_UTF_8_SEQUENCE</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableINVALID_HEADER(java.lang.Object,java.lang.Object)">localizableINVALID_HEADER</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                         java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableINVALID_RESPONSE_CODE(java.lang.Object,java.lang.Object)">localizableINVALID_RESPONSE_CODE</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableIOEXCEPTION_CLOSE()">localizableIOEXCEPTION_CLOSE</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableMAX_SESSIONS_PER_APP_EXCEEDED()">localizableMAX_SESSIONS_PER_APP_EXCEEDED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableMAX_SESSIONS_PER_ENDPOINT_EXCEEDED()">localizableMAX_SESSIONS_PER_ENDPOINT_EXCEEDED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableMAX_SESSIONS_PER_REMOTEADDR_EXCEEDED()">localizableMAX_SESSIONS_PER_REMOTEADDR_EXCEEDED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableMESSAGE_HANDLER_ALREADY_REGISTERED_BINARY()">localizableMESSAGE_HANDLER_ALREADY_REGISTERED_BINARY</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableMESSAGE_HANDLER_ALREADY_REGISTERED_PONG()">localizableMESSAGE_HANDLER_ALREADY_REGISTERED_PONG</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TEXT()">localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TEXT</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TYPE(java.lang.Object)">localizableMESSAGE_HANDLER_ALREADY_REGISTERED_TYPE</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableMESSAGE_HANDLER_DECODER_NOT_REGISTERED(java.lang.Object)">localizableMESSAGE_HANDLER_DECODER_NOT_REGISTERED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableMESSAGE_HANDLER_ILLEGAL_ARGUMENT(java.lang.Object)">localizableMESSAGE_HANDLER_ILLEGAL_ARGUMENT</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableMESSAGE_HANDLER_PARTIAL_INVALID_TYPE(java.lang.Object)">localizableMESSAGE_HANDLER_PARTIAL_INVALID_TYPE</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableMESSAGE_HANDLER_WHOLE_OR_PARTIAL()">localizableMESSAGE_HANDLER_WHOLE_OR_PARTIAL</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableMESSAGE_TOO_LONG(java.lang.Object,java.lang.Object)">localizableMESSAGE_TOO_LONG</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                           java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableNO_DECODER_FOUND()">localizableNO_DECODER_FOUND</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableORIGIN_NOT_VERIFIED()">localizableORIGIN_NOT_VERIFIED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizablePARTIAL_BINARY_MESSAGE_OUT_OF_ORDER(java.lang.Object)">localizablePARTIAL_BINARY_MESSAGE_OUT_OF_ORDER</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizablePARTIAL_MESSAGE_BUFFER_OVERFLOW()">localizablePARTIAL_MESSAGE_BUFFER_OVERFLOW</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizablePARTIAL_TEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">localizablePARTIAL_TEXT_MESSAGE_OUT_OF_ORDER</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizablePROVIDER_CLASS_COULD_NOT_BE_LOADED(java.lang.Object,java.lang.Object,java.lang.Object)">localizablePROVIDER_CLASS_COULD_NOT_BE_LOADED</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                             java.lang.Object&nbsp;arg1,
+                                             java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizablePROVIDER_COULD_NOT_BE_CREATED(java.lang.Object,java.lang.Object,java.lang.Object)">localizablePROVIDER_COULD_NOT_BE_CREATED</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                        java.lang.Object&nbsp;arg1,
+                                        java.lang.Object&nbsp;arg2)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizablePROVIDER_NOT_FOUND(java.lang.Object,java.lang.Object)">localizablePROVIDER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                             java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableRSV_INCORRECTLY_SET()">localizableRSV_INCORRECTLY_SET</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableSEC_KEY_INVALID_LENGTH(java.lang.Object)">localizableSEC_KEY_INVALID_LENGTH</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableSEC_KEY_INVALID_SERVER()">localizableSEC_KEY_INVALID_SERVER</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableSEC_KEY_NULL_NOT_ALLOWED()">localizableSEC_KEY_NULL_NOT_ALLOWED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableSEND_MESSAGE_INFRAGMENT()">localizableSEND_MESSAGE_INFRAGMENT</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableSESSION_CLOSED_IDLE_TIMEOUT()">localizableSESSION_CLOSED_IDLE_TIMEOUT</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableSOCKET_NOT_CONNECTED()">localizableSOCKET_NOT_CONNECTED</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableTEXT_MESSAGE_HANDLER_NOT_FOUND(java.lang.Object)">localizableTEXT_MESSAGE_HANDLER_NOT_FOUND</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableTEXT_MESSAGE_OUT_OF_ORDER(java.lang.Object)">localizableTEXT_MESSAGE_OUT_OF_ORDER</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableUNEXPECTED_END_FRAGMENT()">localizableUNEXPECTED_END_FRAGMENT</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableUNEXPECTED_ERROR_CONNECTION_CLOSE()">localizableUNEXPECTED_ERROR_CONNECTION_CLOSE</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableUNEXPECTED_STATE(java.lang.Object)">localizableUNEXPECTED_STATE</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableUNHANDLED_TEXT_MESSAGE(java.lang.Object)">localizableUNHANDLED_TEXT_MESSAGE</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableURI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT(java.lang.Object,java.lang.Object)">localizableURI_COMPONENT_ENCODED_OCTET_INVALID_DIGIT</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                                    java.lang.Object&nbsp;arg1)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableURI_COMPONENT_ENCODED_OCTET_MALFORMED(java.lang.Object)">localizableURI_COMPONENT_ENCODED_OCTET_MALFORMED</a></span>&#8203;(java.lang.Object&nbsp;arg0)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">LocalizationMessages.</span><code><span class="memberNameLink"><a href="../LocalizationMessages.html#localizableURI_COMPONENT_INVALID_CHARACTER(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)">localizableURI_COMPONENT_INVALID_CHARACTER</a></span>&#8203;(java.lang.Object&nbsp;arg0,
+                                          java.lang.Object&nbsp;arg1,
+                                          java.lang.Object&nbsp;arg2,
+                                          java.lang.Object&nbsp;arg3)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.l10n</a> with parameters of type <a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Localizer.</span><code><span class="memberNameLink"><a href="../Localizer.html#localize(org.glassfish.tyrus.core.l10n.Localizable)">localize</a></span>&#8203;(<a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>&nbsp;l)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessage.html b/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessage.html
new file mode 100644
index 00000000..c3402087
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessage.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessage (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessage (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessage" class="title">Uses of Class<br>org.glassfish.tyrus.core.l10n.LocalizableMessage</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.l10n.LocalizableMessage</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessageFactory.html b/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessageFactory.html
new file mode 100644
index 00000000..02f357cd
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessageFactory.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessageFactory (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessageFactory (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LocalizableMessageFactory.html" title="class in org.glassfish.tyrus.core.l10n">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessageFactory" class="title">Uses of Class<br>org.glassfish.tyrus.core.l10n.LocalizableMessageFactory</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.l10n.LocalizableMessageFactory</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LocalizableMessageFactory.html" title="class in org.glassfish.tyrus.core.l10n">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/LocalizationMessages.html b/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/LocalizationMessages.html
new file mode 100644
index 00000000..2e34078a
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/LocalizationMessages.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.l10n.LocalizationMessages (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.l10n.LocalizationMessages (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.l10n.LocalizationMessages" class="title">Uses of Class<br>org.glassfish.tyrus.core.l10n.LocalizationMessages</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.l10n.LocalizationMessages</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/Localizer.html b/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/Localizer.html
new file mode 100644
index 00000000..ed0283a9
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/Localizer.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.l10n.Localizer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.l10n.Localizer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Localizer.html" title="class in org.glassfish.tyrus.core.l10n">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.l10n.Localizer" class="title">Uses of Class<br>org.glassfish.tyrus.core.l10n.Localizer</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.l10n.Localizer</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Localizer.html" title="class in org.glassfish.tyrus.core.l10n">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/l10n/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/core/l10n/package-summary.html
new file mode 100644
index 00000000..d0c80cf5
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/l10n/package-summary.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.l10n (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.l10n (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.core.l10n</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Common internal localization utility classes.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a></th>
+<td class="colLast">
+<div class="block">Localizable message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessage</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="LocalizableMessageFactory.html" title="class in org.glassfish.tyrus.core.l10n">LocalizableMessageFactory</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n">LocalizationMessages</a></th>
+<td class="colLast">
+<div class="block">Defines string formatting method for each constant in the resource file</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Localizer.html" title="class in org.glassfish.tyrus.core.l10n">Localizer</a></th>
+<td class="colLast">
+<div class="block">Localizes the <a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n"><code>Localizable</code></a> into a message by using a configured <code>Locale</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/l10n/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/core/l10n/package-tree.html
new file mode 100644
index 00000000..3d6b00a4
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/l10n/package-tree.html
@@ -0,0 +1,174 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.l10n Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.l10n Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.core.l10n</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.core.l10n.<a href="LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">LocalizableMessage</span></a> (implements org.glassfish.tyrus.core.l10n.<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.l10n.<a href="LocalizableMessageFactory.html" title="class in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">LocalizableMessageFactory</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.l10n.<a href="LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">LocalizationMessages</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.l10n.<a href="Localizer.html" title="class in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">Localizer</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.l10n.<a href="Localizable.html" title="interface in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">Localizable</span></a></li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/l10n/package-use.html b/apidocs/1.20/org/glassfish/tyrus/core/l10n/package-use.html
new file mode 100644
index 00000000..48f78260
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/l10n/package-use.html
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.l10n (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.l10n (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.core.l10n" class="title">Uses of Package<br>org.glassfish.tyrus.core.l10n</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.core.l10n</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.l10n">org.glassfish.tyrus.core.l10n</a></th>
+<td class="colLast">
+<div class="block">Common internal localization utility classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.l10n">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.l10n</a> used by <a href="package-summary.html">org.glassfish.tyrus.core.l10n</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Localizable.html#org.glassfish.tyrus.core.l10n">Localizable</a></th>
+<td class="colLast">
+<div class="block">Localizable message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html
new file mode 100644
index 00000000..27bb0b7e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html
@@ -0,0 +1,407 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ApplicationEventListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ApplicationEventListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ApplicationEventListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.monitoring</a></div>
+<h2 title="Interface ApplicationEventListener" class="title">Interface ApplicationEventListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">@Beta</a>
+public interface <span class="typeNameLabel">ApplicationEventListener</span></pre>
+<div class="block">Listens to application-level events that are interesting for monitoring. Only one listener per application can be
+ registered.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Petr Janouch</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_EVENT_LISTENER">APPLICATION_EVENT_LISTENER</a></span></code></th>
+<td class="colLast">
+<div class="block">A key used for registering a application event listener implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#NO_OP">NO_OP</a></span></code></th>
+<td class="colLast">
+<div class="block">An instance of @ApplicationEventListener that does not do anything.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onApplicationDestroyed()">onApplicationDestroyed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Called when the application has been destroyed.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onApplicationInitialized(java.lang.String)">onApplicationInitialized</a></span>&#8203;(java.lang.String&nbsp;applicationName)</code></th>
+<td class="colLast">
+<div class="block">Called when the application has been initialized.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onEndpointRegistered(java.lang.String,java.lang.Class)">onEndpointRegistered</a></span>&#8203;(java.lang.String&nbsp;endpointPath,
+                    java.lang.Class&lt;?&gt;&nbsp;endpointClass)</code></th>
+<td class="colLast">
+<div class="block">Called when an endpoint has been registered.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onEndpointUnregistered(java.lang.String)">onEndpointUnregistered</a></span>&#8203;(java.lang.String&nbsp;endpointPath)</code></th>
+<td class="colLast">
+<div class="block">Called when an endpoint has been unregistered.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="APPLICATION_EVENT_LISTENER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_EVENT_LISTENER</h4>
+<pre>static final&nbsp;java.lang.String APPLICATION_EVENT_LISTENER</pre>
+<div class="block">A key used for registering a application event listener implementation.
+ <p>
+ For monitoring in Grizzly server an instance should be passed to the server in server properties:
+ <pre>
+     serverProperties.put(ApplicationEventListener.APPLICATION_EVENT_LISTENER, new MyApplicationEventListener());
+ </pre>
+ For use in servlet container the class name should be passed as a context parameter in web.xml:
+ <pre><code>
+     &lt;context-param&gt;
+         &lt;param-name&gt;org.glassfish.tyrus.core.monitoring.ApplicationEventListener&lt;/param-name&gt;
+         &lt;param-value&gt;com.acme.MyApplicationEventListener&lt;/param-value&gt;
+     &lt;/context-param&gt;</code></pre></div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.glassfish.tyrus.core.monitoring.ApplicationEventListener.APPLICATION_EVENT_LISTENER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="NO_OP">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NO_OP</h4>
+<pre>static final&nbsp;<a href="ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a> NO_OP</pre>
+<div class="block">An instance of @ApplicationEventListener that does not do anything.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onApplicationInitialized(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onApplicationInitialized</h4>
+<pre class="methodSignature">void&nbsp;onApplicationInitialized&#8203;(java.lang.String&nbsp;applicationName)</pre>
+<div class="block">Called when the application has been initialized.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>applicationName</code> - name of the initialized application.</dd>
+</dl>
+</li>
+</ul>
+<a id="onApplicationDestroyed()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onApplicationDestroyed</h4>
+<pre class="methodSignature">void&nbsp;onApplicationDestroyed()</pre>
+<div class="block">Called when the application has been destroyed.</div>
+</li>
+</ul>
+<a id="onEndpointRegistered(java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onEndpointRegistered</h4>
+<pre class="methodSignature"><a href="EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;onEndpointRegistered&#8203;(java.lang.String&nbsp;endpointPath,
+                                           java.lang.Class&lt;?&gt;&nbsp;endpointClass)</pre>
+<div class="block">Called when an endpoint has been registered.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointPath</code> - the path the endpoint has been registered on.</dd>
+<dd><code>endpointClass</code> - class of the registered endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>endpoint event listener for registered endpoint.</dd>
+</dl>
+</li>
+</ul>
+<a id="onEndpointUnregistered(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onEndpointUnregistered</h4>
+<pre class="methodSignature">void&nbsp;onEndpointUnregistered&#8203;(java.lang.String&nbsp;endpointPath)</pre>
+<div class="block">Called when an endpoint has been unregistered.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointPath</code> - the path the endpoint has been registered on.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ApplicationEventListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/monitoring/EndpointEventListener.html b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/EndpointEventListener.html
new file mode 100644
index 00000000..dd11d936
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/EndpointEventListener.html
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>EndpointEventListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EndpointEventListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EndpointEventListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.monitoring</a></div>
+<h2 title="Interface EndpointEventListener" class="title">Interface EndpointEventListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">@Beta</a>
+public interface <span class="typeNameLabel">EndpointEventListener</span></pre>
+<div class="block">Listens to endpoint-level events that are interesting for monitoring.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Petr Janouch</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#NO_OP">NO_OP</a></span></code></th>
+<td class="colLast">
+<div class="block">An instance of @EndpointEventListener that does not do anything.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onError(java.lang.String,java.lang.Throwable)">onError</a></span>&#8203;(java.lang.String&nbsp;sessionId,
+       java.lang.Throwable&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Called when an error has occurred.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onSessionClosed(java.lang.String)">onSessionClosed</a></span>&#8203;(java.lang.String&nbsp;sessionId)</code></th>
+<td class="colLast">
+<div class="block">Called when a session has been closed.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onSessionOpened(java.lang.String)">onSessionOpened</a></span>&#8203;(java.lang.String&nbsp;sessionId)</code></th>
+<td class="colLast">
+<div class="block">Called when a session has been opened.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="NO_OP">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NO_OP</h4>
+<pre>static final&nbsp;<a href="EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a> NO_OP</pre>
+<div class="block">An instance of @EndpointEventListener that does not do anything.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onSessionOpened(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onSessionOpened</h4>
+<pre class="methodSignature"><a href="MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a>&nbsp;onSessionOpened&#8203;(java.lang.String&nbsp;sessionId)</pre>
+<div class="block">Called when a session has been opened.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - an ID of the newly opened session.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>listener that listens for message-level events.</dd>
+</dl>
+</li>
+</ul>
+<a id="onSessionClosed(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onSessionClosed</h4>
+<pre class="methodSignature">void&nbsp;onSessionClosed&#8203;(java.lang.String&nbsp;sessionId)</pre>
+<div class="block">Called when a session has been closed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - an ID of the closed session.</dd>
+</dl>
+</li>
+</ul>
+<a id="onError(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onError</h4>
+<pre class="methodSignature">void&nbsp;onError&#8203;(java.lang.String&nbsp;sessionId,
+             java.lang.Throwable&nbsp;t)</pre>
+<div class="block">Called when an error has occurred.
+ <p>
+ Errors that occur either during <a href="../../../../../javax/websocket/Endpoint.html#onOpen(javax.websocket.Session,javax.websocket.EndpointConfig)"><code>Endpoint.onOpen(javax.websocket.Session,
+ javax.websocket.EndpointConfig)</code></a>, <a href="../../../../../javax/websocket/Endpoint.html#onClose(javax.websocket.Session,javax.websocket.CloseReason)"><code>Endpoint.onClose(javax.websocket.Session,
+ javax.websocket.CloseReason)</code></a> and their annotated equivalent or when handling an incoming message, cause this
+ listener to be called. It corresponds to the event of invocation of <a href="../../../../../javax/websocket/Endpoint.html#onError(javax.websocket.Session,java.lang.Throwable)"><code>(javax.websocket.Session, Throwable)</code></a> and its annotated equivalent.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sessionId</code> - an ID of the session on which the error occurred.</dd>
+<dd><code>t</code> - throwable that has been thrown.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EndpointEventListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/monitoring/MessageEventListener.html b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/MessageEventListener.html
new file mode 100644
index 00000000..fdc27e68
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/MessageEventListener.html
@@ -0,0 +1,337 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MessageEventListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MessageEventListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageEventListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.monitoring</a></div>
+<h2 title="Interface MessageEventListener" class="title">Interface MessageEventListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="../Beta.html" title="annotation in org.glassfish.tyrus.core">@Beta</a>
+public interface <span class="typeNameLabel">MessageEventListener</span></pre>
+<div class="block">Listens for message-level events that are interesting for monitoring.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Petr Janouch</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#NO_OP">NO_OP</a></span></code></th>
+<td class="colLast">
+<div class="block">An instance of @MessageEventListener that does not do anything.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onFrameReceived(org.glassfish.tyrus.core.frame.TyrusFrame.FrameType,long)">onFrameReceived</a></span>&#8203;(<a href="../frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&nbsp;frameType,
+               long&nbsp;payloadLength)</code></th>
+<td class="colLast">
+<div class="block">Called when a frame has been received.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onFrameSent(org.glassfish.tyrus.core.frame.TyrusFrame.FrameType,long)">onFrameSent</a></span>&#8203;(<a href="../frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&nbsp;frameType,
+           long&nbsp;payloadLength)</code></th>
+<td class="colLast">
+<div class="block">Called when a frame has been sent.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="NO_OP">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NO_OP</h4>
+<pre>static final&nbsp;<a href="MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a> NO_OP</pre>
+<div class="block">An instance of @MessageEventListener that does not do anything.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onFrameSent(org.glassfish.tyrus.core.frame.TyrusFrame.FrameType,long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onFrameSent</h4>
+<pre class="methodSignature">void&nbsp;onFrameSent&#8203;(<a href="../frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&nbsp;frameType,
+                 long&nbsp;payloadLength)</pre>
+<div class="block">Called when a frame has been sent.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frameType</code> - type of the frame.</dd>
+<dd><code>payloadLength</code> - length of the frame payload.</dd>
+</dl>
+</li>
+</ul>
+<a id="onFrameReceived(org.glassfish.tyrus.core.frame.TyrusFrame.FrameType,long)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onFrameReceived</h4>
+<pre class="methodSignature">void&nbsp;onFrameReceived&#8203;(<a href="../frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame">TyrusFrame.FrameType</a>&nbsp;frameType,
+                     long&nbsp;payloadLength)</pre>
+<div class="block">Called when a frame has been received.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>frameType</code> - type of the frame.</dd>
+<dd><code>payloadLength</code> - length of the frame payload.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageEventListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/monitoring/class-use/ApplicationEventListener.html b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/class-use/ApplicationEventListener.html
new file mode 100644
index 00000000..f486caf0
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/class-use/ApplicationEventListener.html
@@ -0,0 +1,245 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.monitoring.ApplicationEventListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.monitoring.ApplicationEventListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.monitoring.ApplicationEventListener" class="title">Uses of Interface<br>org.glassfish.tyrus.core.monitoring.ApplicationEventListener</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.monitoring">org.glassfish.tyrus.core.monitoring</a></th>
+<td class="colLast">
+<div class="block">Monitoring interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a> in <a href="../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocketEngine.html#getApplicationEventListener()">getApplicationEventListener</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get <a href="../ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><code>ApplicationEventListener</code></a> related to current <a href="../../TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.</span><code><span class="memberNameLink"><a href="../../TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#applicationEventListener(org.glassfish.tyrus.core.monitoring.ApplicationEventListener)">applicationEventListener</a></span>&#8203;(<a href="../ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a>&nbsp;applicationEventListener)</code></th>
+<td class="colLast">
+<div class="block">Set <a href="../ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><code>ApplicationEventListener</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.monitoring">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.monitoring</a></h3>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.glassfish.tyrus.core.monitoring</a> declared as <a href="../ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ApplicationEventListener.</span><code><span class="memberNameLink"><a href="../ApplicationEventListener.html#NO_OP">NO_OP</a></span></code></th>
+<td class="colLast">
+<div class="block">An instance of @ApplicationEventListener that does not do anything.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/monitoring/class-use/EndpointEventListener.html b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/class-use/EndpointEventListener.html
new file mode 100644
index 00000000..e9550fe0
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/class-use/EndpointEventListener.html
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.monitoring.EndpointEventListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.monitoring.EndpointEventListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.monitoring.EndpointEventListener" class="title">Uses of Interface<br>org.glassfish.tyrus.core.monitoring.EndpointEventListener</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.monitoring">org.glassfish.tyrus.core.monitoring</a></th>
+<td class="colLast">
+<div class="block">Monitoring interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a> in <a href="../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../../AnnotatedEndpoint.html#fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener)">fromClass</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedClass,
+         <a href="../../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+         boolean&nbsp;isServerEndpoint,
+         int&nbsp;incomingBufferSize,
+         <a href="../../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+         <a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AnnotatedEndpoint.</span><code><span class="memberNameLink"><a href="../../AnnotatedEndpoint.html#fromClass(java.lang.Class,org.glassfish.tyrus.core.ComponentProviderService,boolean,int,org.glassfish.tyrus.core.ErrorCollector,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.util.Set)">fromClass</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedClass,
+         <a href="../../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+         boolean&nbsp;isServerEndpoint,
+         int&nbsp;incomingBufferSize,
+         <a href="../../ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;collector,
+         <a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+         java.util.Set&lt;<a href="../../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> from class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../TyrusEndpointWrapper.html#%3Cinit%3E(java.lang.Class,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../../../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../../../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../../cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for class that extends <a href="../../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../TyrusEndpointWrapper.html#%3Cinit%3E(javax.websocket.Endpoint,javax.websocket.EndpointConfig,org.glassfish.tyrus.core.ComponentProviderService,javax.websocket.WebSocketContainer,java.lang.String,javax.websocket.server.ServerEndpointConfig.Configurator,org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener,org.glassfish.tyrus.core.cluster.ClusterContext,org.glassfish.tyrus.core.monitoring.EndpointEventListener,java.lang.Boolean)">TyrusEndpointWrapper</a></span>&#8203;(<a href="../../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpoint,
+                    <a href="../../../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket">EndpointConfig</a>&nbsp;configuration,
+                    <a href="../../ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a>&nbsp;componentProvider,
+                    <a href="../../../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>&nbsp;container,
+                    java.lang.String&nbsp;contextPath,
+                    <a href="../../../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server">ServerEndpointConfig.Configurator</a>&nbsp;configurator,
+                    <a href="../../TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a>&nbsp;sessionListener,
+                    <a href="../../cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster">ClusterContext</a>&nbsp;clusterContext,
+                    <a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a>&nbsp;endpointEventListener,
+                    java.lang.Boolean&nbsp;parallelBroadcastEnabled)</code></th>
+<td class="colLast">
+<div class="block">Create <a href="../../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><code>TyrusEndpointWrapper</code></a> for <a href="../../../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> instance or <a href="../../AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><code>AnnotatedEndpoint</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.monitoring">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.monitoring</a></h3>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.glassfish.tyrus.core.monitoring</a> declared as <a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">EndpointEventListener.</span><code><span class="memberNameLink"><a href="../EndpointEventListener.html#NO_OP">NO_OP</a></span></code></th>
+<td class="colLast">
+<div class="block">An instance of @EndpointEventListener that does not do anything.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.monitoring</a> that return <a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ApplicationEventListener.</span><code><span class="memberNameLink"><a href="../ApplicationEventListener.html#onEndpointRegistered(java.lang.String,java.lang.Class)">onEndpointRegistered</a></span>&#8203;(java.lang.String&nbsp;endpointPath,
+                    java.lang.Class&lt;?&gt;&nbsp;endpointClass)</code></th>
+<td class="colLast">
+<div class="block">Called when an endpoint has been registered.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/monitoring/class-use/MessageEventListener.html b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/class-use/MessageEventListener.html
new file mode 100644
index 00000000..d9bb57fd
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/class-use/MessageEventListener.html
@@ -0,0 +1,245 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.monitoring.MessageEventListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.monitoring.MessageEventListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.monitoring.MessageEventListener" class="title">Uses of Interface<br>org.glassfish.tyrus.core.monitoring.MessageEventListener</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.monitoring">org.glassfish.tyrus.core.monitoring</a></th>
+<td class="colLast">
+<div class="block">Monitoring interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a> in <a href="../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../ProtocolHandler.html#setMessageEventListener(org.glassfish.tyrus.core.monitoring.MessageEventListener)">setMessageEventListener</a></span>&#8203;(<a href="../MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a>&nbsp;messageEventListener)</code></th>
+<td class="colLast">
+<div class="block">Set message event listener.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.monitoring">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.monitoring</a></h3>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.glassfish.tyrus.core.monitoring</a> declared as <a href="../MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageEventListener.</span><code><span class="memberNameLink"><a href="../MessageEventListener.html#NO_OP">NO_OP</a></span></code></th>
+<td class="colLast">
+<div class="block">An instance of @MessageEventListener that does not do anything.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.monitoring</a> that return <a href="../MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">EndpointEventListener.</span><code><span class="memberNameLink"><a href="../EndpointEventListener.html#onSessionOpened(java.lang.String)">onSessionOpened</a></span>&#8203;(java.lang.String&nbsp;sessionId)</code></th>
+<td class="colLast">
+<div class="block">Called when a session has been opened.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/monitoring/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/package-summary.html
new file mode 100644
index 00000000..ab8c38df
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/package-summary.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.monitoring (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.monitoring (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.core.monitoring</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Monitoring interfaces.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></th>
+<td class="colLast">
+<div class="block">Listens to application-level events that are interesting for monitoring.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></th>
+<td class="colLast">
+<div class="block">Listens to endpoint-level events that are interesting for monitoring.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring">MessageEventListener</a></th>
+<td class="colLast">
+<div class="block">Listens for message-level events that are interesting for monitoring.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/monitoring/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/package-tree.html
new file mode 100644
index 00000000..4b5b8abe
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/package-tree.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.monitoring Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.monitoring Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.core.monitoring</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.monitoring.<a href="ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><span class="typeNameLink">ApplicationEventListener</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.monitoring.<a href="EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><span class="typeNameLink">EndpointEventListener</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.monitoring.<a href="MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><span class="typeNameLink">MessageEventListener</span></a></li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/monitoring/package-use.html b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/package-use.html
new file mode 100644
index 00000000..4dd6a14c
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/monitoring/package-use.html
@@ -0,0 +1,238 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.monitoring (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.monitoring (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.core.monitoring" class="title">Uses of Package<br>org.glassfish.tyrus.core.monitoring</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.core.monitoring</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.monitoring">org.glassfish.tyrus.core.monitoring</a></th>
+<td class="colLast">
+<div class="block">Monitoring interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.monitoring</a> used by <a href="../package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ApplicationEventListener.html#org.glassfish.tyrus.core">ApplicationEventListener</a></th>
+<td class="colLast">
+<div class="block">Listens to application-level events that are interesting for monitoring.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/EndpointEventListener.html#org.glassfish.tyrus.core">EndpointEventListener</a></th>
+<td class="colLast">
+<div class="block">Listens to endpoint-level events that are interesting for monitoring.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageEventListener.html#org.glassfish.tyrus.core">MessageEventListener</a></th>
+<td class="colLast">
+<div class="block">Listens for message-level events that are interesting for monitoring.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.monitoring">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.monitoring</a> used by <a href="package-summary.html">org.glassfish.tyrus.core.monitoring</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ApplicationEventListener.html#org.glassfish.tyrus.core.monitoring">ApplicationEventListener</a></th>
+<td class="colLast">
+<div class="block">Listens to application-level events that are interesting for monitoring.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/EndpointEventListener.html#org.glassfish.tyrus.core.monitoring">EndpointEventListener</a></th>
+<td class="colLast">
+<div class="block">Listens to endpoint-level events that are interesting for monitoring.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageEventListener.html#org.glassfish.tyrus.core.monitoring">MessageEventListener</a></th>
+<td class="colLast">
+<div class="block">Listens for message-level events that are interesting for monitoring.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/core/package-summary.html
new file mode 100644
index 00000000..8a4ee985
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/package-summary.html
@@ -0,0 +1,553 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.core</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Core classes.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">BaseContainer.ShutDownCondition</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core">MaskingKeyGenerator</a></th>
+<td class="colLast">
+<div class="block">Can be implemented to generate masking keys.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core">RequestContext.Builder.IsUserInRoleDelegate</a></th>
+<td class="colLast">
+<div class="block">Is user in role delegate.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core">TyrusServerEndpointConfig</a></th>
+<td class="colLast">
+<div class="block">Configuration <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> enhanced
+ to offer tyrus specific attributes like maxSessions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core">AnnotatedEndpoint</a></th>
+<td class="colLast">
+<div class="block"><a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> descendant which represents deployed annotated endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></th>
+<td class="colLast">
+<div class="block">Base WebSocket container.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></th>
+<td class="colLast">
+<div class="block">Provides an instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core">ComponentProviderService</a></th>
+<td class="colLast">
+<div class="block">Provides an instance of component.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a></th>
+<td class="colLast">
+<div class="block">A <code>Logger</code> wrapper that gives logging records a common formatting and temporarily stores log
+ records and postpones their logging until they can be provided with a session ID.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core">DefaultComponentProvider</a></th>
+<td class="colLast">
+<div class="block">Provides instances using reflection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a></th>
+<td class="colLast">
+<div class="block">Used to collect deployment errors to present these to the user together.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">ExecutorServiceProvider</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></th>
+<td class="colLast">
+<div class="block">Class responsible for performing and validating handshake.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="MessageHandlerManager.html" title="class in org.glassfish.tyrus.core">MessageHandlerManager</a></th>
+<td class="colLast">
+<div class="block">Manages registered <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a>s and checks whether the new ones may be registered.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="OsgiRegistry.html" title="class in org.glassfish.tyrus.core">OsgiRegistry</a></th>
+<td class="colLast">
+<div class="block">Taken from Jersey 2.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ProtocolHandler.html" title="class in org.glassfish.tyrus.core">ProtocolHandler</a></th>
+<td class="colLast">
+<div class="block">Tyrus protocol handler.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ReflectionHelper.html" title="class in org.glassfish.tyrus.core">ReflectionHelper</a></th>
+<td class="colLast">
+<div class="block">Utility methods for Java reflection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a></th>
+<td class="colLast">
+<div class="block">A tuple consisting of a class and type of the class.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a></th>
+<td class="colLast">
+<div class="block">A tuple consisting of a concrete class, declaring class that declares a generic interface type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></th>
+<td class="colLast">
+<div class="block">Implementation of all possible request interfaces.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core">RequestContext.Builder</a></th>
+<td class="colLast">
+<div class="block"><a href="RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a> builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core">ServiceFinder</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">A simple service-provider lookup mechanism.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.DefaultServiceIteratorProvider</a></th>
+<td class="colLast">
+<div class="block">The default service iterator provider that looks up provider classes in
+ META-INF/services files.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a></th>
+<td class="colLast">
+<div class="block">Supports iteration of provider instances or classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="StrictUtf8.html" title="class in org.glassfish.tyrus.core">StrictUtf8</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="StrictUtf8.Parser.html" title="class in org.glassfish.tyrus.core">StrictUtf8.Parser</a></th>
+<td class="colLast">
+<div class="block">Surrogate parsing support.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></th>
+<td class="colLast">
+<div class="block">Wraps the registered application class.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a></th>
+<td class="colLast">
+<div class="block">Session listener.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="TyrusExtension.html" title="class in org.glassfish.tyrus.core">TyrusExtension</a></th>
+<td class="colLast">
+<div class="block">WebSocket <a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket"><code>Extension</code></a> implementation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core">TyrusExtension.TyrusParameter</a></th>
+<td class="colLast">
+<div class="block">WebSocket <a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket"><code>Extension.Parameter</code></a> implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="TyrusFuture.html" title="class in org.glassfish.tyrus.core">TyrusFuture</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Simple <code>Future</code> implementation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core">TyrusRemoteEndpoint</a></th>
+<td class="colLast">
+<div class="block">Wraps the <a href="../../../../javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket"><code>RemoteEndpoint</code></a> and represents the other side of the websocket connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></th>
+<td class="colLast">
+<div class="block">The TyrusServerEndpointConfig.Builder is a class used for creating
+ <a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core"><code>TyrusServerEndpointConfig.Builder</code></a> objects for the purposes of
+ deploying a server endpoint.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core">TyrusServerEndpointConfigurator</a></th>
+<td class="colLast">
+<div class="block">Tyrus' implementation of <a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><code>ServerEndpointConfig.Configurator</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="TyrusSession.html" title="class in org.glassfish.tyrus.core">TyrusSession</a></th>
+<td class="colLast">
+<div class="block">Implementation of the <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">TyrusUpgradeResponse</a></th>
+<td class="colLast">
+<div class="block">HTTP response representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core">TyrusWebSocket</a></th>
+<td class="colLast">
+<div class="block">Tyrus representation of web socket connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></th>
+<td class="colLast">
+<div class="block"><a href="../spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi"><code>WebSocketEngine</code></a> implementation, which handles server-side handshake, validation and data processing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></th>
+<td class="colLast">
+<div class="block"><a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Utils.html" title="class in org.glassfish.tyrus.core">Utils</a></th>
+<td class="colLast">
+<div class="block">Utility methods shared among Tyrus modules.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Utils.Stringifier.html" title="class in org.glassfish.tyrus.core">Utils.Stringifier</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Define to <code>String</code> conversion for various types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core">CloseReasons</a></th>
+<td class="colLast">
+<div class="block">Enum containing standard CloseReasons defined in RFC 6455, see chapter
+ <a href="https://tools.ietf.org/html/rfc6455#section-7.4.1">7.4.1 Defined Status Codes</a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></th>
+<td class="colLast">
+<div class="block">Tracing threshold - used for configuration granularity of information that will be sent in tracing headers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core">DebugContext.TracingType</a></th>
+<td class="colLast">
+<div class="block">Type of tracing - used for tracing configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core">DebugContext.Type</a></th>
+<td class="colLast">
+<div class="block">Type of the record - used to graphically distinguish these message types in the log.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></th>
+<td class="colLast">
+<div class="block">Result of <a href="TyrusEndpointWrapper.SessionListener.html#onOpen(org.glassfish.tyrus.core.TyrusSession)"><code>TyrusEndpointWrapper.SessionListener.onOpen(TyrusSession)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Version.html" title="enum in org.glassfish.tyrus.core">Version</a></th>
+<td class="colLast">
+<div class="block">TODO</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a></th>
+<td class="colLast">
+<div class="block"><code>Exception</code>, which describes the error, occurred during the handshake phase.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ProtocolException.html" title="class in org.glassfish.tyrus.core">ProtocolException</a></th>
+<td class="colLast">
+<div class="block">Represents issue with parsing or producing websocket frame.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Utf8DecodingException.html" title="class in org.glassfish.tyrus.core">Utf8DecodingException</a></th>
+<td class="colLast">
+<div class="block">TODO</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a></th>
+<td class="colLast">
+<div class="block">WebSocketException can be thrown during runtime (after handshake).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Error Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Error</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">ServiceConfigurationError</a></th>
+<td class="colLast">
+<div class="block">Taken from Jersey 2.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Beta.html" title="annotation in org.glassfish.tyrus.core">Beta</a></th>
+<td class="colLast">
+<div class="block">Marker of a public Tyrus API that is still in "beta" non-final version.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="MaxSessions.html" title="annotation in org.glassfish.tyrus.core">MaxSessions</a></th>
+<td class="colLast">
+<div class="block">This annotation may be used to annotate server endpoints as a optional annotation
+ to <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/core/package-tree.html
new file mode 100644
index 00000000..a14a909d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/package-tree.html
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.core</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">java.nio.charset.Charset (implements java.lang.Comparable&lt;T&gt;)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="StrictUtf8.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">StrictUtf8</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="ComponentProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ComponentProvider</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">DefaultComponentProvider</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="ComponentProviderService.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ComponentProviderService</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="DebugContext.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">DebugContext</span></a></li>
+<li class="circle">javax.websocket.<a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><span class="typeNameLink">Endpoint</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">AnnotatedEndpoint</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="ErrorCollector.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ErrorCollector</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ExecutorServiceProvider</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="BaseContainer.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">BaseContainer</span></a> (implements javax.websocket.<a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>)</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="Handshake.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">Handshake</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="MessageHandlerManager.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">MessageHandlerManager</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="OsgiRegistry.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">OsgiRegistry</span></a> (implements org.osgi.framework.SynchronousBundleListener)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="ProtocolHandler.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ProtocolHandler</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="ReflectionHelper.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ReflectionHelper</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ReflectionHelper.ClassTypePair</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ReflectionHelper.DeclaringClassInterfacePair</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ReflectionHelper.TypeClassPair</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="RequestContext.Builder.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">RequestContext.Builder</span></a></li>
+<li class="circle">javax.websocket.server.<a href="../../../../javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><span class="typeNameLink">ServerEndpointConfig.Configurator</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusServerEndpointConfigurator</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="ServiceFinder.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ServiceFinder</span></a>&lt;T&gt; (implements java.lang.Iterable&lt;T&gt;)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ServiceFinder.ServiceIteratorProvider</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ServiceFinder.DefaultServiceIteratorProvider</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="StrictUtf8.Parser.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">StrictUtf8.Parser</span></a></li>
+<li class="circle">java.lang.Throwable (implements java.io.Serializable)
+<ul>
+<li class="circle">java.lang.Error
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ServiceConfigurationError</span></a></li>
+</ul>
+</li>
+<li class="circle">java.lang.Exception
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="HandshakeException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">HandshakeException</span></a></li>
+<li class="circle">java.lang.RuntimeException
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="WebSocketException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">WebSocketException</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="ProtocolException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ProtocolException</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="Utf8DecodingException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">Utf8DecodingException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusEndpointWrapper</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusEndpointWrapper.SessionListener</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusExtension.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusExtension</span></a> (implements javax.websocket.<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>, java.io.Serializable)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusExtension.TyrusParameter</span></a> (implements javax.websocket.<a href="../../../../javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>, java.io.Serializable)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusFuture.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusFuture</span></a>&lt;T&gt; (implements java.util.concurrent.Future&lt;V&gt;)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusRemoteEndpoint</span></a> (implements javax.websocket.<a href="../../../../javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusServerEndpointConfig.Builder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusSession.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusSession</span></a> (implements org.glassfish.tyrus.core.cluster.<a href="cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusWebSocket</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusWebSocketEngine</span></a> (implements org.glassfish.tyrus.spi.<a href="../spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="../spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">UpgradeRequest</span></a> (implements javax.websocket.server.<a href="../../../../javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a>)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="RequestContext.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">RequestContext</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="../spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">UpgradeResponse</span></a> (implements javax.websocket.<a href="../../../../javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusUpgradeResponse</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="Utils.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">Utils</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="Utils.Stringifier.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">Utils.Stringifier</span></a>&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core"><span class="typeNameLink">BaseContainer.ShutDownCondition</span></a></li>
+<li class="circle">javax.websocket.<a href="../../../../javax/websocket/EndpointConfig.html" title="interface in javax.websocket"><span class="typeNameLink">EndpointConfig</span></a>
+<ul>
+<li class="circle">javax.websocket.server.<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><span class="typeNameLink">ServerEndpointConfig</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusServerEndpointConfig</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core"><span class="typeNameLink">MaskingKeyGenerator</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core"><span class="typeNameLink">RequestContext.Builder.IsUserInRoleDelegate</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="Beta.html" title="annotation in org.glassfish.tyrus.core"><span class="typeNameLink">Beta</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="MaxSessions.html" title="annotation in org.glassfish.tyrus.core"><span class="typeNameLink">MaxSessions</span></a> (implements java.lang.annotation.Annotation)</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="CloseReasons.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">CloseReasons</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">DebugContext.TracingThreshold</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">DebugContext.TracingType</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="DebugContext.Type.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">DebugContext.Type</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusEndpointWrapper.SessionListener.OnOpenResult</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="Version.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">Version</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/package-use.html b/apidocs/1.20/org/glassfish/tyrus/core/package-use.html
new file mode 100644
index 00000000..3c4172c8
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/package-use.html
@@ -0,0 +1,672 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.core (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.core" class="title">Uses of Package<br>org.glassfish.tyrus.core</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client.auth">org.glassfish.tyrus.client.auth</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.cluster">org.glassfish.tyrus.core.cluster</a></th>
+<td class="colLast">
+<div class="block">Cluster relates classes and interfaces.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.frame">org.glassfish.tyrus.core.frame</a></th>
+<td class="colLast">
+<div class="block">WebSocket frame representations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.monitoring">org.glassfish.tyrus.core.monitoring</a></th>
+<td class="colLast">
+<div class="block">Monitoring interfaces.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri">org.glassfish.tyrus.core.uri</a></th>
+<td class="colLast">
+<div class="block">URI matching.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.gf.cdi">org.glassfish.tyrus.gf.cdi</a></th>
+<td class="colLast">
+<div class="block">Tyrus CDI integration with Glassfish (and possibly other compatible containers).</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.gf.ejb">org.glassfish.tyrus.gf.ejb</a></th>
+<td class="colLast">
+<div class="block">Tyrus EJB integration with Glassfish (and possibly other compatible containers).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core</a> used by <a href="../client/package-summary.html">org.glassfish.tyrus.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/BaseContainer.html#org.glassfish.tyrus.client">BaseContainer</a></th>
+<td class="colLast">
+<div class="block">Base WebSocket container.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ExecutorServiceProvider.html#org.glassfish.tyrus.client">ExecutorServiceProvider</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/HandshakeException.html#org.glassfish.tyrus.client">HandshakeException</a></th>
+<td class="colLast">
+<div class="block"><code>Exception</code>, which describes the error, occurred during the handshake phase.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.client.auth">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core</a> used by <a href="../client/auth/package-summary.html">org.glassfish.tyrus.client.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Beta.html#org.glassfish.tyrus.client.auth">Beta</a></th>
+<td class="colLast">
+<div class="block">Marker of a public Tyrus API that is still in "beta" non-final version.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/HandshakeException.html#org.glassfish.tyrus.client.auth">HandshakeException</a></th>
+<td class="colLast">
+<div class="block"><code>Exception</code>, which describes the error, occurred during the handshake phase.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core</a> used by <a href="package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/AnnotatedEndpoint.html#org.glassfish.tyrus.core">AnnotatedEndpoint</a></th>
+<td class="colLast">
+<div class="block"><a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a> descendant which represents deployed annotated endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/BaseContainer.ShutDownCondition.html#org.glassfish.tyrus.core">BaseContainer.ShutDownCondition</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Beta.html#org.glassfish.tyrus.core">Beta</a></th>
+<td class="colLast">
+<div class="block">Marker of a public Tyrus API that is still in "beta" non-final version.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/CloseReasons.html#org.glassfish.tyrus.core">CloseReasons</a></th>
+<td class="colLast">
+<div class="block">Enum containing standard CloseReasons defined in RFC 6455, see chapter
+ <a href="https://tools.ietf.org/html/rfc6455#section-7.4.1">7.4.1 Defined Status Codes</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ComponentProvider.html#org.glassfish.tyrus.core">ComponentProvider</a></th>
+<td class="colLast">
+<div class="block">Provides an instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ComponentProviderService.html#org.glassfish.tyrus.core">ComponentProviderService</a></th>
+<td class="colLast">
+<div class="block">Provides an instance of component.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/DebugContext.html#org.glassfish.tyrus.core">DebugContext</a></th>
+<td class="colLast">
+<div class="block">A <code>Logger</code> wrapper that gives logging records a common formatting and temporarily stores log
+ records and postpones their logging until they can be provided with a session ID.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/DebugContext.TracingThreshold.html#org.glassfish.tyrus.core">DebugContext.TracingThreshold</a></th>
+<td class="colLast">
+<div class="block">Tracing threshold - used for configuration granularity of information that will be sent in tracing headers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/DebugContext.TracingType.html#org.glassfish.tyrus.core">DebugContext.TracingType</a></th>
+<td class="colLast">
+<div class="block">Type of tracing - used for tracing configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/DebugContext.Type.html#org.glassfish.tyrus.core">DebugContext.Type</a></th>
+<td class="colLast">
+<div class="block">Type of the record - used to graphically distinguish these message types in the log.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ErrorCollector.html#org.glassfish.tyrus.core">ErrorCollector</a></th>
+<td class="colLast">
+<div class="block">Used to collect deployment errors to present these to the user together.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ExecutorServiceProvider.html#org.glassfish.tyrus.core">ExecutorServiceProvider</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Handshake.html#org.glassfish.tyrus.core">Handshake</a></th>
+<td class="colLast">
+<div class="block">Class responsible for performing and validating handshake.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/HandshakeException.html#org.glassfish.tyrus.core">HandshakeException</a></th>
+<td class="colLast">
+<div class="block"><code>Exception</code>, which describes the error, occurred during the handshake phase.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MaskingKeyGenerator.html#org.glassfish.tyrus.core">MaskingKeyGenerator</a></th>
+<td class="colLast">
+<div class="block">Can be implemented to generate masking keys.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageHandlerManager.html#org.glassfish.tyrus.core">MessageHandlerManager</a></th>
+<td class="colLast">
+<div class="block">Manages registered <a href="../../../../javax/websocket/MessageHandler.html" title="interface in javax.websocket"><code>MessageHandler</code></a>s and checks whether the new ones may be registered.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/OsgiRegistry.html#org.glassfish.tyrus.core">OsgiRegistry</a></th>
+<td class="colLast">
+<div class="block">Taken from Jersey 2.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ProtocolHandler.html#org.glassfish.tyrus.core">ProtocolHandler</a></th>
+<td class="colLast">
+<div class="block">Tyrus protocol handler.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ReflectionHelper.ClassTypePair.html#org.glassfish.tyrus.core">ReflectionHelper.ClassTypePair</a></th>
+<td class="colLast">
+<div class="block">A tuple consisting of a class and type of the class.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ReflectionHelper.DeclaringClassInterfacePair.html#org.glassfish.tyrus.core">ReflectionHelper.DeclaringClassInterfacePair</a></th>
+<td class="colLast">
+<div class="block">A tuple consisting of a concrete class, declaring class that declares a generic interface type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ReflectionHelper.TypeClassPair.html#org.glassfish.tyrus.core">ReflectionHelper.TypeClassPair</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/RequestContext.html#org.glassfish.tyrus.core">RequestContext</a></th>
+<td class="colLast">
+<div class="block">Implementation of all possible request interfaces.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RequestContext.Builder.html#org.glassfish.tyrus.core">RequestContext.Builder</a></th>
+<td class="colLast">
+<div class="block"><a href="RequestContext.html" title="class in org.glassfish.tyrus.core"><code>RequestContext</code></a> builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/RequestContext.Builder.IsUserInRoleDelegate.html#org.glassfish.tyrus.core">RequestContext.Builder.IsUserInRoleDelegate</a></th>
+<td class="colLast">
+<div class="block">Is user in role delegate.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ServiceConfigurationError.html#org.glassfish.tyrus.core">ServiceConfigurationError</a></th>
+<td class="colLast">
+<div class="block">Taken from Jersey 2.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ServiceFinder.html#org.glassfish.tyrus.core">ServiceFinder</a></th>
+<td class="colLast">
+<div class="block">A simple service-provider lookup mechanism.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ServiceFinder.ServiceIteratorProvider.html#org.glassfish.tyrus.core">ServiceFinder.ServiceIteratorProvider</a></th>
+<td class="colLast">
+<div class="block">Supports iteration of provider instances or classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusEndpointWrapper.html#org.glassfish.tyrus.core">TyrusEndpointWrapper</a></th>
+<td class="colLast">
+<div class="block">Wraps the registered application class.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusEndpointWrapper.SessionListener.html#org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener</a></th>
+<td class="colLast">
+<div class="block">Session listener.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusEndpointWrapper.SessionListener.OnOpenResult.html#org.glassfish.tyrus.core">TyrusEndpointWrapper.SessionListener.OnOpenResult</a></th>
+<td class="colLast">
+<div class="block">Result of <a href="TyrusEndpointWrapper.SessionListener.html#onOpen(org.glassfish.tyrus.core.TyrusSession)"><code>TyrusEndpointWrapper.SessionListener.onOpen(TyrusSession)</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusServerEndpointConfig.html#org.glassfish.tyrus.core">TyrusServerEndpointConfig</a></th>
+<td class="colLast">
+<div class="block">Configuration <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> enhanced
+ to offer tyrus specific attributes like maxSessions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusServerEndpointConfig.Builder.html#org.glassfish.tyrus.core">TyrusServerEndpointConfig.Builder</a></th>
+<td class="colLast">
+<div class="block">The TyrusServerEndpointConfig.Builder is a class used for creating
+ <a href="TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core"><code>TyrusServerEndpointConfig.Builder</code></a> objects for the purposes of
+ deploying a server endpoint.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusSession.html#org.glassfish.tyrus.core">TyrusSession</a></th>
+<td class="colLast">
+<div class="block">Implementation of the <a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket"><code>Session</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusWebSocket.html#org.glassfish.tyrus.core">TyrusWebSocket</a></th>
+<td class="colLast">
+<div class="block">Tyrus representation of web socket connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusWebSocketEngine.html#org.glassfish.tyrus.core">TyrusWebSocketEngine</a></th>
+<td class="colLast">
+<div class="block"><a href="../spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi"><code>WebSocketEngine</code></a> implementation, which handles server-side handshake, validation and data processing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html#org.glassfish.tyrus.core">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</a></th>
+<td class="colLast">
+<div class="block"><a href="TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><code>TyrusWebSocketEngine</code></a> builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Utils.Stringifier.html#org.glassfish.tyrus.core">Utils.Stringifier</a></th>
+<td class="colLast">
+<div class="block">Define to <code>String</code> conversion for various types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Version.html#org.glassfish.tyrus.core">Version</a></th>
+<td class="colLast">
+<div class="block">TODO</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketException.html#org.glassfish.tyrus.core">WebSocketException</a></th>
+<td class="colLast">
+<div class="block">WebSocketException can be thrown during runtime (after handshake).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.cluster">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core</a> used by <a href="cluster/package-summary.html">org.glassfish.tyrus.core.cluster</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusEndpointWrapper.html#org.glassfish.tyrus.core.cluster">TyrusEndpointWrapper</a></th>
+<td class="colLast">
+<div class="block">Wraps the registered application class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.frame">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core</a> used by <a href="frame/package-summary.html">org.glassfish.tyrus.core.frame</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusWebSocket.html#org.glassfish.tyrus.core.frame">TyrusWebSocket</a></th>
+<td class="colLast">
+<div class="block">Tyrus representation of web socket connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.monitoring">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core</a> used by <a href="monitoring/package-summary.html">org.glassfish.tyrus.core.monitoring</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Beta.html#org.glassfish.tyrus.core.monitoring">Beta</a></th>
+<td class="colLast">
+<div class="block">Marker of a public Tyrus API that is still in "beta" non-final version.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.uri">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core</a> used by <a href="uri/package-summary.html">org.glassfish.tyrus.core.uri</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/DebugContext.html#org.glassfish.tyrus.core.uri">DebugContext</a></th>
+<td class="colLast">
+<div class="block">A <code>Logger</code> wrapper that gives logging records a common formatting and temporarily stores log
+ records and postpones their logging until they can be provided with a session ID.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/TyrusEndpointWrapper.html#org.glassfish.tyrus.core.uri">TyrusEndpointWrapper</a></th>
+<td class="colLast">
+<div class="block">Wraps the registered application class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.gf.cdi">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core</a> used by <a href="../gf/cdi/package-summary.html">org.glassfish.tyrus.gf.cdi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ComponentProvider.html#org.glassfish.tyrus.gf.cdi">ComponentProvider</a></th>
+<td class="colLast">
+<div class="block">Provides an instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.gf.ejb">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core</a> used by <a href="../gf/ejb/package-summary.html">org.glassfish.tyrus.gf.ejb</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ComponentProvider.html#org.glassfish.tyrus.gf.ejb">ComponentProvider</a></th>
+<td class="colLast">
+<div class="block">Provides an instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core</a> used by <a href="../server/package-summary.html">org.glassfish.tyrus.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/BaseContainer.html#org.glassfish.tyrus.server">BaseContainer</a></th>
+<td class="colLast">
+<div class="block">Base WebSocket container.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ErrorCollector.html#org.glassfish.tyrus.server">ErrorCollector</a></th>
+<td class="colLast">
+<div class="block">Used to collect deployment errors to present these to the user together.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ExecutorServiceProvider.html#org.glassfish.tyrus.server">ExecutorServiceProvider</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/Match.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/Match.html
new file mode 100644
index 00000000..2e68ec38
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/Match.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Match (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Match (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":10,"i2":10,"i3":9,"i4":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Match.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri</a></div>
+<h2 title="Class Match" class="title">Class Match</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.uri.Match</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Match</span>
+extends java.lang.Object</pre>
+<div class="block">Defines a match on an endpoint. The match is either exact, or is not exact.
+ If the match is not exact, it means that some of the path segments on the endpoint
+ are variables. In this case, the Match object carries the indices of the variable
+ segments in the endpoint path, the map of the parameter names and values.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>dannycoward</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static java.util.List&lt;<a href="Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAllMatches(java.lang.String,java.util.Set,org.glassfish.tyrus.core.DebugContext)">getAllMatches</a></span>&#8203;(java.lang.String&nbsp;requestPath,
+             java.util.Set&lt;<a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&gt;&nbsp;endpoints,
+             <a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</code></th>
+<td class="colLast">
+<div class="block">Return a list of all endpoints with path matching the request path.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEndpointWrapper()">getEndpointWrapper</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get endpoint wrapper.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameters()">getParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get map of parameter names-value pairs.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEquivalent(java.lang.String,java.lang.String)">isEquivalent</a></span>&#8203;(java.lang.String&nbsp;path1,
+            java.lang.String&nbsp;path2)</code></th>
+<td class="colLast">
+<div class="block">Check for equivalent paths.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getParameters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;getParameters()</pre>
+<div class="block">Get map of parameter names-value pairs.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of parameter names-value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEndpointWrapper()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEndpointWrapper</h4>
+<pre class="methodSignature">public&nbsp;<a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;getEndpointWrapper()</pre>
+<div class="block">Get endpoint wrapper.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>endpoint wrapper.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getAllMatches(java.lang.String,java.util.Set,org.glassfish.tyrus.core.DebugContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAllMatches</h4>
+<pre class="methodSignature">public static&nbsp;java.util.List&lt;<a href="Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a>&gt;&nbsp;getAllMatches&#8203;(java.lang.String&nbsp;requestPath,
+                                                  java.util.Set&lt;<a href="../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&gt;&nbsp;endpoints,
+                                                  <a href="../DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</pre>
+<div class="block">Return a list of all endpoints with path matching the request path. The endpoints are in order of match
+ preference, best match first.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestPath</code> - request path.</dd>
+<dd><code>endpoints</code> - endpoints.</dd>
+<dd><code>debugContext</code> - debug context.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a list of all endpoints with path matching the request path. The endpoints are in order of match
+ preference, best match first.</dd>
+</dl>
+</li>
+</ul>
+<a id="isEquivalent(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isEquivalent</h4>
+<pre class="methodSignature">public static&nbsp;boolean&nbsp;isEquivalent&#8203;(java.lang.String&nbsp;path1,
+                                   java.lang.String&nbsp;path2)</pre>
+<div class="block">Check for equivalent paths.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path1</code> - path to be checked.</dd>
+<dd><code>path2</code> - path to be checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when provided path are equivalent, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Match.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/class-use/Match.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/class-use/Match.html
new file mode 100644
index 00000000..ee049665
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/class-use/Match.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.Match (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.Match (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Match.html" title="class in org.glassfish.tyrus.core.uri">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.uri.Match" class="title">Uses of Class<br>org.glassfish.tyrus.core.uri.Match</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri">org.glassfish.tyrus.core.uri</a></th>
+<td class="colLast">
+<div class="block">URI matching.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.uri</a> that return types with arguments of type <a href="../Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static java.util.List&lt;<a href="../Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Match.</span><code><span class="memberNameLink"><a href="../Match.html#getAllMatches(java.lang.String,java.util.Set,org.glassfish.tyrus.core.DebugContext)">getAllMatches</a></span>&#8203;(java.lang.String&nbsp;requestPath,
+             java.util.Set&lt;<a href="../../TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&gt;&nbsp;endpoints,
+             <a href="../../DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</code></th>
+<td class="colLast">
+<div class="block">Return a list of all endpoints with path matching the request path.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Match.html" title="class in org.glassfish.tyrus.core.uri">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html
new file mode 100644
index 00000000..04dad459
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html
@@ -0,0 +1,1010 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>AbstractMultivaluedMap (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractMultivaluedMap (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractMultivaluedMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></div>
+<h2 title="Class AbstractMultivaluedMap" class="title">Class AbstractMultivaluedMap&lt;K,&#8203;V&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap&lt;K,&#8203;V&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>K</code> - the type of keys maintained by this map.</dd>
+<dd><code>V</code> - the type of mapped values.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.util.Map&lt;K,&#8203;java.util.List&lt;V&gt;&gt;</code>, <code><a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;K,&#8203;V&gt;</code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">AbstractMultivaluedMap&lt;K,&#8203;V&gt;</span>
+extends java.lang.Object
+implements <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;K,&#8203;V&gt;</pre>
+<div class="block">Abstract skeleton implementation of a <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> that is backed
+ by a [key, multi-value] store represented as a <code>Map&lt;K, List&lt;V&gt;&gt;</code>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;java.util.Map</h3>
+<code>java.util.Map.Entry&lt;K extends java.lang.Object,&#8203;V extends java.lang.Object&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#store">store</a></span></code></th>
+<td class="colLast">
+<div class="block">Backing store for the [key, multi-value] pairs.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Map)">AbstractMultivaluedMap</a></span>&#8203;(java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;store)</code></th>
+<td class="colLast">
+<div class="block">Initialize the backing store in the abstract parent multivalued map
+ implementation.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(K,V)">add</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+   <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a value to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(K,java.util.List)">addAll</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+      java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;valueList)</code></th>
+<td class="colLast">
+<div class="block">Add all the values from the supplied value list to the current list of
+ values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(K,V...)">addAll</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+      <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>...&nbsp;newValues)</code></th>
+<td class="colLast">
+<div class="block">Add multiple values to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFirst(K,V)">addFirst</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+        <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a value to the first position in the current list of values for the
+ supplied key.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFirstNull(java.util.List)">addFirstNull</a></span>&#8203;(java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Define the behavior for adding a <code>null</code> values to the first position
+ in the value list.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addNull(java.util.List)">addNull</a></span>&#8203;(java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Define the behavior for adding a <code>null</code> values to the value list.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clear()">clear</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsKey(java.lang.Object)">containsKey</a></span>&#8203;(java.lang.Object&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsValue(java.lang.Object)">containsValue</a></span>&#8203;(java.lang.Object&nbsp;value)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>java.util.Set&lt;java.util.Map.Entry&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entrySet()">entrySet</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(java.lang.Object&nbsp;o)</code></th>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">equalsIgnoreValueOrder</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;omap)</code></th>
+<td class="colLast">
+<div class="block">Compare the specified map with this map for equality modulo the order
+ of values for each key.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Object)">get</a></span>&#8203;(java.lang.Object&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFirst(K)">getFirst</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>protected java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValues(K)">getValues</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Return a non-null list of values for a given key.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEmpty()">isEmpty</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keySet()">keySet</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(K,java.util.List)">put</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+   java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;value)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#putAll(java.util.Map)">putAll</a></span>&#8203;(java.util.Map&lt;? extends <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;? extends java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;m)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#putSingle(K,V)">putSingle</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+         <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set the value for the key to be a one item list consisting of the supplied
+ value.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#remove(java.lang.Object)">remove</a></span>&#8203;(java.lang.Object&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#size()">size</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>java.util.Collection&lt;java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.Map</h3>
+<code>compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="store">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>store</h4>
+<pre>protected final&nbsp;java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt; store</pre>
+<div class="block">Backing store for the [key, multi-value] pairs.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractMultivaluedMap</h4>
+<pre>public&nbsp;AbstractMultivaluedMap&#8203;(java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;store)</pre>
+<div class="block">Initialize the backing store in the abstract parent multivalued map
+ implementation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>store</code> - the backing <code>Map</code> to be used as a [key, multi-value]
+              store. Must not be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.NullPointerException</code> - in case the underlying <code>store</code> parameter
+                              is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="putSingle(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="putSingle(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putSingle</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;putSingle&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                            <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Set the value for the key to be a one item list consisting of the supplied
+ value. Any existing values will be replaced.
+ <p>
+ NOTE: This implementation ignores <code>null</code> values; A supplied value
+ of <code>null</code> is ignored and not added to the purged value list.
+ As a result of such operation, empty value list would  be registered for
+ the supplied key. Overriding implementations may modify this behavior by
+ redefining the <a href="#addNull(java.util.List)"><code>addNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#putSingle(K,V)">putSingle</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the single value of the key. If the value is <code>null</code> it
+              will be ignored.</dd>
+</dl>
+</li>
+</ul>
+<a id="addNull(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addNull</h4>
+<pre class="methodSignature">protected&nbsp;void&nbsp;addNull&#8203;(java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;values)</pre>
+<div class="block">Define the behavior for adding a <code>null</code> values to the value list.
+ <p>
+ Default implementation is a no-op, i.e. the <code>null</code> values are ignored.
+ Overriding implementations may modify this behavior by providing their
+ own definitions of this method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - value list where the <code>null</code> value addition is being
+               requested.</dd>
+</dl>
+</li>
+</ul>
+<a id="addFirstNull(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFirstNull</h4>
+<pre class="methodSignature">protected&nbsp;void&nbsp;addFirstNull&#8203;(java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;values)</pre>
+<div class="block">Define the behavior for adding a <code>null</code> values to the first position
+ in the value list.
+ <p>
+ Default implementation is a no-op, i.e. the <code>null</code> values are ignored.
+ Overriding implementations may modify this behavior by providing their
+ own definitions of this method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - value list where the <code>null</code> value addition is being
+               requested.</dd>
+</dl>
+</li>
+</ul>
+<a id="add(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="add(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;add&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                      <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Add a value to the current list of values for the supplied key.
+ <p>
+ NOTE: This implementation ignores <code>null</code> values; A supplied value
+ of <code>null</code> is ignored and not added to the value list. Overriding
+ implementations may modify this behavior by redefining the
+ <a href="#addNull(java.util.List)"><code>addNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#add(K,V)">add</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the value to be added.</dd>
+</dl>
+</li>
+</ul>
+<a id="addAll(java.lang.Object,java.lang.Object[])">
+<!--   -->
+</a><a id="addAll(K,V...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAll</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;addAll&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                         <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>...&nbsp;newValues)</pre>
+<div class="block">Add multiple values to the current list of values for the supplied key. If
+ the supplied array of new values is empty, method returns immediately.
+ Method throws a <code>NullPointerException</code> if the supplied array of values
+ is <code>null</code>.
+ <p>
+ NOTE: This implementation ignores <code>null</code> values; Any of the supplied values
+ of <code>null</code> is ignored and not added to the value list. Overriding
+ implementations may modify this behavior by redefining the
+ <a href="#addNull(java.util.List)"><code>addNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#addAll(K,V...)">addAll</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dd><code>newValues</code> - the values to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.NullPointerException</code> - if the supplied array of new values is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="addAll(java.lang.Object,java.util.List)">
+<!--   -->
+</a><a id="addAll(K,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAll</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;addAll&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                         java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;valueList)</pre>
+<div class="block">Add all the values from the supplied value list to the current list of
+ values for the supplied key. If the supplied value list is empty, method
+ returns immediately. Method throws a <code>NullPointerException</code> if the
+ supplied array of values is <code>null</code>.
+ <p>
+ NOTE: This implementation ignores <code>null</code> values; Any <code>null</code> value
+ in the supplied value list is ignored and not added to the value list. Overriding
+ implementations may modify this behavior by redefining the
+ <a href="#addNull(java.util.List)"><code>addNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#addAll(K,java.util.List)">addAll</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dd><code>valueList</code> - the list of values to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.NullPointerException</code> - if the supplied value list is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getFirst(java.lang.Object)">
+<!--   -->
+</a><a id="getFirst(K)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirst</h4>
+<pre class="methodSignature">public final&nbsp;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;getFirst&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="MultivaluedMap.html#getFirst(K)">MultivaluedMap</a></code></span></div>
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#getFirst(K)">getFirst</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the first value for the specified key or null if the key is
+         not in the map.</dd>
+</dl>
+</li>
+</ul>
+<a id="addFirst(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="addFirst(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFirst</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;addFirst&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                           <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Add a value to the first position in the current list of values for the
+ supplied key.
+ <p>
+ NOTE: This implementation ignores <code>null</code> values; A supplied value
+ of <code>null</code> is ignored and not added to the purged value list. Overriding
+ implementations may modify this behavior by redefining the
+ <a href="#addFirstNull(java.util.List)"><code>addFirstNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#addFirst(K,V)">addFirst</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the value to be added.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValues(java.lang.Object)">
+<!--   -->
+</a><a id="getValues(K)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValues</h4>
+<pre class="methodSignature">protected final&nbsp;java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;getValues&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key)</pre>
+<div class="block">Return a non-null list of values for a given key. The returned list may be
+ empty.
+ <p>
+ If there is no entry for the key in the map, a new empty <code>List</code>
+ instance is created, registered within the map to hold the values of
+ the key and returned from the method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value list registered with the key. The method is guaranteed to never
+ return <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">
+ <p>
+ This implementation delegates the method call to to the the underlying
+ [key, multi-value] store.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>hashCode</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>hashCode</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a hash code value for the underlying [key, multi-value] store.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(java.lang.Object&nbsp;o)</pre>
+<div class="block">
+ <p>
+ This implementation delegates the method call to to the the underlying
+ [key, multi-value] store.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>equals</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>equals</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the specified object is equal to the underlying
+ [key, multi-value] store, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public&nbsp;java.util.Collection&lt;java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;values()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>values</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="size()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>size</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;size()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>size</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="remove(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remove</h4>
+<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;remove&#8203;(java.lang.Object&nbsp;key)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>remove</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="putAll(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putAll</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;putAll&#8203;(java.util.Map&lt;? extends <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;? extends java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;m)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>putAll</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="put(java.lang.Object,java.util.List)">
+<!--   -->
+</a><a id="put(K,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;put&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                             java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;value)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>put</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="keySet()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>keySet</h4>
+<pre class="methodSignature">public&nbsp;java.util.Set&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&gt;&nbsp;keySet()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>keySet</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="isEmpty()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isEmpty</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isEmpty()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>isEmpty</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;get&#8203;(java.lang.Object&nbsp;key)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>get</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="entrySet()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entrySet</h4>
+<pre class="methodSignature">public&nbsp;java.util.Set&lt;java.util.Map.Entry&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;java.util.List&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&gt;&nbsp;entrySet()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>entrySet</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="containsValue(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsValue</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;containsValue&#8203;(java.lang.Object&nbsp;value)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>containsValue</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="containsKey(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsKey</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;containsKey&#8203;(java.lang.Object&nbsp;key)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>containsKey</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="clear()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clear</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;clear()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>clear</code>&nbsp;in interface&nbsp;<code>java.util.Map&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equalsIgnoreValueOrder</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equalsIgnoreValueOrder&#8203;(<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;omap)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="MultivaluedMap.html#equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">MultivaluedMap</a></code></span></div>
+<div class="block">Compare the specified map with this map for equality modulo the order
+ of values for each key. Specifically, the values associated with
+ each key are compared as if they were ordered lists.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">equalsIgnoreValueOrder</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>omap</code> - map to be compared to this one.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the maps are equal modulo value ordering.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractMultivaluedMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html
new file mode 100644
index 00000000..a7ea455d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html
@@ -0,0 +1,521 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MultivaluedHashMap (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MultivaluedHashMap (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedHashMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></div>
+<h2 title="Class MultivaluedHashMap" class="title">Class MultivaluedHashMap&lt;K,&#8203;V&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap</a>&lt;K,&#8203;V&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.uri.internal.MultivaluedHashMap&lt;K,&#8203;V&gt;</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>K</code> - the type of keys maintained by this map.</dd>
+<dd><code>V</code> - the type of mapped values.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.util.Map&lt;K,&#8203;java.util.List&lt;V&gt;&gt;</code>, <code><a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;K,&#8203;V&gt;</code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">MultivaluedHashMap&lt;K,&#8203;V&gt;</span>
+extends <a href="AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a>&lt;K,&#8203;V&gt;
+implements java.io.Serializable</pre>
+<div class="block">A hash table based implementation of <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> interface.
+ <p>
+ This implementation provides all of the optional map operations. This class
+ makes no guarantees as to the order of the map; in particular, it does not
+ guarantee that the order will remain constant over time. The implementation
+ permits <code>null</code> key. By default the implementation does also permit
+ <code>null</code> values, but ignores them. This behavior can be customized
+ by overriding the protected <a href="AbstractMultivaluedMap.html#addNull(java.util.List)"><code>addNull(...)</code></a> and
+ <a href="AbstractMultivaluedMap.html#addFirstNull(java.util.List)"><code>addFirstNull(...)</code></a> methods.
+ <p>
+ This implementation provides constant-time performance for the basic
+ operations (<tt>get</tt> and <tt>put</tt>), assuming the hash function
+ disperses the elements properly among the buckets. Iteration over
+ collection views requires time proportional to the "capacity" of the
+ map instance (the number of buckets) plus its size (the number
+ of key-value mappings).  Thus, it's very important not to set the initial
+ capacity too high (or the load factor too low) if iteration performance is
+ important.
+ <p>
+ An instance of <tt>MultivaluedHashMap</tt> has two parameters that affect its
+ performance: <i>initial capacity</i> and <i>load factor</i>. The <i>capacity</i>
+ is the number of buckets in the hash table, and the initial capacity is simply
+ the capacity at the time the hash table is created. The <i>load factor</i> is
+ a measure of how full the hash table is allowed to get before its capacity is
+ automatically increased. When the number of entries in the hash table exceeds
+ the product of the load factor and the current capacity, the hash table is
+ <i>rehashed</i> (that is, internal data structures are rebuilt) so that the
+ hash table has approximately twice the number of buckets.
+ <p>
+ As a general rule, the default load factor (.75) offers a good tradeoff
+ between time and space costs. Higher values decrease the space overhead
+ but increase the lookup cost (reflected in most of the operations of the
+ <tt>HashMap</tt> class, including <tt>get</tt> and <tt>put</tt>). The
+ expected number of entries in the map and its load factor should be taken
+ into account when setting its initial capacity, so as to minimize the
+ number of rehash operations. If the initial capacity is greater
+ than the maximum number of entries divided by the load factor, no
+ rehash operations will ever occur.
+ <p>
+ If many mappings are to be stored in a <tt>MultivaluedHashMap</tt> instance,
+ creating it with a sufficiently large capacity will allow the mappings to
+ be stored more efficiently than letting it perform automatic rehashing as
+ needed to grow the table.
+ <p>
+ <strong>Note that this implementation is not guaranteed to be synchronized.</strong>
+ If multiple threads access a hash map concurrently, and at least one of
+ the threads modifies the map structurally, it <i>must</i> be
+ synchronized externally. (A structural modification is any operation
+ that adds or deletes one or more mappings; merely changing the value
+ associated with a key that an instance already contains is not a
+ structural modification.) This is typically accomplished by
+ synchronizing on some object that naturally encapsulates the map.
+ <p>
+ The iterators returned by all of this class's "collection view methods"
+ are <i>fail-fast</i>: if the map is structurally modified at any time after
+ the iterator is created, in any way except through the iterator's own
+ <tt>remove</tt> method, the iterator will throw a <code>ConcurrentModificationException</code>.
+ Thus, in the face of concurrent modification, the iterator fails quickly and
+ cleanly, rather than risking arbitrary, non-deterministic behavior at an
+ undetermined time in the future.
+ <p>
+ Note that the fail-fast behavior of an iterator cannot be guaranteed
+ as it is, generally speaking, impossible to make any hard guarantees in the
+ presence of unsynchronized concurrent modification. Fail-fast iterators
+ throw <tt>ConcurrentModificationException</tt> on a best-effort basis.
+ Therefore, it would be wrong to write a program that depended on this
+ exception for its correctness: <i>the fail-fast behavior of iterators
+ should be used only to detect bugs.</i></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../serialized-form.html#org.glassfish.tyrus.core.uri.internal.MultivaluedHashMap">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;java.util.Map</h3>
+<code>java.util.Map.Entry&lt;K extends java.lang.Object,&#8203;V extends java.lang.Object&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.core.uri.internal.<a href="AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></h3>
+<code><a href="AbstractMultivaluedMap.html#store">store</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">MultivaluedHashMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Constructs an empty multivalued hash map with the default initial capacity
+ (<code>16</code>) and the default load factor (<code>0.75</code>).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">MultivaluedHashMap</a></span>&#8203;(int&nbsp;initialCapacity)</code></th>
+<td class="colLast">
+<div class="block">Constructs an empty multivalued hash map with the specified initial
+ capacity and the default load factor (<code>0.75</code>).</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,float)">MultivaluedHashMap</a></span>&#8203;(int&nbsp;initialCapacity,
+                  float&nbsp;loadFactor)</code></th>
+<td class="colLast">
+<div class="block">Constructs an empty multivalued hash map with the specified initial
+ capacity and load factor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Map)">MultivaluedHashMap</a></span>&#8203;(java.util.Map&lt;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified single-valued <code>Map</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">MultivaluedHashMap</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.uri.internal.<a href="AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></h3>
+<code><a href="AbstractMultivaluedMap.html#add(K,V)">add</a>, <a href="AbstractMultivaluedMap.html#addAll(K,java.util.List)">addAll</a>, <a href="AbstractMultivaluedMap.html#addAll(K,V...)">addAll</a>, <a href="AbstractMultivaluedMap.html#addFirst(K,V)">addFirst</a>, <a href="AbstractMultivaluedMap.html#addFirstNull(java.util.List)">addFirstNull</a>, <a href="AbstractMultivaluedMap.html#addNull(java.util.List)">addNull</a>, <a href="AbstractMultivaluedMap.html#clear()">clear</a>, <a href="AbstractMultivaluedMap.html#containsKey(java.lang.Object)">containsKey</a>, <a href="AbstractMultivaluedMap.html#containsValue(java.lang.Object)">containsValue</a>, <a href="AbstractMultivaluedMap.html#entrySet()">entrySet</a>, <a href="AbstractMultivaluedMap.html#equals(java.lang.Object)">equals</a>, <a href="AbstractMultivaluedMap.html#equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">equalsIgnoreValueOrder</a>, <a href="AbstractMultivaluedMap.html#get(java.lang.Object)">get</a>, <a href="AbstractMultivaluedMap.html#getFirst(K)">getFirst</a>, <a href="AbstractMultivaluedMap.html#getValues(K)">getValues</a>, <a href="AbstractMultivaluedMap.html#hashCode()">hashCode</a>, <a href="AbstractMultivaluedMap.html#isEmpty()">isEmpty</a>, <a href="AbstractMultivaluedMap.html#keySet()">keySet</a>, <a href="AbstractMultivaluedMap.html#put(K,java.util.List)">put</a>, <a href="AbstractMultivaluedMap.html#putAll(java.util.Map)">putAll</a>, <a href="AbstractMultivaluedMap.html#putSingle(K,V)">putSingle</a>, <a href="AbstractMultivaluedMap.html#remove(java.lang.Object)">remove</a>, <a href="AbstractMultivaluedMap.html#size()">size</a>, <a href="AbstractMultivaluedMap.html#toString()">toString</a>, <a href="AbstractMultivaluedMap.html#values()">values</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.Map</h3>
+<code>compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap()</pre>
+<div class="block">Constructs an empty multivalued hash map with the default initial capacity
+ (<code>16</code>) and the default load factor (<code>0.75</code>).</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap&#8203;(int&nbsp;initialCapacity)</pre>
+<div class="block">Constructs an empty multivalued hash map with the specified initial
+ capacity and the default load factor (<code>0.75</code>).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>initialCapacity</code> - the initial capacity.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the initial capacity is negative.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int,float)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap&#8203;(int&nbsp;initialCapacity,
+                          float&nbsp;loadFactor)</pre>
+<div class="block">Constructs an empty multivalued hash map with the specified initial
+ capacity and load factor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>initialCapacity</code> - the initial capacity</dd>
+<dd><code>loadFactor</code> - the load factor</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the initial capacity is negative
+                                  or the load factor is nonpositive</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap&#8203;(<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</pre>
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a>. The <code>List</code> instances holding
+ the values of each key are created anew instead of being reused.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>map</code> - the multivalued map whose mappings are to be placed in this
+            multivalued map.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.NullPointerException</code> - if the specified map is <code>null</code></dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap&#8203;(java.util.Map&lt;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</pre>
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified single-valued <code>Map</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>map</code> - the single-valued map whose mappings are to be placed in this
+            multivalued map.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.NullPointerException</code> - if the specified map is <code>null</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedHashMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html
new file mode 100644
index 00000000..18e7f377
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html
@@ -0,0 +1,487 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MultivaluedMap (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MultivaluedMap (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></div>
+<h2 title="Interface MultivaluedMap" class="title">Interface MultivaluedMap&lt;K,&#8203;V&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>K</code> - the type of keys maintained by this map</dd>
+<dd><code>V</code> - the type of mapped values</dd>
+</dl>
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code>java.util.Map&lt;K,&#8203;java.util.List&lt;V&gt;&gt;</code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></code>, <code><a href="MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a></code>, <code><a href="MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">MultivaluedMap&lt;K,&#8203;V&gt;</span>
+extends java.util.Map&lt;K,&#8203;java.util.List&lt;V&gt;&gt;</pre>
+<div class="block">A map of key-values pairs. Each key can have zero or more values.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley, Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;java.util.Map</h3>
+<code>java.util.Map.Entry&lt;K extends java.lang.Object,&#8203;V extends java.lang.Object&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(K,V)">add</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+   <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a value to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(K,java.util.List)">addAll</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+      java.util.List&lt;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;valueList)</code></th>
+<td class="colLast">
+<div class="block">Add all the values from the supplied value list to the current list of
+ values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(K,V...)">addAll</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+      <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>...&nbsp;newValues)</code></th>
+<td class="colLast">
+<div class="block">Add multiple values to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFirst(K,V)">addFirst</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+        <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a value to the first position in the current list of values for the
+ supplied key.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">equalsIgnoreValueOrder</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;otherMap)</code></th>
+<td class="colLast">
+<div class="block">Compare the specified map with this map for equality modulo the order
+ of values for each key.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFirst(K)">getFirst</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#putSingle(K,V)">putSingle</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+         <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set the key's value to be a one item list consisting of the supplied value.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.Map</h3>
+<code>clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="putSingle(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="putSingle(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putSingle</h4>
+<pre class="methodSignature">void&nbsp;putSingle&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+               <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Set the key's value to be a one item list consisting of the supplied value.
+ Any existing values will be replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the single value of the key</dd>
+</dl>
+</li>
+</ul>
+<a id="add(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="add(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre class="methodSignature">void&nbsp;add&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+         <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Add a value to the current list of values for the supplied key.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the value to be added.</dd>
+</dl>
+</li>
+</ul>
+<a id="getFirst(java.lang.Object)">
+<!--   -->
+</a><a id="getFirst(K)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirst</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;getFirst&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key)</pre>
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the first value for the specified key or null if the key is
+         not in the map.</dd>
+</dl>
+</li>
+</ul>
+<a id="addAll(java.lang.Object,java.lang.Object[])">
+<!--   -->
+</a><a id="addAll(K,V...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAll</h4>
+<pre class="methodSignature">void&nbsp;addAll&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+            <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>...&nbsp;newValues)</pre>
+<div class="block">Add multiple values to the current list of values for the supplied key. If
+ the supplied array of new values is empty, method returns immediately.
+ Method throws a <code>NullPointerException</code> if the supplied array of values
+ is <code>null</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dd><code>newValues</code> - the values to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.NullPointerException</code> - if the supplied array of new values is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="addAll(java.lang.Object,java.util.List)">
+<!--   -->
+</a><a id="addAll(K,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAll</h4>
+<pre class="methodSignature">void&nbsp;addAll&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+            java.util.List&lt;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;valueList)</pre>
+<div class="block">Add all the values from the supplied value list to the current list of
+ values for the supplied key. If the supplied value list is empty, method
+ returns immediately. Method throws a <code>NullPointerException</code> if the
+ supplied array of values is <code>null</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dd><code>valueList</code> - the list of values to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.NullPointerException</code> - if the supplied value list is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="addFirst(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="addFirst(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFirst</h4>
+<pre class="methodSignature">void&nbsp;addFirst&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+              <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Add a value to the first position in the current list of values for the
+ supplied key.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the value to be added.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equalsIgnoreValueOrder</h4>
+<pre class="methodSignature">boolean&nbsp;equalsIgnoreValueOrder&#8203;(<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;otherMap)</pre>
+<div class="block">Compare the specified map with this map for equality modulo the order
+ of values for each key. Specifically, the values associated with
+ each key are compared as if they were ordered lists.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>otherMap</code> - map to be compared to this one.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the maps are equal modulo value ordering.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html
new file mode 100644
index 00000000..d604ecfb
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html
@@ -0,0 +1,502 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MultivaluedStringMap (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MultivaluedStringMap (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedStringMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></div>
+<h2 title="Class MultivaluedStringMap" class="title">Class MultivaluedStringMap</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap</a>&lt;K,&#8203;V&gt;</li>
+<li>
+<ul class="inheritance">
+<li><a href="MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal.MultivaluedHashMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.uri.internal.MultivaluedStringMap</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.util.Map&lt;java.lang.String,&#8203;java.util.List&lt;java.lang.String&gt;&gt;</code>, <code><a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">MultivaluedStringMap</span>
+extends <a href="MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</pre>
+<div class="block">An implementation of <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> where keys and values are
+ instances of String.
+ <p>
+ This map has an additional ability to instantiate classes using the
+ individual string values as a constructor parameters.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marek Potociar (marek.potociar at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../serialized-form.html#org.glassfish.tyrus.core.uri.internal.MultivaluedStringMap">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;java.util.Map</h3>
+<code>java.util.Map.Entry&lt;K extends java.lang.Object,&#8203;V extends java.lang.Object&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.core.uri.internal.<a href="AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></h3>
+<code><a href="AbstractMultivaluedMap.html#store">store</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">MultivaluedStringMap</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">MultivaluedStringMap</a></span>&#8203;(int&nbsp;initialCapacity)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,float)">MultivaluedStringMap</a></span>&#8203;(int&nbsp;initialCapacity,
+                    float&nbsp;loadFactor)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">MultivaluedStringMap</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;? extends java.lang.String,&#8203;? extends java.lang.String&gt;&nbsp;map)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFirstNull(java.util.List)">addFirstNull</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Define the behavior for adding a <code>null</code> values to the first position
+ in the value list.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addNull(java.util.List)">addNull</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Define the behavior for adding a <code>null</code> values to the value list.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;A&gt;&nbsp;A</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFirst(java.lang.String,A)">getFirst</a></span>&#8203;(java.lang.String&nbsp;key,
+        A&nbsp;defaultValue)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;A&gt;&nbsp;A</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFirst(java.lang.String,java.lang.Class)">getFirst</a></span>&#8203;(java.lang.String&nbsp;key,
+        java.lang.Class&lt;A&gt;&nbsp;type)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.uri.internal.<a href="AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></h3>
+<code><a href="AbstractMultivaluedMap.html#add(K,V)">add</a>, <a href="AbstractMultivaluedMap.html#addAll(K,java.util.List)">addAll</a>, <a href="AbstractMultivaluedMap.html#addAll(K,V...)">addAll</a>, <a href="AbstractMultivaluedMap.html#addFirst(K,V)">addFirst</a>, <a href="AbstractMultivaluedMap.html#clear()">clear</a>, <a href="AbstractMultivaluedMap.html#containsKey(java.lang.Object)">containsKey</a>, <a href="AbstractMultivaluedMap.html#containsValue(java.lang.Object)">containsValue</a>, <a href="AbstractMultivaluedMap.html#entrySet()">entrySet</a>, <a href="AbstractMultivaluedMap.html#equals(java.lang.Object)">equals</a>, <a href="AbstractMultivaluedMap.html#equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">equalsIgnoreValueOrder</a>, <a href="AbstractMultivaluedMap.html#get(java.lang.Object)">get</a>, <a href="AbstractMultivaluedMap.html#getFirst(K)">getFirst</a>, <a href="AbstractMultivaluedMap.html#getValues(K)">getValues</a>, <a href="AbstractMultivaluedMap.html#hashCode()">hashCode</a>, <a href="AbstractMultivaluedMap.html#isEmpty()">isEmpty</a>, <a href="AbstractMultivaluedMap.html#keySet()">keySet</a>, <a href="AbstractMultivaluedMap.html#put(K,java.util.List)">put</a>, <a href="AbstractMultivaluedMap.html#putAll(java.util.Map)">putAll</a>, <a href="AbstractMultivaluedMap.html#putSingle(K,V)">putSingle</a>, <a href="AbstractMultivaluedMap.html#remove(java.lang.Object)">remove</a>, <a href="AbstractMultivaluedMap.html#size()">size</a>, <a href="AbstractMultivaluedMap.html#toString()">toString</a>, <a href="AbstractMultivaluedMap.html#values()">values</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.Map</h3>
+<code>compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedStringMap</h4>
+<pre>public&nbsp;MultivaluedStringMap&#8203;(<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;? extends java.lang.String,&#8203;? extends java.lang.String&gt;&nbsp;map)</pre>
+</li>
+</ul>
+<a id="&lt;init&gt;(int,float)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedStringMap</h4>
+<pre>public&nbsp;MultivaluedStringMap&#8203;(int&nbsp;initialCapacity,
+                            float&nbsp;loadFactor)</pre>
+</li>
+</ul>
+<a id="&lt;init&gt;(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedStringMap</h4>
+<pre>public&nbsp;MultivaluedStringMap&#8203;(int&nbsp;initialCapacity)</pre>
+</li>
+</ul>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MultivaluedStringMap</h4>
+<pre>public&nbsp;MultivaluedStringMap()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="addFirstNull(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFirstNull</h4>
+<pre class="methodSignature">protected&nbsp;void&nbsp;addFirstNull&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;values)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="AbstractMultivaluedMap.html#addFirstNull(java.util.List)">AbstractMultivaluedMap</a></code></span></div>
+<div class="block">Define the behavior for adding a <code>null</code> values to the first position
+ in the value list.
+ <p>
+ Default implementation is a no-op, i.e. the <code>null</code> values are ignored.
+ Overriding implementations may modify this behavior by providing their
+ own definitions of this method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="AbstractMultivaluedMap.html#addFirstNull(java.util.List)">addFirstNull</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - value list where the <code>null</code> value addition is being
+               requested.</dd>
+</dl>
+</li>
+</ul>
+<a id="addNull(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addNull</h4>
+<pre class="methodSignature">protected&nbsp;void&nbsp;addNull&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;values)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="AbstractMultivaluedMap.html#addNull(java.util.List)">AbstractMultivaluedMap</a></code></span></div>
+<div class="block">Define the behavior for adding a <code>null</code> values to the value list.
+ <p>
+ Default implementation is a no-op, i.e. the <code>null</code> values are ignored.
+ Overriding implementations may modify this behavior by providing their
+ own definitions of this method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="AbstractMultivaluedMap.html#addNull(java.util.List)">addNull</a></code>&nbsp;in class&nbsp;<code><a href="AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - value list where the <code>null</code> value addition is being
+               requested.</dd>
+</dl>
+</li>
+</ul>
+<a id="getFirst(java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirst</h4>
+<pre class="methodSignature">public final&nbsp;&lt;A&gt;&nbsp;A&nbsp;getFirst&#8203;(java.lang.String&nbsp;key,
+                            java.lang.Class&lt;A&gt;&nbsp;type)</pre>
+</li>
+</ul>
+<a id="getFirst(java.lang.String,java.lang.Object)">
+<!--   -->
+</a><a id="getFirst(java.lang.String,A)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getFirst</h4>
+<pre class="methodSignature">public final&nbsp;&lt;A&gt;&nbsp;A&nbsp;getFirst&#8203;(java.lang.String&nbsp;key,
+                            A&nbsp;defaultValue)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedStringMap.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html
new file mode 100644
index 00000000..12881fa9
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PathPattern.RightHandPath (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PathPattern.RightHandPath (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathPattern.RightHandPath.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></div>
+<h2 title="Enum PathPattern.RightHandPath" class="title">Enum PathPattern.RightHandPath</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">PathPattern.RightHandPath</span>
+extends java.lang.Enum&lt;<a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>&gt;</pre>
+<div class="block">The set of right hand path patterns that may be appended to a path pattern.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#capturingZeroOrMoreSegments">capturingZeroOrMoreSegments</a></span></code></th>
+<td class="colLast">
+<div class="block">A capturing group that matches zero or more path segments and keeps the matching path template open.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#capturingZeroSegments">capturingZeroSegments</a></span></code></th>
+<td class="colLast">
+<div class="block">A capturing group that matches zero segments and effectively closes the matching path template.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="capturingZeroOrMoreSegments">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>capturingZeroOrMoreSegments</h4>
+<pre>public static final&nbsp;<a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a> capturingZeroOrMoreSegments</pre>
+<div class="block">A capturing group that matches zero or more path segments and keeps the matching path template open.</div>
+</li>
+</ul>
+<a id="capturingZeroSegments">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>capturingZeroSegments</h4>
+<pre>public static final&nbsp;<a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a> capturingZeroSegments</pre>
+<div class="block">A capturing group that matches zero segments and effectively closes the matching path template.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (PathPattern.RightHandPath c : PathPattern.RightHandPath.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathPattern.RightHandPath.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathPattern.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathPattern.html
new file mode 100644
index 00000000..ade9619f
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathPattern.html
@@ -0,0 +1,563 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PathPattern (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PathPattern (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathPattern.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></div>
+<h2 title="Class PathPattern" class="title">Class PathPattern</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal.PatternWithGroups</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.uri.internal.PathPattern</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">PathPattern</span>
+extends <a href="PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></pre>
+<div class="block">A path pattern that is a regular expression generated from a URI path template.
+ <p>
+ The path pattern is normalized by removing a terminating "/" if present.
+ <p>
+ The path pattern is post-fixed with a right hand pattern that consists of either a matching group that matches zero
+ or more path segments, see <a href="PathPattern.RightHandPath.html#capturingZeroOrMoreSegments"><code>PathPattern.RightHandPath.capturingZeroOrMoreSegments</code></a>, or zero path segments, see <a href="PathPattern.RightHandPath.html#capturingZeroSegments"><code>PathPattern.RightHandPath.capturingZeroSegments</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></span></code></th>
+<td class="colLast">
+<div class="block">The set of right hand path patterns that may be appended to a path pattern.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.util.Comparator&lt;<a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#COMPARATOR">COMPARATOR</a></span></code></th>
+<td class="colLast">
+<div class="block">Path pattern comparator that defers to <a href="UriTemplate.html#COMPARATOR"><code>comparing the templates</code></a> associated with the
+ patterns.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EMPTY_PATTERN">EMPTY_PATTERN</a></span></code></th>
+<td class="colLast">
+<div class="block">Empty path pattern matching only empty string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#END_OF_PATH_PATTERN">END_OF_PATH_PATTERN</a></span></code></th>
+<td class="colLast">
+<div class="block">Path pattern matching the end of a URI path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OPEN_ROOT_PATH_PATTERN">OPEN_ROOT_PATH_PATTERN</a></span></code></th>
+<td class="colLast">
+<div class="block">Path pattern matching the any URI path.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.core.uri.internal.PatternWithGroups">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.core.uri.internal.<a href="PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></h3>
+<code><a href="PatternWithGroups.html#EMPTY">EMPTY</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">PathPattern</a></span>&#8203;(java.lang.String&nbsp;template)</code></th>
+<td class="colLast">
+<div class="block">Create a path pattern and post fix with <a href="PathPattern.RightHandPath.html#capturingZeroOrMoreSegments"><code>PathPattern.RightHandPath.capturingZeroOrMoreSegments</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath)">PathPattern</a></span>&#8203;(java.lang.String&nbsp;template,
+           <a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>&nbsp;rhpp)</code></th>
+<td class="colLast">
+<div class="block">Create a path pattern and post fix with a right hand path pattern.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.PathTemplate)">PathPattern</a></span>&#8203;(<a href="PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a>&nbsp;template)</code></th>
+<td class="colLast">
+<div class="block">Create a path pattern and post fix with <a href="PathPattern.RightHandPath.html#capturingZeroOrMoreSegments"><code>PathPattern.RightHandPath.capturingZeroOrMoreSegments</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.PathTemplate,org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath)">PathPattern</a></span>&#8203;(<a href="PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a>&nbsp;template,
+           <a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>&nbsp;rhpp)</code></th>
+<td class="colLast">
+<div class="block">Create a path pattern and post fix with a right hand path pattern.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asClosed(org.glassfish.tyrus.core.uri.internal.PathPattern)">asClosed</a></span>&#8203;(<a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a>&nbsp;pattern)</code></th>
+<td class="colLast">
+<div class="block">Return a new path pattern with a same path template but a <a href="PathPattern.RightHandPath.html#capturingZeroSegments"><code>closed</code></a>
+ right hand path.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTemplate()">getTemplate</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.uri.internal.PatternWithGroups">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.uri.internal.<a href="PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></h3>
+<code><a href="PatternWithGroups.html#equals(java.lang.Object)">equals</a>, <a href="PatternWithGroups.html#getGroupIndexes()">getGroupIndexes</a>, <a href="PatternWithGroups.html#getRegex()">getRegex</a>, <a href="PatternWithGroups.html#hashCode()">hashCode</a>, <a href="PatternWithGroups.html#match(java.lang.CharSequence)">match</a>, <a href="PatternWithGroups.html#match(java.lang.CharSequence,java.util.List)">match</a>, <a href="PatternWithGroups.html#match(java.lang.CharSequence,java.util.List,java.util.Map)">match</a>, <a href="PatternWithGroups.html#toString()">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="EMPTY_PATTERN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EMPTY_PATTERN</h4>
+<pre>public static final&nbsp;<a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a> EMPTY_PATTERN</pre>
+<div class="block">Empty path pattern matching only empty string.</div>
+</li>
+</ul>
+<a id="END_OF_PATH_PATTERN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>END_OF_PATH_PATTERN</h4>
+<pre>public static final&nbsp;<a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a> END_OF_PATH_PATTERN</pre>
+<div class="block">Path pattern matching the end of a URI path. Can be either empty <code>""</code> or contain a trailing slash <code>
+ "/"</code>.</div>
+</li>
+</ul>
+<a id="OPEN_ROOT_PATH_PATTERN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>OPEN_ROOT_PATH_PATTERN</h4>
+<pre>public static final&nbsp;<a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a> OPEN_ROOT_PATH_PATTERN</pre>
+<div class="block">Path pattern matching the any URI path.</div>
+</li>
+</ul>
+<a id="COMPARATOR">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>COMPARATOR</h4>
+<pre>public static final&nbsp;java.util.Comparator&lt;<a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a>&gt; COMPARATOR</pre>
+<div class="block">Path pattern comparator that defers to <a href="UriTemplate.html#COMPARATOR"><code>comparing the templates</code></a> associated with the
+ patterns.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PathPattern</h4>
+<pre>public&nbsp;PathPattern&#8203;(java.lang.String&nbsp;template)</pre>
+<div class="block">Create a path pattern and post fix with <a href="PathPattern.RightHandPath.html#capturingZeroOrMoreSegments"><code>PathPattern.RightHandPath.capturingZeroOrMoreSegments</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>template</code> - the path template.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#%3Cinit%3E(java.lang.String,org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath)"><code>PathPattern(String, PathPattern.RightHandPath)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.uri.internal.PathTemplate)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PathPattern</h4>
+<pre>public&nbsp;PathPattern&#8203;(<a href="PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a>&nbsp;template)</pre>
+<div class="block">Create a path pattern and post fix with <a href="PathPattern.RightHandPath.html#capturingZeroOrMoreSegments"><code>PathPattern.RightHandPath.capturingZeroOrMoreSegments</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>template</code> - the path template</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.PathTemplate,org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath)"><code>PathPattern(PathTemplate, PathPattern.RightHandPath)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PathPattern</h4>
+<pre>public&nbsp;PathPattern&#8203;(java.lang.String&nbsp;template,
+                   <a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>&nbsp;rhpp)</pre>
+<div class="block">Create a path pattern and post fix with a right hand path pattern.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>template</code> - the path template.</dd>
+<dd><code>rhpp</code> - the right hand path pattern postfix.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.uri.internal.PathTemplate,org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PathPattern</h4>
+<pre>public&nbsp;PathPattern&#8203;(<a href="PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a>&nbsp;template,
+                   <a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>&nbsp;rhpp)</pre>
+<div class="block">Create a path pattern and post fix with a right hand path pattern.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>template</code> - the path template.</dd>
+<dd><code>rhpp</code> - the right hand path pattern postfix.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="asClosed(org.glassfish.tyrus.core.uri.internal.PathPattern)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asClosed</h4>
+<pre class="methodSignature">public static&nbsp;<a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a>&nbsp;asClosed&#8203;(<a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a>&nbsp;pattern)</pre>
+<div class="block">Return a new path pattern with a same path template but a <a href="PathPattern.RightHandPath.html#capturingZeroSegments"><code>closed</code></a>
+ right hand path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pattern</code> - an (open) path pattern to convert to a closed pattern.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>closed path pattern for the same path template.</dd>
+</dl>
+</li>
+</ul>
+<a id="getTemplate()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTemplate</h4>
+<pre class="methodSignature">public&nbsp;<a href="UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a>&nbsp;getTemplate()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathPattern.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathSegment.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathSegment.html
new file mode 100644
index 00000000..39443eb9
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathSegment.html
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PathSegment (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PathSegment (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathSegment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></div>
+<h2 title="Interface PathSegment" class="title">Interface PathSegment</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">PathSegment</span></pre>
+<div class="block">Represents a URI path segment and any associated matrix parameters. When an
+ instance of this type is injected with <code>javax.ws.rs.PathParam</code>, the
+ value of the annotation identifies which path segment is selected and the
+ presence of an <code>javax.ws.rs.Encoded</code> annotation will result in an
+ instance that supplies the path and matrix parameter values in
+ URI encoded form.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMatrixParameters()">getMatrixParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a map of the matrix parameters associated with the path segment.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPath()">getPath</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the path segment.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getPath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPath</h4>
+<pre class="methodSignature">java.lang.String&nbsp;getPath()</pre>
+<div class="block">Get the path segment.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the path segment</dd>
+</dl>
+</li>
+</ul>
+<a id="getMatrixParameters()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMatrixParameters</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;getMatrixParameters()</pre>
+<div class="block">Get a map of the matrix parameters associated with the path segment.
+ The map keys are the names of the matrix parameters with any
+ percent-escaped octets decoded.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the map of matrix parameters</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathSegment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathTemplate.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathTemplate.html
new file mode 100644
index 00000000..9e4a60bb
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathTemplate.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PathTemplate (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PathTemplate (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathTemplate.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></div>
+<h2 title="Class PathTemplate" class="title">Class PathTemplate</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal.UriTemplate</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.uri.internal.PathTemplate</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">PathTemplate</span>
+extends <a href="UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></pre>
+<div class="block">A URI template for a URI path.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Yegor Bugayenko (yegor256 at java.net)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.org.glassfish.tyrus.core.uri.internal.UriTemplate">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.glassfish.tyrus.core.uri.internal.<a href="UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></h3>
+<code><a href="UriTemplate.html#COMPARATOR">COMPARATOR</a>, <a href="UriTemplate.html#EMPTY">EMPTY</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">PathTemplate</a></span>&#8203;(java.lang.String&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Create a URI path template and encode (percent escape) any characters of
+ the template that are not valid URI characters.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.uri.internal.UriTemplate">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.uri.internal.<a href="UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></h3>
+<code><a href="UriTemplate.html#createURI(java.lang.String...)">createURI</a>, <a href="UriTemplate.html#createURI(java.lang.String%5B%5D,int,int)">createURI</a>, <a href="UriTemplate.html#createURI(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Object%5B%5D,boolean,boolean)">createURI</a>, <a href="UriTemplate.html#createURI(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.Map,boolean,boolean)">createURI</a>, <a href="UriTemplate.html#createURI(java.util.Map)">createURI</a>, <a href="UriTemplate.html#createURIWithStringValues(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String%5B%5D,boolean,boolean)">createURIWithStringValues</a>, <a href="UriTemplate.html#createURIWithStringValues(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.Map,boolean,boolean)">createURIWithStringValues</a>, <a href="UriTemplate.html#endsWithSlash()">endsWithSlash</a>, <a href="UriTemplate.html#equals(java.lang.Object)">equals</a>, <a href="UriTemplate.html#getNumberOfExplicitCharacters()">getNumberOfExplicitCharacters</a>, <a href="UriTemplate.html#getNumberOfExplicitRegexes()">getNumberOfExplicitRegexes</a>, <a href="UriTemplate.html#getNumberOfRegexGroups()">getNumberOfRegexGroups</a>, <a href="UriTemplate.html#getNumberOfTemplateVariables()">getNumberOfTemplateVariables</a>, <a href="UriTemplate.html#getPattern()">getPattern</a>, <a href="UriTemplate.html#getTemplate()">getTemplate</a>, <a href="UriTemplate.html#getTemplateVariables()">getTemplateVariables</a>, <a href="UriTemplate.html#hashCode()">hashCode</a>, <a href="UriTemplate.html#isTemplateVariablePresent(java.lang.String)">isTemplateVariablePresent</a>, <a href="UriTemplate.html#match(java.lang.CharSequence,java.util.List)">match</a>, <a href="UriTemplate.html#match(java.lang.CharSequence,java.util.Map)">match</a>, <a href="UriTemplate.html#normalize(java.lang.String)">normalize</a>, <a href="UriTemplate.html#normalize(java.net.URI)">normalize</a>, <a href="UriTemplate.html#relativize(java.net.URI,java.net.URI)">relativize</a>, <a href="UriTemplate.html#resolve(java.net.URI,java.lang.String)">resolve</a>, <a href="UriTemplate.html#resolve(java.net.URI,java.net.URI)">resolve</a>, <a href="UriTemplate.html#resolveTemplateValues(org.glassfish.tyrus.core.uri.internal.UriComponent.Type,java.lang.String,boolean,java.util.Map)">resolveTemplateValues</a>, <a href="UriTemplate.html#toString()">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PathTemplate</h4>
+<pre>public&nbsp;PathTemplate&#8203;(java.lang.String&nbsp;path)</pre>
+<div class="block">Create a URI path template and encode (percent escape) any characters of
+ the template that are not valid URI characters. Paths that don't start with
+ a slash (<code>'/'</code>) will be automatically prefixed with one.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - the URI path template.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathTemplate.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html
new file mode 100644
index 00000000..be9d51e2
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html
@@ -0,0 +1,654 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PatternWithGroups (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PatternWithGroups (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PatternWithGroups.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></div>
+<h2 title="Class PatternWithGroups" class="title">Class PatternWithGroups</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.uri.internal.PatternWithGroups</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">PatternWithGroups</span>
+extends java.lang.Object</pre>
+<div class="block">A pattern for matching a string against a regular expression and returning capturing group values for any capturing
+ groups present in the expression.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Gerard Davison (gerard.davison at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
+<div class="block">The empty pattern that matches the null or empty string.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">PatternWithGroups</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct an empty pattern.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">PatternWithGroups</a></span>&#8203;(java.lang.String&nbsp;regex)</code></th>
+<td class="colLast">
+<div class="block">Construct a new pattern.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int%5B%5D)">PatternWithGroups</a></span>&#8203;(java.lang.String&nbsp;regex,
+                 int[]&nbsp;groupIndexes)</code></th>
+<td class="colLast">
+<div class="block">Construct a new pattern.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.regex.Pattern)">PatternWithGroups</a></span>&#8203;(java.util.regex.Pattern&nbsp;regexPattern)</code></th>
+<td class="colLast">
+<div class="block">Construct a new pattern.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.regex.Pattern,int%5B%5D)">PatternWithGroups</a></span>&#8203;(java.util.regex.Pattern&nbsp;regexPattern,
+                 int[]&nbsp;groupIndexes)</code></th>
+<td class="colLast">
+<div class="block">Construct a new pattern.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(java.lang.Object&nbsp;obj)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGroupIndexes()">getGroupIndexes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the group indexes to capturing groups.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRegex()">getRegex</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the regular expression.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.util.regex.MatchResult</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#match(java.lang.CharSequence)">match</a></span>&#8203;(java.lang.CharSequence&nbsp;cs)</code></th>
+<td class="colLast">
+<div class="block">Match against the pattern.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#match(java.lang.CharSequence,java.util.List)">match</a></span>&#8203;(java.lang.CharSequence&nbsp;cs,
+     java.util.List&lt;java.lang.String&gt;&nbsp;groupValues)</code></th>
+<td class="colLast">
+<div class="block">Match against the pattern.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#match(java.lang.CharSequence,java.util.List,java.util.Map)">match</a></span>&#8203;(java.lang.CharSequence&nbsp;cs,
+     java.util.List&lt;java.lang.String&gt;&nbsp;groupNames,
+     java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;groupValues)</code></th>
+<td class="colLast">
+<div class="block">Match against the pattern.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="EMPTY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY</h4>
+<pre>public static final&nbsp;<a href="PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a> EMPTY</pre>
+<div class="block">The empty pattern that matches the null or empty string.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PatternWithGroups</h4>
+<pre>protected&nbsp;PatternWithGroups()</pre>
+<div class="block">Construct an empty pattern.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PatternWithGroups</h4>
+<pre>public&nbsp;PatternWithGroups&#8203;(java.lang.String&nbsp;regex)
+                  throws java.util.regex.PatternSyntaxException</pre>
+<div class="block">Construct a new pattern.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>regex</code> - the regular expression. If the expression is <code>null</code> or an empty string then the pattern will
+              only match
+              a <code>null</code> or empty string.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.util.regex.PatternSyntaxException</code> - if the regular expression could not be compiled.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PatternWithGroups</h4>
+<pre>public&nbsp;PatternWithGroups&#8203;(java.lang.String&nbsp;regex,
+                         int[]&nbsp;groupIndexes)
+                  throws java.util.regex.PatternSyntaxException</pre>
+<div class="block">Construct a new pattern.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>regex</code> - the regular expression. If the expression is <code>null</code> or an empty string then the
+                     pattern
+                     will only match a <code>null</code> or empty string.</dd>
+<dd><code>groupIndexes</code> - the array of group indexes to capturing groups.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.util.regex.PatternSyntaxException</code> - if the regular expression could not be compiled.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.util.regex.Pattern)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PatternWithGroups</h4>
+<pre>public&nbsp;PatternWithGroups&#8203;(java.util.regex.Pattern&nbsp;regexPattern)
+                  throws java.lang.IllegalArgumentException</pre>
+<div class="block">Construct a new pattern.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>regexPattern</code> - the regular expression pattern.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the regexPattern is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.util.regex.Pattern,int[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PatternWithGroups</h4>
+<pre>public&nbsp;PatternWithGroups&#8203;(java.util.regex.Pattern&nbsp;regexPattern,
+                         int[]&nbsp;groupIndexes)
+                  throws java.lang.IllegalArgumentException</pre>
+<div class="block">Construct a new pattern.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>regexPattern</code> - the regular expression pattern.</dd>
+<dd><code>groupIndexes</code> - the array of group indexes to capturing groups.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the regexPattern is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getRegex()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRegex</h4>
+<pre class="methodSignature">public final&nbsp;java.lang.String&nbsp;getRegex()</pre>
+<div class="block">Get the regular expression.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the regular expression.</dd>
+</dl>
+</li>
+</ul>
+<a id="getGroupIndexes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGroupIndexes</h4>
+<pre class="methodSignature">public final&nbsp;int[]&nbsp;getGroupIndexes()</pre>
+<div class="block">Get the group indexes to capturing groups.
+ <p>
+ Any nested capturing groups will be ignored and the the group index will refer to the top-level capturing groups
+ associated with the templates variables.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the group indexes to capturing groups.</dd>
+</dl>
+</li>
+</ul>
+<a id="match(java.lang.CharSequence)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>match</h4>
+<pre class="methodSignature">public final&nbsp;java.util.regex.MatchResult&nbsp;match&#8203;(java.lang.CharSequence&nbsp;cs)</pre>
+<div class="block">Match against the pattern.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cs</code> - the char sequence to match against the template.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the match result, otherwise null if no match occurs.</dd>
+</dl>
+</li>
+</ul>
+<a id="match(java.lang.CharSequence,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>match</h4>
+<pre class="methodSignature">public final&nbsp;boolean&nbsp;match&#8203;(java.lang.CharSequence&nbsp;cs,
+                           java.util.List&lt;java.lang.String&gt;&nbsp;groupValues)
+                    throws java.lang.IllegalArgumentException</pre>
+<div class="block">Match against the pattern.
+ <p>
+ If a matched then the capturing group values (if any) will be added to a list passed in as parameter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cs</code> - the char sequence to match against the template.</dd>
+<dd><code>groupValues</code> - the list to add the values of a pattern's capturing groups if matching is successful. The
+                    values are
+                    added in the same order as the pattern's capturing groups. The list is cleared before values
+                    are added.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the char sequence matches the pattern, otherwise <code>false</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the group values is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="match(java.lang.CharSequence,java.util.List,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>match</h4>
+<pre class="methodSignature">public final&nbsp;boolean&nbsp;match&#8203;(java.lang.CharSequence&nbsp;cs,
+                           java.util.List&lt;java.lang.String&gt;&nbsp;groupNames,
+                           java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;groupValues)
+                    throws java.lang.IllegalArgumentException</pre>
+<div class="block">Match against the pattern.
+ <p>
+ If a matched then the capturing group values (if any) will be added to a list passed in as parameter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cs</code> - the char sequence to match against the template.</dd>
+<dd><code>groupNames</code> - the list names associated with a pattern's capturing groups. The names MUST be in the same
+                    order as the pattern's capturing groups and the size MUST be equal to or less than the number
+                    of capturing groups.</dd>
+<dd><code>groupValues</code> - the map to add the values of a pattern's capturing groups if matching is successful. A values
+                    is put into the map using the group name associated with the capturing group. The map is
+                    cleared before values are added.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the matches the pattern, otherwise <code>false</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if group values is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public final&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>hashCode</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public final&nbsp;boolean&nbsp;equals&#8203;(java.lang.Object&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>equals</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public final&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PatternWithGroups.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html
new file mode 100644
index 00000000..30141e29
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html
@@ -0,0 +1,567 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>UriComponent.Type (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UriComponent.Type (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriComponent.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></div>
+<h2 title="Enum UriComponent.Type" class="title">Enum UriComponent.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.uri.internal.UriComponent.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">UriComponent.Type</span>
+extends java.lang.Enum&lt;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&gt;</pre>
+<div class="block">The URI component type.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#AUTHORITY">AUTHORITY</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI authority component type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#FRAGMENT">FRAGMENT</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI fragment component type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#HOST">HOST</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI host component type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#MATRIX_PARAM">MATRIX_PARAM</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI path component type that is a matrix parameter.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PATH">PATH</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI path component type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PATH_SEGMENT">PATH_SEGMENT</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI path component type that is a path segment.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PORT">PORT</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI port component type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#QUERY">QUERY</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI query component type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#QUERY_PARAM">QUERY_PARAM</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI query component type that is a query parameter, space character is encoded as <code>+</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#QUERY_PARAM_SPACE_ENCODED">QUERY_PARAM_SPACE_ENCODED</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI query component type that is a query parameter, space character is encoded as <code>%20</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SCHEME">SCHEME</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI scheme component type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#UNRESERVED">UNRESERVED</a></span></code></th>
+<td class="colLast">
+<div class="block">ALPHA / DIGIT / "-" / "." / "_" / "~" characters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#USER_INFO">USER_INFO</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI user info component type.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="UNRESERVED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNRESERVED</h4>
+<pre>public static final&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> UNRESERVED</pre>
+<div class="block">ALPHA / DIGIT / "-" / "." / "_" / "~" characters.</div>
+</li>
+</ul>
+<a id="SCHEME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SCHEME</h4>
+<pre>public static final&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> SCHEME</pre>
+<div class="block">The URI scheme component type.</div>
+</li>
+</ul>
+<a id="AUTHORITY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTHORITY</h4>
+<pre>public static final&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> AUTHORITY</pre>
+<div class="block">The URI authority component type.</div>
+</li>
+</ul>
+<a id="USER_INFO">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USER_INFO</h4>
+<pre>public static final&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> USER_INFO</pre>
+<div class="block">The URI user info component type.</div>
+</li>
+</ul>
+<a id="HOST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HOST</h4>
+<pre>public static final&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> HOST</pre>
+<div class="block">The URI host component type.</div>
+</li>
+</ul>
+<a id="PORT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PORT</h4>
+<pre>public static final&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> PORT</pre>
+<div class="block">The URI port component type.</div>
+</li>
+</ul>
+<a id="PATH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PATH</h4>
+<pre>public static final&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> PATH</pre>
+<div class="block">The URI path component type.</div>
+</li>
+</ul>
+<a id="PATH_SEGMENT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PATH_SEGMENT</h4>
+<pre>public static final&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> PATH_SEGMENT</pre>
+<div class="block">The URI path component type that is a path segment.</div>
+</li>
+</ul>
+<a id="MATRIX_PARAM">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MATRIX_PARAM</h4>
+<pre>public static final&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> MATRIX_PARAM</pre>
+<div class="block">The URI path component type that is a matrix parameter.</div>
+</li>
+</ul>
+<a id="QUERY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>QUERY</h4>
+<pre>public static final&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> QUERY</pre>
+<div class="block">The URI query component type.</div>
+</li>
+</ul>
+<a id="QUERY_PARAM">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>QUERY_PARAM</h4>
+<pre>public static final&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> QUERY_PARAM</pre>
+<div class="block">The URI query component type that is a query parameter, space character is encoded as <code>+</code>.</div>
+</li>
+</ul>
+<a id="QUERY_PARAM_SPACE_ENCODED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>QUERY_PARAM_SPACE_ENCODED</h4>
+<pre>public static final&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> QUERY_PARAM_SPACE_ENCODED</pre>
+<div class="block">The URI query component type that is a query parameter, space character is encoded as <code>%20</code>.</div>
+</li>
+</ul>
+<a id="FRAGMENT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FRAGMENT</h4>
+<pre>public static final&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> FRAGMENT</pre>
+<div class="block">The URI fragment component type.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (UriComponent.Type c : UriComponent.Type.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriComponent.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriComponent.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriComponent.html
new file mode 100644
index 00000000..06f2e2dd
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriComponent.html
@@ -0,0 +1,844 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>UriComponent (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UriComponent (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriComponent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></div>
+<h2 title="Class UriComponent" class="title">Class UriComponent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.uri.internal.UriComponent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">UriComponent</span>
+extends java.lang.Object</pre>
+<div class="block">Utility class for validating, encoding and decoding components
+ of a URI.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marek Potociar (marek.potociar at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></span></code></th>
+<td class="colLast">
+<div class="block">The URI component type.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contextualEncode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">contextualEncode</a></span>&#8203;(java.lang.String&nbsp;s,
+                <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Contextually encodes the characters of string that are either non-ASCII characters or are ASCII characters that
+ must be percent-encoded using the UTF-8 encoding.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contextualEncode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">contextualEncode</a></span>&#8203;(java.lang.String&nbsp;s,
+                <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t,
+                boolean&nbsp;template)</code></th>
+<td class="colLast">
+<div class="block">Contextually encodes the characters of string that are either non-ASCII characters or are ASCII characters that
+ must be percent-encoded using the UTF-8 encoding.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">decode</a></span>&#8203;(java.lang.String&nbsp;s,
+      <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Decodes characters of a string that are percent-encoded octets using
+ UTF-8 decoding (if needed).</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decodeMatrix(java.lang.String,boolean)">decodeMatrix</a></span>&#8203;(java.lang.String&nbsp;pathSegment,
+            boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Decode the matrix component of a URI path segment.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static java.util.List&lt;<a href="PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decodePath(java.lang.String,boolean)">decodePath</a></span>&#8203;(java.lang.String&nbsp;path,
+          boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Decode the path component of a URI as path segments.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static java.util.List&lt;<a href="PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decodePath(java.net.URI,boolean)">decodePath</a></span>&#8203;(java.net.URI&nbsp;u,
+          boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Decode the path component of a URI as path segments.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decodePathSegment(java.util.List,java.lang.String,boolean)">decodePathSegment</a></span>&#8203;(java.util.List&lt;<a href="PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a>&gt;&nbsp;segments,
+                 java.lang.String&nbsp;segment,
+                 boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Decode the path segment and add it to the list of path segments.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decodeQuery(java.lang.String,boolean)">decodeQuery</a></span>&#8203;(java.lang.String&nbsp;q,
+           boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Decode the query component of a URI.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decodeQuery(java.lang.String,boolean,boolean)">decodeQuery</a></span>&#8203;(java.lang.String&nbsp;q,
+           boolean&nbsp;decodeNames,
+           boolean&nbsp;decodeValues)</code></th>
+<td class="colLast">
+<div class="block">Decode the query component of a URI.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decodeQuery(java.net.URI,boolean)">decodeQuery</a></span>&#8203;(java.net.URI&nbsp;u,
+           boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Decode the query component of a URI.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">encode</a></span>&#8203;(java.lang.String&nbsp;s,
+      <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Encodes the characters of string that are either non-ASCII characters
+ or are ASCII characters that must be percent-encoded using the
+ UTF-8 encoding.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">encode</a></span>&#8203;(java.lang.String&nbsp;s,
+      <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t,
+      boolean&nbsp;template)</code></th>
+<td class="colLast">
+<div class="block">Encodes the characters of string that are either non-ASCII characters
+ or are ASCII characters that must be percent-encoded using the
+ UTF-8 encoding.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encodeTemplateNames(java.lang.String)">encodeTemplateNames</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
+<td class="colLast">
+<div class="block">Encodes a string with template parameters names present, specifically the
+ characters '{' and '}' will be percent-encoded.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fullRelativeUri(java.net.URI)">fullRelativeUri</a></span>&#8203;(java.net.URI&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Return the <code>Request-Uri</code> representation as defined by HTTP spec.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isHexCharacter(char)">isHexCharacter</a></span>&#8203;(char&nbsp;c)</code></th>
+<td class="colLast">
+<div class="block">Checks whether the character <code>c</code> is hexadecimal character.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valid(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">valid</a></span>&#8203;(java.lang.String&nbsp;s,
+     <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valid(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">valid</a></span>&#8203;(java.lang.String&nbsp;s,
+     <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t,
+     boolean&nbsp;template)</code></th>
+<td class="colLast">
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validate(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">validate</a></span>&#8203;(java.lang.String&nbsp;s,
+        <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validate(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">validate</a></span>&#8203;(java.lang.String&nbsp;s,
+        <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t,
+        boolean&nbsp;template)</code></th>
+<td class="colLast">
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="validate(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>validate</h4>
+<pre class="methodSignature">public static&nbsp;void&nbsp;validate&#8203;(java.lang.String&nbsp;s,
+                            <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</pre>
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the encoded string.</dd>
+<dd><code>t</code> - the URI component type identifying the legal characters.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the encoded string contains illegal characters.</dd>
+</dl>
+</li>
+</ul>
+<a id="validate(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>validate</h4>
+<pre class="methodSignature">public static&nbsp;void&nbsp;validate&#8203;(java.lang.String&nbsp;s,
+                            <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t,
+                            boolean&nbsp;template)</pre>
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the encoded string.</dd>
+<dd><code>t</code> - the URI component type identifying the legal characters.</dd>
+<dd><code>template</code> - true if the encoded string contains URI template variables</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the encoded string contains illegal characters.</dd>
+</dl>
+</li>
+</ul>
+<a id="valid(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valid</h4>
+<pre class="methodSignature">public static&nbsp;boolean&nbsp;valid&#8203;(java.lang.String&nbsp;s,
+                            <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</pre>
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the encoded string.</dd>
+<dd><code>t</code> - the URI component type identifying the legal characters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the encoded string is valid, otherwise false.</dd>
+</dl>
+</li>
+</ul>
+<a id="valid(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valid</h4>
+<pre class="methodSignature">public static&nbsp;boolean&nbsp;valid&#8203;(java.lang.String&nbsp;s,
+                            <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t,
+                            boolean&nbsp;template)</pre>
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the encoded string.</dd>
+<dd><code>t</code> - the URI component type identifying the legal characters.</dd>
+<dd><code>template</code> - true if the encoded string contains URI template variables</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the encoded string is valid, otherwise false.</dd>
+</dl>
+</li>
+</ul>
+<a id="contextualEncode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contextualEncode</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;contextualEncode&#8203;(java.lang.String&nbsp;s,
+                                                <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</pre>
+<div class="block">Contextually encodes the characters of string that are either non-ASCII characters or are ASCII characters that
+ must be percent-encoded using the UTF-8 encoding. Percent-encoded characters will be recognized and not double
+ encoded.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the string to be encoded.</dd>
+<dd><code>t</code> - the URI component type identifying the ASCII characters that must be percent-encoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the encoded string.</dd>
+</dl>
+</li>
+</ul>
+<a id="contextualEncode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contextualEncode</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;contextualEncode&#8203;(java.lang.String&nbsp;s,
+                                                <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t,
+                                                boolean&nbsp;template)</pre>
+<div class="block">Contextually encodes the characters of string that are either non-ASCII characters or are ASCII characters that
+ must be percent-encoded using the UTF-8 encoding. Percent-encoded characters will be recognized and not double
+ encoded.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the string to be encoded.</dd>
+<dd><code>t</code> - the URI component type identifying the ASCII characters that must be percent-encoded.</dd>
+<dd><code>template</code> - true if the encoded string contains URI template variables</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the encoded string.</dd>
+</dl>
+</li>
+</ul>
+<a id="encode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encode</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;encode&#8203;(java.lang.String&nbsp;s,
+                                      <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</pre>
+<div class="block">Encodes the characters of string that are either non-ASCII characters
+ or are ASCII characters that must be percent-encoded using the
+ UTF-8 encoding.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the string to be encoded.</dd>
+<dd><code>t</code> - the URI component type identifying the ASCII characters that
+          must be percent-encoded.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the encoded string.</dd>
+</dl>
+</li>
+</ul>
+<a id="encode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encode</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;encode&#8203;(java.lang.String&nbsp;s,
+                                      <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t,
+                                      boolean&nbsp;template)</pre>
+<div class="block">Encodes the characters of string that are either non-ASCII characters
+ or are ASCII characters that must be percent-encoded using the
+ UTF-8 encoding.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the string to be encoded.</dd>
+<dd><code>t</code> - the URI component type identifying the ASCII characters that
+                 must be percent-encoded.</dd>
+<dd><code>template</code> - true if the encoded string contains URI template variables</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the encoded string.</dd>
+</dl>
+</li>
+</ul>
+<a id="encodeTemplateNames(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encodeTemplateNames</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;encodeTemplateNames&#8203;(java.lang.String&nbsp;s)</pre>
+<div class="block">Encodes a string with template parameters names present, specifically the
+ characters '{' and '}' will be percent-encoded.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the string with zero or more template parameters names</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the string with encoded template parameters names.</dd>
+</dl>
+</li>
+</ul>
+<a id="decode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decode</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;decode&#8203;(java.lang.String&nbsp;s,
+                                      <a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</pre>
+<div class="block">Decodes characters of a string that are percent-encoded octets using
+ UTF-8 decoding (if needed).
+ <p>
+ It is assumed that the string is valid according to an (unspecified) URI
+ component type. If a sequence of contiguous percent-encoded octets is
+ not a valid UTF-8 character then the octets are replaced with '�'.
+ <p>
+ If the URI component is of type HOST then any "%" found between "[]" is
+ left alone. It is an IPv6 literal with a scope_id.
+ <p>
+ If the URI component is of type QUERY_PARAM then any "+" is decoded as
+ as ' '.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - the string to be decoded.</dd>
+<dd><code>t</code> - the URI component type, may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the decoded string.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if a malformed percent-encoded octet is
+                                  detected</dd>
+</dl>
+</li>
+</ul>
+<a id="decodeQuery(java.net.URI,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decodeQuery</h4>
+<pre class="methodSignature">public static&nbsp;<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;decodeQuery&#8203;(java.net.URI&nbsp;u,
+                                                                                  boolean&nbsp;decode)</pre>
+<div class="block">Decode the query component of a URI.
+ <p>
+ Query parameter names in the returned map are always decoded. Decoding of query parameter
+ values can be controlled using the <code>decode</code> parameter flag.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>u</code> - the URI.</dd>
+<dd><code>decode</code> - <code>true</code> if the returned query parameter values of the query component
+               should be in decoded form.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the multivalued map of query parameters.</dd>
+</dl>
+</li>
+</ul>
+<a id="decodeQuery(java.lang.String,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decodeQuery</h4>
+<pre class="methodSignature">public static&nbsp;<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;decodeQuery&#8203;(java.lang.String&nbsp;q,
+                                                                                  boolean&nbsp;decode)</pre>
+<div class="block">Decode the query component of a URI.
+ <p>
+ Query parameter names in the returned map are always decoded. Decoding of query parameter
+ values can be controlled using the <code>decode</code> parameter flag.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>q</code> - the query component in encoded form.</dd>
+<dd><code>decode</code> - <code>true</code> if the returned query parameter values of the query component
+               should be in decoded form.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the multivalued map of query parameters.</dd>
+</dl>
+</li>
+</ul>
+<a id="decodeQuery(java.lang.String,boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decodeQuery</h4>
+<pre class="methodSignature">public static&nbsp;<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;decodeQuery&#8203;(java.lang.String&nbsp;q,
+                                                                                  boolean&nbsp;decodeNames,
+                                                                                  boolean&nbsp;decodeValues)</pre>
+<div class="block">Decode the query component of a URI.
+ <p>
+ Decoding of query parameter names and values can be controlled using the <code>decodeNames</code>
+ and <code>decodeValues</code> parameter flags.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>q</code> - the query component in encoded form.</dd>
+<dd><code>decodeNames</code> - <code>true</code> if the returned query parameter names of the query component
+                     should be in decoded form.</dd>
+<dd><code>decodeValues</code> - <code>true</code> if the returned query parameter values of the query component
+                     should be in decoded form.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the multivalued map of query parameters.</dd>
+</dl>
+</li>
+</ul>
+<a id="decodePath(java.net.URI,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decodePath</h4>
+<pre class="methodSignature">public static&nbsp;java.util.List&lt;<a href="PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a>&gt;&nbsp;decodePath&#8203;(java.net.URI&nbsp;u,
+                                                     boolean&nbsp;decode)</pre>
+<div class="block">Decode the path component of a URI as path segments.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>u</code> - the URI. If the path component is an absolute path component
+               then the leading '/' is ignored and is not considered a delimiator
+               of a path segment.</dd>
+<dd><code>decode</code> - true if the path segments of the path component
+               should be in decoded form.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list of path segments.</dd>
+</dl>
+</li>
+</ul>
+<a id="decodePath(java.lang.String,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decodePath</h4>
+<pre class="methodSignature">public static&nbsp;java.util.List&lt;<a href="PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a>&gt;&nbsp;decodePath&#8203;(java.lang.String&nbsp;path,
+                                                     boolean&nbsp;decode)</pre>
+<div class="block">Decode the path component of a URI as path segments.
+ <p>
+ Any '/' character in the path is considered to be a deliminator
+ between two path segments. Thus if the path is '/' then the path segment
+ list will contain two empty path segments. If the path is "//" then
+ the path segment list will contain three empty path segments. If the path
+ is "/a/" the path segment list will consist of the following path
+ segments in order: "", "a" and "".</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - the path component in encoded form.</dd>
+<dd><code>decode</code> - true if the path segments of the path component
+               should be in decoded form.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list of path segments.</dd>
+</dl>
+</li>
+</ul>
+<a id="decodePathSegment(java.util.List,java.lang.String,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decodePathSegment</h4>
+<pre class="methodSignature">public static&nbsp;void&nbsp;decodePathSegment&#8203;(java.util.List&lt;<a href="PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a>&gt;&nbsp;segments,
+                                     java.lang.String&nbsp;segment,
+                                     boolean&nbsp;decode)</pre>
+<div class="block">Decode the path segment and add it to the list of path segments.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>segments</code> - mutable list of path segments.</dd>
+<dd><code>segment</code> - path segment to be decoded.</dd>
+<dd><code>decode</code> - <code>true</code> if the path segment should be in a decoded form.</dd>
+</dl>
+</li>
+</ul>
+<a id="decodeMatrix(java.lang.String,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decodeMatrix</h4>
+<pre class="methodSignature">public static&nbsp;<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;decodeMatrix&#8203;(java.lang.String&nbsp;pathSegment,
+                                                                                   boolean&nbsp;decode)</pre>
+<div class="block">Decode the matrix component of a URI path segment.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>pathSegment</code> - the path segment component in encoded form.</dd>
+<dd><code>decode</code> - true if the matrix parameters of the path segment component should be in decoded form.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the multivalued map of matrix parameters.</dd>
+</dl>
+</li>
+</ul>
+<a id="isHexCharacter(char)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isHexCharacter</h4>
+<pre class="methodSignature">public static&nbsp;boolean&nbsp;isHexCharacter&#8203;(char&nbsp;c)</pre>
+<div class="block">Checks whether the character <code>c</code> is hexadecimal character.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - Any character</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The is <code>c</code> is a hexadecimal character (e.g. 0, 5, a, A, f, ...)</dd>
+</dl>
+</li>
+</ul>
+<a id="fullRelativeUri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>fullRelativeUri</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;fullRelativeUri&#8203;(java.net.URI&nbsp;uri)</pre>
+<div class="block">Return the <code>Request-Uri</code> representation as defined by HTTP spec. For example:
+ <pre>&lt;Method&gt; &lt;Request-URI&gt; HTTP/&lt;Version&gt; (e.g. GET /auth;foo=bar/hello?foo=bar HTTP/1.1)</pre></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - uri to obtain <code>Request-Uri</code> from.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>Request-Uri</code> representation or <code>null</code> if <code>uri</code> is not provided.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriComponent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriTemplate.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriTemplate.html
new file mode 100644
index 00000000..9c1cd702
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriTemplate.html
@@ -0,0 +1,1295 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>UriTemplate (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UriTemplate (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10,"i5":9,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriTemplate.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></div>
+<h2 title="Class UriTemplate" class="title">Class UriTemplate</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.uri.internal.UriTemplate</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">UriTemplate</span>
+extends java.lang.Object</pre>
+<div class="block">A URI template.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Martin Matula (martin.matula at oracle.com), Gerard Davison (gerard.davison at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.util.Comparator&lt;<a href="UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#COMPARATOR">COMPARATOR</a></span></code></th>
+<td class="colLast">
+<div class="block">Order the templates according to JAX-RS specification.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
+<div class="block">The empty URI template that matches the <code>null</code> or empty URI path.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">UriTemplate</a></span>&#8203;(java.lang.String&nbsp;template)</code></th>
+<td class="colLast">
+<div class="block">Construct a new URI template.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.UriTemplateParser)">UriTemplate</a></span>&#8203;(<a href="UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a>&nbsp;templateParser)</code></th>
+<td class="colLast">
+<div class="block">Construct a new URI template.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createURI(java.lang.String...)">createURI</a></span>&#8203;(java.lang.String...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Create a URI by substituting any template variables
+ for corresponding template values.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createURI(java.lang.String%5B%5D,int,int)">createURI</a></span>&#8203;(java.lang.String[]&nbsp;values,
+         int&nbsp;offset,
+         int&nbsp;length)</code></th>
+<td class="colLast">
+<div class="block">Create a URI by substituting any template variables
+ for corresponding template values.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createURI(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Object%5B%5D,boolean,boolean)">createURI</a></span>&#8203;(java.lang.String&nbsp;scheme,
+         java.lang.String&nbsp;authority,
+         java.lang.String&nbsp;userInfo,
+         java.lang.String&nbsp;host,
+         java.lang.String&nbsp;port,
+         java.lang.String&nbsp;path,
+         java.lang.String&nbsp;query,
+         java.lang.String&nbsp;fragment,
+         java.lang.Object[]&nbsp;values,
+         boolean&nbsp;encode,
+         boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Construct a URI from the component parts each of which may contain
+ template variables.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createURI(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.Map,boolean,boolean)">createURI</a></span>&#8203;(java.lang.String&nbsp;scheme,
+         java.lang.String&nbsp;authority,
+         java.lang.String&nbsp;userInfo,
+         java.lang.String&nbsp;host,
+         java.lang.String&nbsp;port,
+         java.lang.String&nbsp;path,
+         java.lang.String&nbsp;query,
+         java.lang.String&nbsp;fragment,
+         java.util.Map&lt;java.lang.String,&#8203;?&gt;&nbsp;values,
+         boolean&nbsp;encode,
+         boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Construct a URI from the component parts each of which may contain
+ template variables.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createURI(java.util.Map)">createURI</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Create a URI by substituting any template variables
+ for corresponding template values.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createURIWithStringValues(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String%5B%5D,boolean,boolean)">createURIWithStringValues</a></span>&#8203;(java.lang.String&nbsp;scheme,
+                         java.lang.String&nbsp;authority,
+                         java.lang.String&nbsp;userInfo,
+                         java.lang.String&nbsp;host,
+                         java.lang.String&nbsp;port,
+                         java.lang.String&nbsp;path,
+                         java.lang.String&nbsp;query,
+                         java.lang.String&nbsp;fragment,
+                         java.lang.String[]&nbsp;values,
+                         boolean&nbsp;encode,
+                         boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Construct a URI from the component parts each of which may contain
+ template variables.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createURIWithStringValues(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.Map,boolean,boolean)">createURIWithStringValues</a></span>&#8203;(java.lang.String&nbsp;scheme,
+                         java.lang.String&nbsp;authority,
+                         java.lang.String&nbsp;userInfo,
+                         java.lang.String&nbsp;host,
+                         java.lang.String&nbsp;port,
+                         java.lang.String&nbsp;path,
+                         java.lang.String&nbsp;query,
+                         java.lang.String&nbsp;fragment,
+                         java.util.Map&lt;java.lang.String,&#8203;?&gt;&nbsp;values,
+                         boolean&nbsp;encode,
+                         boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Construct a URI from the component parts each of which may contain
+ template variables.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#endsWithSlash()">endsWithSlash</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the URI template ends in a slash (<code>'/'</code>).</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(java.lang.Object&nbsp;o)</code></th>
+<td class="colLast">
+<div class="block">Equality is calculated from the String of the regular expression
+ generated from the templates.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumberOfExplicitCharacters()">getNumberOfExplicitCharacters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the number of characters in the regular expression not resulting
+ from conversion of template variables.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumberOfExplicitRegexes()">getNumberOfExplicitRegexes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the number of explicit regular expressions declared in the template variables.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumberOfRegexGroups()">getNumberOfRegexGroups</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the number of regular expression groups</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumberOfTemplateVariables()">getNumberOfTemplateVariables</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the number of template variables.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPattern()">getPattern</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI pattern.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTemplate()">getTemplate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI template as a String.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTemplateVariables()">getTemplateVariables</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the list of template variables for the template.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Hash code is calculated from String of the regular expression
+ generated from the template.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isTemplateVariablePresent(java.lang.String)">isTemplateVariablePresent</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Ascertain if a template variable is a member of this
+ template.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#match(java.lang.CharSequence,java.util.List)">match</a></span>&#8203;(java.lang.CharSequence&nbsp;uri,
+     java.util.List&lt;java.lang.String&gt;&nbsp;groupValues)</code></th>
+<td class="colLast">
+<div class="block">Match a URI against the template.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#match(java.lang.CharSequence,java.util.Map)">match</a></span>&#8203;(java.lang.CharSequence&nbsp;uri,
+     java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;templateVariableToValue)</code></th>
+<td class="colLast">
+<div class="block">Match a URI against the template.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>static java.net.URI</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#normalize(java.lang.String)">normalize</a></span>&#8203;(java.lang.String&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Normalize the URI by resolve the dot &amp; dot-dot path segments as described in
+ <a href="http://tools.ietf.org/html/rfc3986#section-5.2.4">RFC 3986</a>.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>static java.net.URI</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#normalize(java.net.URI)">normalize</a></span>&#8203;(java.net.URI&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Normalize the URI by resolve the dot &amp; dot-dot path segments as described in
+ <a href="http://tools.ietf.org/html/rfc3986#section-5.2.4">RFC 3986</a>.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>static java.net.URI</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#relativize(java.net.URI,java.net.URI)">relativize</a></span>&#8203;(java.net.URI&nbsp;baseUri,
+          java.net.URI&nbsp;refUri)</code></th>
+<td class="colLast">
+<div class="block">Relativize URI with respect to a base URI.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>static java.net.URI</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolve(java.net.URI,java.lang.String)">resolve</a></span>&#8203;(java.net.URI&nbsp;baseUri,
+       java.lang.String&nbsp;refUri)</code></th>
+<td class="colLast">
+<div class="block">Resolve a relative URI reference against a base URI as defined in
+ <a href="http://tools.ietf.org/html/rfc3986#section-5.4">RFC 3986</a>.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>static java.net.URI</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolve(java.net.URI,java.net.URI)">resolve</a></span>&#8203;(java.net.URI&nbsp;baseUri,
+       java.net.URI&nbsp;refUri)</code></th>
+<td class="colLast">
+<div class="block">Resolve a relative URI reference against a base URI as defined in
+ <a href="http://tools.ietf.org/html/rfc3986#section-5.4">RFC 3986</a>.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplateValues(org.glassfish.tyrus.core.uri.internal.UriComponent.Type,java.lang.String,boolean,java.util.Map)">resolveTemplateValues</a></span>&#8203;(<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;type,
+                     java.lang.String&nbsp;template,
+                     boolean&nbsp;encode,
+                     java.util.Map&lt;java.lang.String,&#8203;?&gt;&nbsp;_mapValues)</code></th>
+<td class="colLast">
+<div class="block">Resolves template variables in the given <code>template</code> from <code>_mapValues</code>.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="COMPARATOR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>COMPARATOR</h4>
+<pre>public static final&nbsp;java.util.Comparator&lt;<a href="UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a>&gt; COMPARATOR</pre>
+<div class="block">Order the templates according to JAX-RS specification.
+ <p>
+ Sort the set of matching resource classes using the number of
+ characters in the regular expression not resulting from template
+ variables as the primary key, the number of matching groups
+ as a secondary key, and the number of explicit regular expression
+ declarations as the tertiary key.</div>
+</li>
+</ul>
+<a id="EMPTY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY</h4>
+<pre>public static final&nbsp;<a href="UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a> EMPTY</pre>
+<div class="block">The empty URI template that matches the <code>null</code> or empty URI path.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UriTemplate</h4>
+<pre>public&nbsp;UriTemplate&#8203;(java.lang.String&nbsp;template)
+            throws java.util.regex.PatternSyntaxException,
+                   java.lang.IllegalArgumentException</pre>
+<div class="block">Construct a new URI template.
+ <p>
+ The template will be parsed to extract template variables.
+ <p>
+ A specific regular expression will be generated from the template
+ to match URIs according to the template and map template variables to
+ template values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>template</code> - the template.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.util.regex.PatternSyntaxException</code> - if the specified
+                                  regular expression could not be generated</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if the template is <code>null</code> or
+                                  an empty string.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(org.glassfish.tyrus.core.uri.internal.UriTemplateParser)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UriTemplate</h4>
+<pre>protected&nbsp;UriTemplate&#8203;(<a href="UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a>&nbsp;templateParser)
+               throws java.util.regex.PatternSyntaxException,
+                      java.lang.IllegalArgumentException</pre>
+<div class="block">Construct a new URI template.
+ <p>
+ The template will be parsed to extract template variables.
+ <p>
+ A specific regular expression will be generated from the template
+ to match URIs according to the template and map template variables to
+ template values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>templateParser</code> - the parser to parse the template.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.util.regex.PatternSyntaxException</code> - if the specified
+                                  regular expression could not be generated</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if the template is <code>null</code> or
+                                  an empty string.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="resolve(java.net.URI,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolve</h4>
+<pre class="methodSignature">public static&nbsp;java.net.URI&nbsp;resolve&#8203;(java.net.URI&nbsp;baseUri,
+                                   java.lang.String&nbsp;refUri)</pre>
+<div class="block">Resolve a relative URI reference against a base URI as defined in
+ <a href="http://tools.ietf.org/html/rfc3986#section-5.4">RFC 3986</a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>baseUri</code> - base URI to be used for resolution.</dd>
+<dd><code>refUri</code> - reference URI string to be resolved against the base URI.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>resolved URI.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - If the given string violates the URI specification RFC.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolve(java.net.URI,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolve</h4>
+<pre class="methodSignature">public static&nbsp;java.net.URI&nbsp;resolve&#8203;(java.net.URI&nbsp;baseUri,
+                                   java.net.URI&nbsp;refUri)</pre>
+<div class="block">Resolve a relative URI reference against a base URI as defined in
+ <a href="http://tools.ietf.org/html/rfc3986#section-5.4">RFC 3986</a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>baseUri</code> - base URI to be used for resolution.</dd>
+<dd><code>refUri</code> - reference URI to be resolved against the base URI.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>resolved URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="normalize(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>normalize</h4>
+<pre class="methodSignature">public static&nbsp;java.net.URI&nbsp;normalize&#8203;(java.lang.String&nbsp;uri)</pre>
+<div class="block">Normalize the URI by resolve the dot &amp; dot-dot path segments as described in
+ <a href="http://tools.ietf.org/html/rfc3986#section-5.2.4">RFC 3986</a>.
+ <p>
+ This method provides a workaround for issues with <code>URI.normalize()</code> which
+ is not able to properly normalize absolute paths that start with a <code>".."</code> segment,
+ e.g. <code>"/../a/b"</code> as required by RFC 3986 (according to RFC 3986 the path <code>"/../a/b"</code>
+ should resolve to <code>"/a/b"</code>, while <code>URI.normalize()</code> keeps the <code>".."</code> segment
+ in the URI path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - the original URI string.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI with dot and dot-dot segments resolved.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - If the given string violates the URI specification RFC.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><code>URI.normalize()</code></dd>
+</dl>
+</li>
+</ul>
+<a id="normalize(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>normalize</h4>
+<pre class="methodSignature">public static&nbsp;java.net.URI&nbsp;normalize&#8203;(java.net.URI&nbsp;uri)</pre>
+<div class="block">Normalize the URI by resolve the dot &amp; dot-dot path segments as described in
+ <a href="http://tools.ietf.org/html/rfc3986#section-5.2.4">RFC 3986</a>.
+ <p>
+ This method provides a workaround for issues with <code>URI.normalize()</code> which
+ is not able to properly normalize absolute paths that start with a <code>".."</code> segment,
+ e.g. <code>"/../a/b"</code> as required by RFC 3986 (according to RFC 3986 the path <code>"/../a/b"</code>
+ should resolve to <code>"/a/b"</code>, while <code>URI.normalize()</code> keeps the <code>".."</code> segment
+ in the URI path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - the original URI.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI with dot and dot-dot segments resolved.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><code>URI.normalize()</code></dd>
+</dl>
+</li>
+</ul>
+<a id="relativize(java.net.URI,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>relativize</h4>
+<pre class="methodSignature">public static&nbsp;java.net.URI&nbsp;relativize&#8203;(java.net.URI&nbsp;baseUri,
+                                      java.net.URI&nbsp;refUri)</pre>
+<div class="block">Relativize URI with respect to a base URI.
+ <p>
+ After the relativization is done, dots in paths of both URIs are <a href="#normalize(java.net.URI)"><code>resolved</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>baseUri</code> - base URI to be used for relativization.</dd>
+<dd><code>refUri</code> - URI to be relativized.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>relativized URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getTemplate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTemplate</h4>
+<pre class="methodSignature">public final&nbsp;java.lang.String&nbsp;getTemplate()</pre>
+<div class="block">Get the URI template as a String.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI template.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPattern()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPattern</h4>
+<pre class="methodSignature">public final&nbsp;<a href="PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a>&nbsp;getPattern()</pre>
+<div class="block">Get the URI pattern.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI pattern.</dd>
+</dl>
+</li>
+</ul>
+<a id="endsWithSlash()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>endsWithSlash</h4>
+<pre class="methodSignature">public final&nbsp;boolean&nbsp;endsWithSlash()</pre>
+<div class="block">Check if the URI template ends in a slash (<code>'/'</code>).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the template ends in a '/', otherwise false.</dd>
+</dl>
+</li>
+</ul>
+<a id="getTemplateVariables()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTemplateVariables</h4>
+<pre class="methodSignature">public final&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;getTemplateVariables()</pre>
+<div class="block">Get the list of template variables for the template.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list of template variables.</dd>
+</dl>
+</li>
+</ul>
+<a id="isTemplateVariablePresent(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isTemplateVariablePresent</h4>
+<pre class="methodSignature">public final&nbsp;boolean&nbsp;isTemplateVariablePresent&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Ascertain if a template variable is a member of this
+ template.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name The template variable.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the template variable is a member of the template, otherwise <code>false</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNumberOfExplicitRegexes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumberOfExplicitRegexes</h4>
+<pre class="methodSignature">public final&nbsp;int&nbsp;getNumberOfExplicitRegexes()</pre>
+<div class="block">Get the number of explicit regular expressions declared in the template variables.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the number of explicit regular expressions in the template variables.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNumberOfRegexGroups()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumberOfRegexGroups</h4>
+<pre class="methodSignature">public final&nbsp;int&nbsp;getNumberOfRegexGroups()</pre>
+<div class="block">Get the number of regular expression groups</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the number of regular expressions groups</dd>
+</dl>
+</li>
+</ul>
+<a id="getNumberOfExplicitCharacters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumberOfExplicitCharacters</h4>
+<pre class="methodSignature">public final&nbsp;int&nbsp;getNumberOfExplicitCharacters()</pre>
+<div class="block">Get the number of characters in the regular expression not resulting
+ from conversion of template variables.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the number of explicit characters</dd>
+</dl>
+</li>
+</ul>
+<a id="getNumberOfTemplateVariables()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumberOfTemplateVariables</h4>
+<pre class="methodSignature">public final&nbsp;int&nbsp;getNumberOfTemplateVariables()</pre>
+<div class="block">Get the number of template variables.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the number of template variables.</dd>
+</dl>
+</li>
+</ul>
+<a id="match(java.lang.CharSequence,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>match</h4>
+<pre class="methodSignature">public final&nbsp;boolean&nbsp;match&#8203;(java.lang.CharSequence&nbsp;uri,
+                           java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;templateVariableToValue)
+                    throws java.lang.IllegalArgumentException</pre>
+<div class="block">Match a URI against the template.
+ <p>
+ If the URI matches against the pattern then the template variable to value
+ map will be filled with template variables as keys and template values as
+ values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - the uri to match against the template.</dd>
+<dd><code>templateVariableToValue</code> - the map where to put template variables (as keys)
+                                and template values (as values). The map is cleared before any
+                                entries are put.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the URI matches the template, otherwise false.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the uri or
+                                  templateVariableToValue is null.</dd>
+</dl>
+</li>
+</ul>
+<a id="match(java.lang.CharSequence,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>match</h4>
+<pre class="methodSignature">public final&nbsp;boolean&nbsp;match&#8203;(java.lang.CharSequence&nbsp;uri,
+                           java.util.List&lt;java.lang.String&gt;&nbsp;groupValues)
+                    throws java.lang.IllegalArgumentException</pre>
+<div class="block">Match a URI against the template.
+ <p>
+ If the URI matches against the pattern the capturing group values (if any)
+ will be added to a list passed in as parameter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - the uri to match against the template.</dd>
+<dd><code>groupValues</code> - the list to store the values of a pattern's
+                    capturing groups is matching is successful. The values are stored
+                    in the same order as the pattern's capturing groups.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the URI matches the template, otherwise false.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the uri or
+                                  templateVariableToValue is null.</dd>
+</dl>
+</li>
+</ul>
+<a id="createURI(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createURI</h4>
+<pre class="methodSignature">public final&nbsp;java.lang.String&nbsp;createURI&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;values)</pre>
+<div class="block">Create a URI by substituting any template variables
+ for corresponding template values.
+ <p>
+ A URI template variable without a value will be substituted by the
+ empty string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - the map of template variables to template values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="createURI(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createURI</h4>
+<pre class="methodSignature">public final&nbsp;java.lang.String&nbsp;createURI&#8203;(java.lang.String...&nbsp;values)</pre>
+<div class="block">Create a URI by substituting any template variables
+ for corresponding template values.
+ <p>
+ A URI template variable without a value will be substituted by the
+ empty string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - the array of template values. The values will be
+               substituted in order of occurrence of unique template variables.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="createURI(java.lang.String[],int,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createURI</h4>
+<pre class="methodSignature">public final&nbsp;java.lang.String&nbsp;createURI&#8203;(java.lang.String[]&nbsp;values,
+                                        int&nbsp;offset,
+                                        int&nbsp;length)</pre>
+<div class="block">Create a URI by substituting any template variables
+ for corresponding template values.
+ <p>
+ A URI template variable without a value will be substituted by the
+ empty string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - the array of template values. The values will be
+               substituted in order of occurrence of unique template variables.</dd>
+<dd><code>offset</code> - the offset into the template value array.</dd>
+<dd><code>length</code> - the length of the template value array.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public final&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public final&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">Hash code is calculated from String of the regular expression
+ generated from the template.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>hashCode</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the hash code.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public final&nbsp;boolean&nbsp;equals&#8203;(java.lang.Object&nbsp;o)</pre>
+<div class="block">Equality is calculated from the String of the regular expression
+ generated from the templates.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>equals</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - the reference object with which to compare.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if equals, otherwise false.</dd>
+</dl>
+</li>
+</ul>
+<a id="createURI(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.Map,boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createURI</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;createURI&#8203;(java.lang.String&nbsp;scheme,
+                                         java.lang.String&nbsp;authority,
+                                         java.lang.String&nbsp;userInfo,
+                                         java.lang.String&nbsp;host,
+                                         java.lang.String&nbsp;port,
+                                         java.lang.String&nbsp;path,
+                                         java.lang.String&nbsp;query,
+                                         java.lang.String&nbsp;fragment,
+                                         java.util.Map&lt;java.lang.String,&#8203;?&gt;&nbsp;values,
+                                         boolean&nbsp;encode,
+                                         boolean&nbsp;encodeSlashInPath)</pre>
+<div class="block">Construct a URI from the component parts each of which may contain
+ template variables.
+ <p>
+ A template values is an Object instance MUST support the toString()
+ method to convert the template value to a String instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>scheme</code> - the URI scheme component.</dd>
+<dd><code>authority</code> - the URI authority component.</dd>
+<dd><code>userInfo</code> - the URI user info component.</dd>
+<dd><code>host</code> - the URI host component.</dd>
+<dd><code>port</code> - the URI port component.</dd>
+<dd><code>path</code> - the URI path component.</dd>
+<dd><code>query</code> - the URI query component.</dd>
+<dd><code>fragment</code> - the URI fragment component.</dd>
+<dd><code>values</code> - the template variable to value map.</dd>
+<dd><code>encode</code> - if true encode a template value according to the correspond
+                          component type of the associated template variable, otherwise
+                          contextually encode the template value.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
+                          in parameter values will be encoded if the template
+                          is placed in the URI path component, otherwise the slash
+                          characters will not be encoded in path templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="createURIWithStringValues(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.util.Map,boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createURIWithStringValues</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;createURIWithStringValues&#8203;(java.lang.String&nbsp;scheme,
+                                                         java.lang.String&nbsp;authority,
+                                                         java.lang.String&nbsp;userInfo,
+                                                         java.lang.String&nbsp;host,
+                                                         java.lang.String&nbsp;port,
+                                                         java.lang.String&nbsp;path,
+                                                         java.lang.String&nbsp;query,
+                                                         java.lang.String&nbsp;fragment,
+                                                         java.util.Map&lt;java.lang.String,&#8203;?&gt;&nbsp;values,
+                                                         boolean&nbsp;encode,
+                                                         boolean&nbsp;encodeSlashInPath)</pre>
+<div class="block">Construct a URI from the component parts each of which may contain
+ template variables.
+ <p>
+ A template value is an Object instance that MUST support the toString()
+ method to convert the template value to a String instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>scheme</code> - the URI scheme component.</dd>
+<dd><code>authority</code> - the URI authority info component.</dd>
+<dd><code>userInfo</code> - the URI user info component.</dd>
+<dd><code>host</code> - the URI host component.</dd>
+<dd><code>port</code> - the URI port component.</dd>
+<dd><code>path</code> - the URI path component.</dd>
+<dd><code>query</code> - the URI query component.</dd>
+<dd><code>fragment</code> - the URI fragment component.</dd>
+<dd><code>values</code> - the template variable to value map.</dd>
+<dd><code>encode</code> - if true encode a template value according to the correspond
+                          component type of the associated template variable, otherwise
+                          contextually encode the template value.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
+                          in parameter values will be encoded if the template
+                          is placed in the URI path component, otherwise the slash
+                          characters will not be encoded in path templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="createURI(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Object[],boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createURI</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;createURI&#8203;(java.lang.String&nbsp;scheme,
+                                         java.lang.String&nbsp;authority,
+                                         java.lang.String&nbsp;userInfo,
+                                         java.lang.String&nbsp;host,
+                                         java.lang.String&nbsp;port,
+                                         java.lang.String&nbsp;path,
+                                         java.lang.String&nbsp;query,
+                                         java.lang.String&nbsp;fragment,
+                                         java.lang.Object[]&nbsp;values,
+                                         boolean&nbsp;encode,
+                                         boolean&nbsp;encodeSlashInPath)</pre>
+<div class="block">Construct a URI from the component parts each of which may contain
+ template variables.
+ <p>
+ The template values are an array of Object and each Object instance
+ MUST support the toString() method to convert the template value to
+ a String instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>scheme</code> - the URI scheme component.</dd>
+<dd><code>authority</code> - the URI authority component.</dd>
+<dd><code>userInfo</code> - the URI user info component.</dd>
+<dd><code>host</code> - the URI host component.</dd>
+<dd><code>port</code> - the URI port component.</dd>
+<dd><code>path</code> - the URI path component.</dd>
+<dd><code>query</code> - the URI query component.</dd>
+<dd><code>fragment</code> - ]         the URI fragment component.</dd>
+<dd><code>values</code> - the array of template values.</dd>
+<dd><code>encode</code> - if true encode a template value according to the correspond
+                          component type of the associated template variable, otherwise
+                          contextually encode the template value.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
+                          in parameter values will be encoded if the template
+                          is placed in the URI path component, otherwise the slash
+                          characters will not be encoded in path templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="createURIWithStringValues(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createURIWithStringValues</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;createURIWithStringValues&#8203;(java.lang.String&nbsp;scheme,
+                                                         java.lang.String&nbsp;authority,
+                                                         java.lang.String&nbsp;userInfo,
+                                                         java.lang.String&nbsp;host,
+                                                         java.lang.String&nbsp;port,
+                                                         java.lang.String&nbsp;path,
+                                                         java.lang.String&nbsp;query,
+                                                         java.lang.String&nbsp;fragment,
+                                                         java.lang.String[]&nbsp;values,
+                                                         boolean&nbsp;encode,
+                                                         boolean&nbsp;encodeSlashInPath)</pre>
+<div class="block">Construct a URI from the component parts each of which may contain
+ template variables.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>scheme</code> - the URI scheme component.</dd>
+<dd><code>authority</code> - the URI authority component.</dd>
+<dd><code>userInfo</code> - the URI user info component.</dd>
+<dd><code>host</code> - the URI host component.</dd>
+<dd><code>port</code> - the URI port component.</dd>
+<dd><code>path</code> - the URI path component.</dd>
+<dd><code>query</code> - the URI query component.</dd>
+<dd><code>fragment</code> - the URI fragment component.</dd>
+<dd><code>values</code> - the array of template values.</dd>
+<dd><code>encode</code> - if true encode a template value according to the correspond
+                          component type of the associated template variable, otherwise
+                          contextually encode the template value.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
+                          in parameter values will be encoded if the template
+                          is placed in the URI path component, otherwise the slash
+                          characters will not be encoded in path templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplateValues(org.glassfish.tyrus.core.uri.internal.UriComponent.Type,java.lang.String,boolean,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>resolveTemplateValues</h4>
+<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;resolveTemplateValues&#8203;(<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;type,
+                                                     java.lang.String&nbsp;template,
+                                                     boolean&nbsp;encode,
+                                                     java.util.Map&lt;java.lang.String,&#8203;?&gt;&nbsp;_mapValues)</pre>
+<div class="block">Resolves template variables in the given <code>template</code> from <code>_mapValues</code>. Resolves only these variables
+ which are defined in the <code>_mapValues</code> leaving other variables unchanged.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - Type of the <code>template</code> (port, path, query, ...).</dd>
+<dd><code>template</code> - Input uri component to resolve.</dd>
+<dd><code>encode</code> - True if template values from <code>_mapValues</code> should be percent encoded.</dd>
+<dd><code>_mapValues</code> - Map with template variables as keys and template values as values. None of them should be
+                   null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>String with resolved template variables.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - when <code>_mapValues</code> value is null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriTemplate.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html
new file mode 100644
index 00000000..908281b5
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html
@@ -0,0 +1,550 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>UriTemplateParser (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UriTemplateParser (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriTemplateParser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></div>
+<h2 title="Class UriTemplateParser" class="title">Class UriTemplateParser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.uri.internal.UriTemplateParser</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">UriTemplateParser</span>
+extends java.lang.Object</pre>
+<div class="block">A URI template parser that parses JAX-RS specific URI templates.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Gerard Davison (gerard.davison at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">UriTemplateParser</a></span>&#8203;(java.lang.String&nbsp;template)</code></th>
+<td class="colLast">
+<div class="block">Parse a template.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encodeLiteralCharacters(java.lang.String)">encodeLiteralCharacters</a></span>&#8203;(java.lang.String&nbsp;characters)</code></th>
+<td class="colLast">
+<div class="block">Encode literal characters of a template.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;java.lang.Integer&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGroupCounts()">getGroupCounts</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the capturing group counts for each template variable.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGroupIndexes()">getGroupIndexes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the group indexes to capturing groups.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNames()">getNames</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the list of template names.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.util.regex.Pattern&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNameToPattern()">getNameToPattern</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the map of template names to patterns.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNormalizedTemplate()">getNormalizedTemplate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the normalized template.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumberOfExplicitRegexes()">getNumberOfExplicitRegexes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the number of explicit regular expressions.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumberOfLiteralCharacters()">getNumberOfLiteralCharacters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the number of literal characters.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumberOfRegexGroups()">getNumberOfRegexGroups</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the number of regular expression groups</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>java.util.regex.Pattern</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPattern()">getPattern</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the pattern.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTemplate()">getTemplate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the template.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UriTemplateParser</h4>
+<pre>public&nbsp;UriTemplateParser&#8203;(java.lang.String&nbsp;template)
+                  throws java.lang.IllegalArgumentException</pre>
+<div class="block">Parse a template.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>template</code> - the template.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if the template is null, an empty string or does not conform to a JAX-RS URI
+                                  template.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getTemplate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTemplate</h4>
+<pre class="methodSignature">public final&nbsp;java.lang.String&nbsp;getTemplate()</pre>
+<div class="block">Get the template.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the template.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPattern()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPattern</h4>
+<pre class="methodSignature">public final&nbsp;java.util.regex.Pattern&nbsp;getPattern()</pre>
+<div class="block">Get the pattern.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the pattern.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNormalizedTemplate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNormalizedTemplate</h4>
+<pre class="methodSignature">public final&nbsp;java.lang.String&nbsp;getNormalizedTemplate()</pre>
+<div class="block">Get the normalized template.
+ <p>
+ A normalized template is a template without any explicit regular expressions.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the normalized template.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNameToPattern()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNameToPattern</h4>
+<pre class="methodSignature">public final&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.util.regex.Pattern&gt;&nbsp;getNameToPattern()</pre>
+<div class="block">Get the map of template names to patterns.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the map of template names to patterns.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNames()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNames</h4>
+<pre class="methodSignature">public final&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;getNames()</pre>
+<div class="block">Get the list of template names.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the list of template names.</dd>
+</dl>
+</li>
+</ul>
+<a id="getGroupCounts()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGroupCounts</h4>
+<pre class="methodSignature">public final&nbsp;java.util.List&lt;java.lang.Integer&gt;&nbsp;getGroupCounts()</pre>
+<div class="block">Get the capturing group counts for each template variable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the capturing group counts.</dd>
+</dl>
+</li>
+</ul>
+<a id="getGroupIndexes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGroupIndexes</h4>
+<pre class="methodSignature">public final&nbsp;int[]&nbsp;getGroupIndexes()</pre>
+<div class="block">Get the group indexes to capturing groups.
+ <p>
+ Any nested capturing groups will be ignored and the the group index will refer to the top-level capturing groups
+ associated with the templates variables.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the group indexes to capturing groups.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNumberOfExplicitRegexes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumberOfExplicitRegexes</h4>
+<pre class="methodSignature">public final&nbsp;int&nbsp;getNumberOfExplicitRegexes()</pre>
+<div class="block">Get the number of explicit regular expressions.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the number of explicit regular expressions.</dd>
+</dl>
+</li>
+</ul>
+<a id="getNumberOfRegexGroups()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumberOfRegexGroups</h4>
+<pre class="methodSignature">public final&nbsp;int&nbsp;getNumberOfRegexGroups()</pre>
+<div class="block">Get the number of regular expression groups</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the number of regular expressions groups</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.9</dd>
+</dl>
+</li>
+</ul>
+<a id="getNumberOfLiteralCharacters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumberOfLiteralCharacters</h4>
+<pre class="methodSignature">public final&nbsp;int&nbsp;getNumberOfLiteralCharacters()</pre>
+<div class="block">Get the number of literal characters.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the number of literal characters.</dd>
+</dl>
+</li>
+</ul>
+<a id="encodeLiteralCharacters(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>encodeLiteralCharacters</h4>
+<pre class="methodSignature">protected&nbsp;java.lang.String&nbsp;encodeLiteralCharacters&#8203;(java.lang.String&nbsp;characters)</pre>
+<div class="block">Encode literal characters of a template.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>characters</code> - the literal characters</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the encoded literal characters.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriTemplateParser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/AbstractMultivaluedMap.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/AbstractMultivaluedMap.html
new file mode 100644
index 00000000..77e7cbf3
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/AbstractMultivaluedMap.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap" class="title">Uses of Class<br>org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a>&lt;K,&#8203;V&gt;</span></code></th>
+<td class="colLast">
+<div class="block">A hash table based implementation of <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> interface.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></span></code></th>
+<td class="colLast">
+<div class="block">An implementation of <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> where keys and values are
+ instances of String.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedHashMap.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedHashMap.html
new file mode 100644
index 00000000..4b156dbf
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedHashMap.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedHashMap (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedHashMap (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedHashMap" class="title">Uses of Class<br>org.glassfish.tyrus.core.uri.internal.MultivaluedHashMap</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></span></code></th>
+<td class="colLast">
+<div class="block">An implementation of <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> where keys and values are
+ instances of String.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedMap.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedMap.html
new file mode 100644
index 00000000..21aeff12
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedMap.html
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.uri.internal.MultivaluedMap (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.uri.internal.MultivaluedMap (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.uri.internal.MultivaluedMap" class="title">Uses of Interface<br>org.glassfish.tyrus.core.uri.internal.MultivaluedMap</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> that implement <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a>&lt;K,&#8203;V&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Abstract skeleton implementation of a <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> that is backed
+ by a [key, multi-value] store represented as a <code>Map&lt;K, List&lt;V&gt;&gt;</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a>&lt;K,&#8203;V&gt;</span></code></th>
+<td class="colLast">
+<div class="block">A hash table based implementation of <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> interface.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></span></code></th>
+<td class="colLast">
+<div class="block">An implementation of <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> where keys and values are
+ instances of String.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> that return <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#decodeMatrix(java.lang.String,boolean)">decodeMatrix</a></span>&#8203;(java.lang.String&nbsp;pathSegment,
+            boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Decode the matrix component of a URI path segment.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#decodeQuery(java.lang.String,boolean)">decodeQuery</a></span>&#8203;(java.lang.String&nbsp;q,
+           boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Decode the query component of a URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#decodeQuery(java.lang.String,boolean,boolean)">decodeQuery</a></span>&#8203;(java.lang.String&nbsp;q,
+           boolean&nbsp;decodeNames,
+           boolean&nbsp;decodeValues)</code></th>
+<td class="colLast">
+<div class="block">Decode the query component of a URI.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#decodeQuery(java.net.URI,boolean)">decodeQuery</a></span>&#8203;(java.net.URI&nbsp;u,
+           boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Decode the query component of a URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PathSegment.</span><code><span class="memberNameLink"><a href="../PathSegment.html#getMatrixParameters()">getMatrixParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a map of the matrix parameters associated with the path segment.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> with parameters of type <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMultivaluedMap.</span><code><span class="memberNameLink"><a href="../AbstractMultivaluedMap.html#equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">equalsIgnoreValueOrder</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="../AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="../AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;omap)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MultivaluedMap.</span><code><span class="memberNameLink"><a href="../MultivaluedMap.html#equalsIgnoreValueOrder(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">equalsIgnoreValueOrder</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;<a href="../MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="../MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;otherMap)</code></th>
+<td class="colLast">
+<div class="block">Compare the specified map with this map for equality modulo the order
+ of values for each key.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> with parameters of type <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MultivaluedHashMap.html#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">MultivaluedHashMap</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;? extends <a href="../MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="../MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified <a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MultivaluedStringMap.html#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.MultivaluedMap)">MultivaluedStringMap</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;? extends java.lang.String,&#8203;? extends java.lang.String&gt;&nbsp;map)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedStringMap.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedStringMap.html
new file mode 100644
index 00000000..e1edbd94
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedStringMap.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedStringMap (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedStringMap (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedStringMap" class="title">Uses of Class<br>org.glassfish.tyrus.core.uri.internal.MultivaluedStringMap</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.uri.internal.MultivaluedStringMap</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.RightHandPath.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.RightHandPath.html
new file mode 100644
index 00000000..1af57187
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.RightHandPath.html
@@ -0,0 +1,230 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath" class="title">Uses of Class<br>org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> that return <a href="../PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PathPattern.RightHandPath.</span><code><span class="memberNameLink"><a href="../PathPattern.RightHandPath.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PathPattern.RightHandPath.</span><code><span class="memberNameLink"><a href="../PathPattern.RightHandPath.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> with parameters of type <a href="../PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PathPattern.html#%3Cinit%3E(java.lang.String,org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath)">PathPattern</a></span>&#8203;(java.lang.String&nbsp;template,
+           <a href="../PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>&nbsp;rhpp)</code></th>
+<td class="colLast">
+<div class="block">Create a path pattern and post fix with a right hand path pattern.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PathPattern.html#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.PathTemplate,org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath)">PathPattern</a></span>&#8203;(<a href="../PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a>&nbsp;template,
+           <a href="../PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>&nbsp;rhpp)</code></th>
+<td class="colLast">
+<div class="block">Create a path pattern and post fix with a right hand path pattern.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.html
new file mode 100644
index 00000000..a36d7fa6
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.html
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern" class="title">Uses of Class<br>org.glassfish.tyrus.core.uri.internal.PathPattern</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></h3>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> declared as <a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PathPattern.</span><code><span class="memberNameLink"><a href="../PathPattern.html#EMPTY_PATTERN">EMPTY_PATTERN</a></span></code></th>
+<td class="colLast">
+<div class="block">Empty path pattern matching only empty string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PathPattern.</span><code><span class="memberNameLink"><a href="../PathPattern.html#END_OF_PATH_PATTERN">END_OF_PATH_PATTERN</a></span></code></th>
+<td class="colLast">
+<div class="block">Path pattern matching the end of a URI path.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PathPattern.</span><code><span class="memberNameLink"><a href="../PathPattern.html#OPEN_ROOT_PATH_PATTERN">OPEN_ROOT_PATH_PATTERN</a></span></code></th>
+<td class="colLast">
+<div class="block">Path pattern matching the any URI path.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> with type parameters of type <a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static java.util.Comparator&lt;<a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PathPattern.</span><code><span class="memberNameLink"><a href="../PathPattern.html#COMPARATOR">COMPARATOR</a></span></code></th>
+<td class="colLast">
+<div class="block">Path pattern comparator that defers to <a href="../UriTemplate.html#COMPARATOR"><code>comparing the templates</code></a> associated with the
+ patterns.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> that return <a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PathPattern.</span><code><span class="memberNameLink"><a href="../PathPattern.html#asClosed(org.glassfish.tyrus.core.uri.internal.PathPattern)">asClosed</a></span>&#8203;(<a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a>&nbsp;pattern)</code></th>
+<td class="colLast">
+<div class="block">Return a new path pattern with a same path template but a <a href="../PathPattern.RightHandPath.html#capturingZeroSegments"><code>closed</code></a>
+ right hand path.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> with parameters of type <a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PathPattern.</span><code><span class="memberNameLink"><a href="../PathPattern.html#asClosed(org.glassfish.tyrus.core.uri.internal.PathPattern)">asClosed</a></span>&#8203;(<a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a>&nbsp;pattern)</code></th>
+<td class="colLast">
+<div class="block">Return a new path pattern with a same path template but a <a href="../PathPattern.RightHandPath.html#capturingZeroSegments"><code>closed</code></a>
+ right hand path.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathSegment.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathSegment.html
new file mode 100644
index 00000000..8299b980
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathSegment.html
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.uri.internal.PathSegment (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.uri.internal.PathSegment (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.core.uri.internal.PathSegment" class="title">Uses of Interface<br>org.glassfish.tyrus.core.uri.internal.PathSegment</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> that return types with arguments of type <a href="../PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static java.util.List&lt;<a href="../PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#decodePath(java.lang.String,boolean)">decodePath</a></span>&#8203;(java.lang.String&nbsp;path,
+          boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Decode the path component of a URI as path segments.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.util.List&lt;<a href="../PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#decodePath(java.net.URI,boolean)">decodePath</a></span>&#8203;(java.net.URI&nbsp;u,
+          boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Decode the path component of a URI as path segments.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Method parameters in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> with type arguments of type <a href="../PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#decodePathSegment(java.util.List,java.lang.String,boolean)">decodePathSegment</a></span>&#8203;(java.util.List&lt;<a href="../PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a>&gt;&nbsp;segments,
+                 java.lang.String&nbsp;segment,
+                 boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Decode the path segment and add it to the list of path segments.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathTemplate.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathTemplate.html
new file mode 100644
index 00000000..a16913f3
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathTemplate.html
@@ -0,0 +1,204 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.PathTemplate (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.PathTemplate (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.uri.internal.PathTemplate" class="title">Uses of Class<br>org.glassfish.tyrus.core.uri.internal.PathTemplate</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></h3>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> with parameters of type <a href="../PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PathPattern.html#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.PathTemplate)">PathPattern</a></span>&#8203;(<a href="../PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a>&nbsp;template)</code></th>
+<td class="colLast">
+<div class="block">Create a path pattern and post fix with <a href="../PathPattern.RightHandPath.html#capturingZeroOrMoreSegments"><code>PathPattern.RightHandPath.capturingZeroOrMoreSegments</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PathPattern.html#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.PathTemplate,org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath)">PathPattern</a></span>&#8203;(<a href="../PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a>&nbsp;template,
+           <a href="../PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a>&nbsp;rhpp)</code></th>
+<td class="colLast">
+<div class="block">Create a path pattern and post fix with a right hand path pattern.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PatternWithGroups.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PatternWithGroups.html
new file mode 100644
index 00000000..ac3e01ee
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PatternWithGroups.html
@@ -0,0 +1,233 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.PatternWithGroups (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.PatternWithGroups (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.uri.internal.PatternWithGroups" class="title">Uses of Class<br>org.glassfish.tyrus.core.uri.internal.PatternWithGroups</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></span></code></th>
+<td class="colLast">
+<div class="block">A path pattern that is a regular expression generated from a URI path template.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> declared as <a href="../PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PatternWithGroups.</span><code><span class="memberNameLink"><a href="../PatternWithGroups.html#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
+<div class="block">The empty pattern that matches the null or empty string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> that return <a href="../PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriTemplate.</span><code><span class="memberNameLink"><a href="../UriTemplate.html#getPattern()">getPattern</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI pattern.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.Type.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.Type.html
new file mode 100644
index 00000000..5a19a4c0
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.Type.html
@@ -0,0 +1,310 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent.Type (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent.Type (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent.Type" class="title">Uses of Class<br>org.glassfish.tyrus.core.uri.internal.UriComponent.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> that return <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.Type.</span><code><span class="memberNameLink"><a href="../UriComponent.Type.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.Type.</span><code><span class="memberNameLink"><a href="../UriComponent.Type.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> with parameters of type <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#contextualEncode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">contextualEncode</a></span>&#8203;(java.lang.String&nbsp;s,
+                <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Contextually encodes the characters of string that are either non-ASCII characters or are ASCII characters that
+ must be percent-encoded using the UTF-8 encoding.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#contextualEncode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">contextualEncode</a></span>&#8203;(java.lang.String&nbsp;s,
+                <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t,
+                boolean&nbsp;template)</code></th>
+<td class="colLast">
+<div class="block">Contextually encodes the characters of string that are either non-ASCII characters or are ASCII characters that
+ must be percent-encoded using the UTF-8 encoding.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#decode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">decode</a></span>&#8203;(java.lang.String&nbsp;s,
+      <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Decodes characters of a string that are percent-encoded octets using
+ UTF-8 decoding (if needed).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#encode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">encode</a></span>&#8203;(java.lang.String&nbsp;s,
+      <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Encodes the characters of string that are either non-ASCII characters
+ or are ASCII characters that must be percent-encoded using the
+ UTF-8 encoding.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#encode(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">encode</a></span>&#8203;(java.lang.String&nbsp;s,
+      <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t,
+      boolean&nbsp;template)</code></th>
+<td class="colLast">
+<div class="block">Encodes the characters of string that are either non-ASCII characters
+ or are ASCII characters that must be percent-encoded using the
+ UTF-8 encoding.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriTemplate.</span><code><span class="memberNameLink"><a href="../UriTemplate.html#resolveTemplateValues(org.glassfish.tyrus.core.uri.internal.UriComponent.Type,java.lang.String,boolean,java.util.Map)">resolveTemplateValues</a></span>&#8203;(<a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;type,
+                     java.lang.String&nbsp;template,
+                     boolean&nbsp;encode,
+                     java.util.Map&lt;java.lang.String,&#8203;?&gt;&nbsp;_mapValues)</code></th>
+<td class="colLast">
+<div class="block">Resolves template variables in the given <code>template</code> from <code>_mapValues</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#valid(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">valid</a></span>&#8203;(java.lang.String&nbsp;s,
+     <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#valid(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">valid</a></span>&#8203;(java.lang.String&nbsp;s,
+     <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t,
+     boolean&nbsp;template)</code></th>
+<td class="colLast">
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#validate(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type)">validate</a></span>&#8203;(java.lang.String&nbsp;s,
+        <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriComponent.</span><code><span class="memberNameLink"><a href="../UriComponent.html#validate(java.lang.String,org.glassfish.tyrus.core.uri.internal.UriComponent.Type,boolean)">validate</a></span>&#8203;(java.lang.String&nbsp;s,
+        <a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a>&nbsp;t,
+        boolean&nbsp;template)</code></th>
+<td class="colLast">
+<div class="block">Validates the legal characters of a percent-encoded string that represents a URI component type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.html
new file mode 100644
index 00000000..042e7622
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent" class="title">Uses of Class<br>org.glassfish.tyrus.core.uri.internal.UriComponent</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.uri.internal.UriComponent</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplate.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplate.html
new file mode 100644
index 00000000..9491b898
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplate.html
@@ -0,0 +1,248 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplate (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplate (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplate" class="title">Uses of Class<br>org.glassfish.tyrus.core.uri.internal.UriTemplate</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a></span></code></th>
+<td class="colLast">
+<div class="block">A URI template for a URI path.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> declared as <a href="../UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriTemplate.</span><code><span class="memberNameLink"><a href="../UriTemplate.html#EMPTY">EMPTY</a></span></code></th>
+<td class="colLast">
+<div class="block">The empty URI template that matches the <code>null</code> or empty URI path.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> with type parameters of type <a href="../UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static java.util.Comparator&lt;<a href="../UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriTemplate.</span><code><span class="memberNameLink"><a href="../UriTemplate.html#COMPARATOR">COMPARATOR</a></span></code></th>
+<td class="colLast">
+<div class="block">Order the templates according to JAX-RS specification.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> that return <a href="../UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PathPattern.</span><code><span class="memberNameLink"><a href="../PathPattern.html#getTemplate()">getTemplate</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplateParser.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplateParser.html
new file mode 100644
index 00000000..1eb21008
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplateParser.html
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplateParser (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplateParser (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplateParser" class="title">Uses of Class<br>org.glassfish.tyrus.core.uri.internal.UriTemplateParser</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.uri.internal">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a></h3>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.core.uri.internal</a> with parameters of type <a href="../UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../UriTemplate.html#%3Cinit%3E(org.glassfish.tyrus.core.uri.internal.UriTemplateParser)">UriTemplate</a></span>&#8203;(<a href="../UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a>&nbsp;templateParser)</code></th>
+<td class="colLast">
+<div class="block">Construct a new URI template.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/package-summary.html
new file mode 100644
index 00000000..281c1454
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/package-summary.html
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.uri.internal (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.uri.internal (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.core.uri.internal</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.
+
+ Taken from Jersey 2 - org.glassfish.jersey.uri.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;K,&#8203;V&gt;</th>
+<td class="colLast">
+<div class="block">A map of key-values pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal">PathSegment</a></th>
+<td class="colLast">
+<div class="block">Represents a URI path segment and any associated matrix parameters.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a>&lt;K,&#8203;V&gt;</th>
+<td class="colLast">
+<div class="block">Abstract skeleton implementation of a <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> that is backed
+ by a [key, multi-value] store represented as a <code>Map&lt;K, List&lt;V&gt;&gt;</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a>&lt;K,&#8203;V&gt;</th>
+<td class="colLast">
+<div class="block">A hash table based implementation of <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> interface.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedStringMap</a></th>
+<td class="colLast">
+<div class="block">An implementation of <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> where keys and values are
+ instances of String.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal">PathPattern</a></th>
+<td class="colLast">
+<div class="block">A path pattern that is a regular expression generated from a URI path template.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">PathTemplate</a></th>
+<td class="colLast">
+<div class="block">A URI template for a URI path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></th>
+<td class="colLast">
+<div class="block">A pattern for matching a string against a regular expression and returning capturing group values for any capturing
+ groups present in the expression.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal">UriComponent</a></th>
+<td class="colLast">
+<div class="block">Utility class for validating, encoding and decoding components
+ of a URI.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplate</a></th>
+<td class="colLast">
+<div class="block">A URI template.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></th>
+<td class="colLast">
+<div class="block">A URI template parser that parses JAX-RS specific URI templates.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></th>
+<td class="colLast">
+<div class="block">The set of right hand path patterns that may be appended to a path pattern.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></th>
+<td class="colLast">
+<div class="block">The URI component type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/package-tree.html
new file mode 100644
index 00000000..b5a41a33
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/package-tree.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.uri.internal Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.uri.internal Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.core.uri.internal</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">AbstractMultivaluedMap</span></a>&lt;K,&#8203;V&gt; (implements org.glassfish.tyrus.core.uri.internal.<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;K,&#8203;V&gt;)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">MultivaluedHashMap</span></a>&lt;K,&#8203;V&gt; (implements java.io.Serializable)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">MultivaluedStringMap</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PatternWithGroups</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PathPattern</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">UriComponent</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">UriTemplate</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PathTemplate</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">UriTemplateParser</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">java.util.Map&lt;K,&#8203;V&gt;
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">MultivaluedMap</span></a>&lt;K,&#8203;V&gt;</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PathSegment</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PathPattern.RightHandPath</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">UriComponent.Type</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/package-use.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/package-use.html
new file mode 100644
index 00000000..6dbb72b1
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/internal/package-use.html
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.uri.internal (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.uri.internal (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.core.uri.internal" class="title">Uses of Package<br>org.glassfish.tyrus.core.uri.internal</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal</a></th>
+<td class="colLast">
+<div class="block">Common classes that provide support for URI templates,
+ encoding/decoding of URI components and multivalued collections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.uri.internal">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a> used by <a href="package-summary.html">org.glassfish.tyrus.core.uri.internal</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/AbstractMultivaluedMap.html#org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a></th>
+<td class="colLast">
+<div class="block">Abstract skeleton implementation of a <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> that is backed
+ by a [key, multi-value] store represented as a <code>Map&lt;K, List&lt;V&gt;&gt;</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MultivaluedHashMap.html#org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a></th>
+<td class="colLast">
+<div class="block">A hash table based implementation of <a href="MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><code>MultivaluedMap</code></a> interface.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MultivaluedMap.html#org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a></th>
+<td class="colLast">
+<div class="block">A map of key-values pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/PathPattern.html#org.glassfish.tyrus.core.uri.internal">PathPattern</a></th>
+<td class="colLast">
+<div class="block">A path pattern that is a regular expression generated from a URI path template.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/PathPattern.RightHandPath.html#org.glassfish.tyrus.core.uri.internal">PathPattern.RightHandPath</a></th>
+<td class="colLast">
+<div class="block">The set of right hand path patterns that may be appended to a path pattern.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/PathSegment.html#org.glassfish.tyrus.core.uri.internal">PathSegment</a></th>
+<td class="colLast">
+<div class="block">Represents a URI path segment and any associated matrix parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/PathTemplate.html#org.glassfish.tyrus.core.uri.internal">PathTemplate</a></th>
+<td class="colLast">
+<div class="block">A URI template for a URI path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/PatternWithGroups.html#org.glassfish.tyrus.core.uri.internal">PatternWithGroups</a></th>
+<td class="colLast">
+<div class="block">A pattern for matching a string against a regular expression and returning capturing group values for any capturing
+ groups present in the expression.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/UriComponent.Type.html#org.glassfish.tyrus.core.uri.internal">UriComponent.Type</a></th>
+<td class="colLast">
+<div class="block">The URI component type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/UriTemplate.html#org.glassfish.tyrus.core.uri.internal">UriTemplate</a></th>
+<td class="colLast">
+<div class="block">A URI template.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/UriTemplateParser.html#org.glassfish.tyrus.core.uri.internal">UriTemplateParser</a></th>
+<td class="colLast">
+<div class="block">A URI template parser that parses JAX-RS specific URI templates.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/package-summary.html
new file mode 100644
index 00000000..919e6078
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/package-summary.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.uri (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.uri (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.core.uri</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">URI matching.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Match.html" title="class in org.glassfish.tyrus.core.uri">Match</a></th>
+<td class="colLast">
+<div class="block">Defines a match on an endpoint.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/package-tree.html
new file mode 100644
index 00000000..4b894458
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/package-tree.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.uri Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.uri Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.core.uri</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.<a href="Match.html" title="class in org.glassfish.tyrus.core.uri"><span class="typeNameLink">Match</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/uri/package-use.html b/apidocs/1.20/org/glassfish/tyrus/core/uri/package-use.html
new file mode 100644
index 00000000..c4ec6ccb
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/uri/package-use.html
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.uri (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.uri (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.core.uri" class="title">Uses of Package<br>org.glassfish.tyrus.core.uri</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.core.uri</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.uri">org.glassfish.tyrus.core.uri</a></th>
+<td class="colLast">
+<div class="block">URI matching.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.uri">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.uri</a> used by <a href="package-summary.html">org.glassfish.tyrus.core.uri</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Match.html#org.glassfish.tyrus.core.uri">Match</a></th>
+<td class="colLast">
+<div class="block">Defines a match on an endpoint.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/Application.html b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/Application.html
new file mode 100644
index 00000000..45004fe5
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/Application.html
@@ -0,0 +1,435 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Application (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Application (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Application.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.wsadl.model</a></div>
+<h2 title="Class Application" class="title">Class Application</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.wsadl.model.Application</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Application</span>
+extends java.lang.Object</pre>
+<div class="block"><p>Java class for anonymous complex type.
+ 
+ <p>The following schema fragment specifies the expected content contained within this class.
+ 
+ <pre>
+ &lt;complexType&gt;
+   &lt;complexContent&gt;
+     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+       &lt;sequence&gt;
+         &lt;element ref="{https://tyrus.java.net/2013/04}endpoint" maxOccurs="unbounded" minOccurs="0"/&gt;
+         &lt;any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/&gt;
+       &lt;/sequence&gt;
+     &lt;/restriction&gt;
+   &lt;/complexContent&gt;
+ &lt;/complexType&gt;
+ </pre></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected java.util.List&lt;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#any">any</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected java.util.List&lt;<a href="Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#endpoint">endpoint</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Application</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.util.List&lt;java.lang.Object&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAny()">getAny</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Gets the value of the any property.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEndpoint()">getEndpoint</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Gets the value of the endpoint property.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="endpoint">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>endpoint</h4>
+<pre>protected&nbsp;java.util.List&lt;<a href="Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a>&gt; endpoint</pre>
+</li>
+</ul>
+<a id="any">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>any</h4>
+<pre>protected&nbsp;java.util.List&lt;java.lang.Object&gt; any</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Application</h4>
+<pre>public&nbsp;Application()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getEndpoint()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEndpoint</h4>
+<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a>&gt;&nbsp;getEndpoint()</pre>
+<div class="block">Gets the value of the endpoint property.
+ 
+ <p>
+ This accessor method returns a reference to the live list,
+ not a snapshot. Therefore any modification you make to the
+ returned list will be present inside the JAXB object.
+ This is why there is not a <CODE>set</CODE> method for the endpoint property.
+ 
+ <p>
+ For example, to add a new item, do as follows:
+ <pre>
+    getEndpoint().add(newItem);
+ </pre>
+ 
+ 
+ <p>
+ Objects of the following type(s) are allowed in the list
+ <a href="Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Endpoint</code></a></div>
+</li>
+</ul>
+<a id="getAny()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getAny</h4>
+<pre class="methodSignature">public&nbsp;java.util.List&lt;java.lang.Object&gt;&nbsp;getAny()</pre>
+<div class="block">Gets the value of the any property.
+ 
+ <p>
+ This accessor method returns a reference to the live list,
+ not a snapshot. Therefore any modification you make to the
+ returned list will be present inside the JAXB object.
+ This is why there is not a <CODE>set</CODE> method for the any property.
+ 
+ <p>
+ For example, to add a new item, do as follows:
+ <pre>
+    getAny().add(newItem);
+ </pre>
+ 
+ 
+ <p>
+ Objects of the following type(s) are allowed in the list
+ <code>Object</code>
+ <code>Element</code></div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Application.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/Endpoint.html b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/Endpoint.html
new file mode 100644
index 00000000..f3c33276
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/Endpoint.html
@@ -0,0 +1,481 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Endpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Endpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Endpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.wsadl.model</a></div>
+<h2 title="Class Endpoint" class="title">Class Endpoint</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.wsadl.model.Endpoint</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Endpoint</span>
+extends java.lang.Object</pre>
+<div class="block"><p>Java class for anonymous complex type.
+ 
+ <p>The following schema fragment specifies the expected content contained within this class.
+ 
+ <pre>
+ &lt;complexType&gt;
+   &lt;complexContent&gt;
+     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /&gt;
+       &lt;attribute name="path" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+       &lt;anyAttribute processContents='lax' namespace='##other'/&gt;
+     &lt;/restriction&gt;
+   &lt;/complexContent&gt;
+ &lt;/complexType&gt;
+ </pre></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#id">id</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#path">path</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Endpoint</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getId()">getId</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Gets the value of the id property.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.Map&lt;javax.xml.namespace.QName,&#8203;java.lang.String&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOtherAttributes()">getOtherAttributes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Gets a map that contains attributes that aren't bound to any typed property on this class.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPath()">getPath</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Gets the value of the path property.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setId(java.lang.String)">setId</a></span>&#8203;(java.lang.String&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Sets the value of the id property.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPath(java.lang.String)">setPath</a></span>&#8203;(java.lang.String&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Sets the value of the path property.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="id">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>id</h4>
+<pre>protected&nbsp;java.lang.String id</pre>
+</li>
+</ul>
+<a id="path">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>path</h4>
+<pre>protected&nbsp;java.lang.String path</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Endpoint</h4>
+<pre>public&nbsp;Endpoint()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getId()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getId</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getId()</pre>
+<div class="block">Gets the value of the id property.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>possible object is
+     <code>String</code></dd>
+</dl>
+</li>
+</ul>
+<a id="setId(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setId</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setId&#8203;(java.lang.String&nbsp;value)</pre>
+<div class="block">Sets the value of the id property.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - allowed object is
+     <code>String</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getPath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPath</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getPath()</pre>
+<div class="block">Gets the value of the path property.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>possible object is
+     <code>String</code></dd>
+</dl>
+</li>
+</ul>
+<a id="setPath(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPath</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setPath&#8203;(java.lang.String&nbsp;value)</pre>
+<div class="block">Sets the value of the path property.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - allowed object is
+     <code>String</code></dd>
+</dl>
+</li>
+</ul>
+<a id="getOtherAttributes()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getOtherAttributes</h4>
+<pre class="methodSignature">public&nbsp;java.util.Map&lt;javax.xml.namespace.QName,&#8203;java.lang.String&gt;&nbsp;getOtherAttributes()</pre>
+<div class="block">Gets a map that contains attributes that aren't bound to any typed property on this class.
+ 
+ <p>
+ the map is keyed by the name of the attribute and 
+ the value is the string value of the attribute.
+ 
+ the map returned by this method is live, and you can add new attribute
+ by updating the map directly. Because of this design, there's no setter.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>always non-null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Endpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html
new file mode 100644
index 00000000..a53682af
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html
@@ -0,0 +1,342 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ObjectFactory (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ObjectFactory (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.core.wsadl.model</a></div>
+<h2 title="Class ObjectFactory" class="title">Class ObjectFactory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.core.wsadl.model.ObjectFactory</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">ObjectFactory</span>
+extends java.lang.Object</pre>
+<div class="block">This object contains factory methods for each 
+ Java content interface and Java element interface 
+ generated in the org.glassfish.tyrus.core.wsadl.model package. 
+ <p>An ObjectFactory allows you to programatically 
+ construct new instances of the Java representation 
+ for XML content. The Java representation of XML 
+ content can consist of schema derived interfaces 
+ and classes representing the binding of schema 
+ type definitions, element declarations and model 
+ groups.  Factory methods for each of these are 
+ provided in this class.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ObjectFactory</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.glassfish.tyrus.core.wsadl.model</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createApplication()">createApplication</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create an instance of <a href="Application.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Application</code></a></div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createEndpoint()">createEndpoint</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create an instance of <a href="Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Endpoint</code></a></div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ObjectFactory</h4>
+<pre>public&nbsp;ObjectFactory()</pre>
+<div class="block">Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.glassfish.tyrus.core.wsadl.model</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="createApplication()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createApplication</h4>
+<pre class="methodSignature">public&nbsp;<a href="Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a>&nbsp;createApplication()</pre>
+<div class="block">Create an instance of <a href="Application.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Application</code></a></div>
+</li>
+</ul>
+<a id="createEndpoint()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createEndpoint</h4>
+<pre class="methodSignature">public&nbsp;<a href="Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a>&nbsp;createEndpoint()</pre>
+<div class="block">Create an instance of <a href="Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Endpoint</code></a></div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/class-use/Application.html b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/class-use/Application.html
new file mode 100644
index 00000000..9869de7c
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/class-use/Application.html
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.wsadl.model.Application (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.wsadl.model.Application (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.wsadl.model.Application" class="title">Uses of Class<br>org.glassfish.tyrus.core.wsadl.model.Application</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.wsadl.model">org.glassfish.tyrus.core.wsadl.model</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a> in <a href="../../../package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../../package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.</span><code><span class="memberNameLink"><a href="../../../TyrusWebSocketEngine.html#getWsadlApplication()">getWsadlApplication</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get <a href="../Application.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Application</code></a> representing current set of deployed endpoints.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.wsadl.model">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.wsadl.model</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.wsadl.model</a> that return <a href="../Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectFactory.</span><code><span class="memberNameLink"><a href="../ObjectFactory.html#createApplication()">createApplication</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create an instance of <a href="../Application.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Application</code></a></div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/class-use/Endpoint.html b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/class-use/Endpoint.html
new file mode 100644
index 00000000..e97eda42
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/class-use/Endpoint.html
@@ -0,0 +1,228 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.wsadl.model.Endpoint (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.wsadl.model.Endpoint (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.wsadl.model.Endpoint" class="title">Uses of Class<br>org.glassfish.tyrus.core.wsadl.model.Endpoint</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.wsadl.model">org.glassfish.tyrus.core.wsadl.model</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core.wsadl.model">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a> in <a href="../package-summary.html">org.glassfish.tyrus.core.wsadl.model</a></h3>
+<table class="useSummary">
+<caption><span>Fields in <a href="../package-summary.html">org.glassfish.tyrus.core.wsadl.model</a> with type parameters of type <a href="../Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected java.util.List&lt;<a href="../Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Application.</span><code><span class="memberNameLink"><a href="../Application.html#endpoint">endpoint</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.wsadl.model</a> that return <a href="../Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ObjectFactory.</span><code><span class="memberNameLink"><a href="../ObjectFactory.html#createEndpoint()">createEndpoint</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create an instance of <a href="../Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model"><code>Endpoint</code></a></div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.core.wsadl.model</a> that return types with arguments of type <a href="../Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.List&lt;<a href="../Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Application.</span><code><span class="memberNameLink"><a href="../Application.html#getEndpoint()">getEndpoint</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Gets the value of the endpoint property.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/class-use/ObjectFactory.html b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/class-use/ObjectFactory.html
new file mode 100644
index 00000000..36040a46
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/class-use/ObjectFactory.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.wsadl.model.ObjectFactory (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.wsadl.model.ObjectFactory (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ObjectFactory.html" title="class in org.glassfish.tyrus.core.wsadl.model">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.core.wsadl.model.ObjectFactory" class="title">Uses of Class<br>org.glassfish.tyrus.core.wsadl.model.ObjectFactory</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.core.wsadl.model.ObjectFactory</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ObjectFactory.html" title="class in org.glassfish.tyrus.core.wsadl.model">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/package-summary.html
new file mode 100644
index 00000000..85ea003f
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/package-summary.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.wsadl.model (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.wsadl.model (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.core.wsadl.model</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Application.html" title="class in org.glassfish.tyrus.core.wsadl.model">Application</a></th>
+<td class="colLast">
+<div class="block">Java class for anonymous complex type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model">Endpoint</a></th>
+<td class="colLast">
+<div class="block">Java class for anonymous complex type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ObjectFactory.html" title="class in org.glassfish.tyrus.core.wsadl.model">ObjectFactory</a></th>
+<td class="colLast">
+<div class="block">This object contains factory methods for each 
+ Java content interface and Java element interface 
+ generated in the org.glassfish.tyrus.core.wsadl.model package.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/package-tree.html
new file mode 100644
index 00000000..48031148
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/package-tree.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.wsadl.model Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.core.wsadl.model Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.core.wsadl.model</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.core.wsadl.model.<a href="Application.html" title="class in org.glassfish.tyrus.core.wsadl.model"><span class="typeNameLink">Application</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.wsadl.model.<a href="Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model"><span class="typeNameLink">Endpoint</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.wsadl.model.<a href="ObjectFactory.html" title="class in org.glassfish.tyrus.core.wsadl.model"><span class="typeNameLink">ObjectFactory</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/package-use.html b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/package-use.html
new file mode 100644
index 00000000..e2b8b1ea
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/package-use.html
@@ -0,0 +1,218 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.wsadl.model (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.wsadl.model (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.core.wsadl.model" class="title">Uses of Package<br>org.glassfish.tyrus.core.wsadl.model</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.core.wsadl.model</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core.wsadl.model">org.glassfish.tyrus.core.wsadl.model</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.wsadl.model</a> used by <a href="../../package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Application.html#org.glassfish.tyrus.core">Application</a></th>
+<td class="colLast">
+<div class="block">Java class for anonymous complex type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.wsadl.model">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.core.wsadl.model</a> used by <a href="package-summary.html">org.glassfish.tyrus.core.wsadl.model</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Application.html#org.glassfish.tyrus.core.wsadl.model">Application</a></th>
+<td class="colLast">
+<div class="block">Java class for anonymous complex type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Endpoint.html#org.glassfish.tyrus.core.wsadl.model">Endpoint</a></th>
+<td class="colLast">
+<div class="block">Java class for anonymous complex type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html b/apidocs/1.20/org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html
new file mode 100644
index 00000000..ba219dc0
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CdiComponentProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CdiComponentProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CdiComponentProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.gf.cdi</a></div>
+<h2 title="Class CdiComponentProvider" class="title">Class CdiComponentProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.ComponentProvider</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.gf.cdi.CdiComponentProvider</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">CdiComponentProvider</span>
+extends <a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></pre>
+<div class="block">Provides the instance for CDI class.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">CdiComponentProvider</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Constructor.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(java.lang.Class)">create</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;c)</code></th>
+<td class="colLast">
+<div class="block">Create new instance.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroy(java.lang.Object)">destroy</a></span>&#8203;(java.lang.Object&nbsp;o)</code></th>
+<td class="colLast">
+<div class="block">Destroys the given managed instance.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isApplicable(java.lang.Class)">isApplicable</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;c)</code></th>
+<td class="colLast">
+<div class="block">Checks whether this component provider is able to provide an instance of given <code>Class</code>.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.ComponentProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.<a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></h3>
+<code><a href="../../core/ComponentProvider.html#getInvocableMethod(java.lang.reflect.Method)">getInvocableMethod</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CdiComponentProvider</h4>
+<pre>public&nbsp;CdiComponentProvider()
+                     throws javax.naming.NamingException</pre>
+<div class="block">Constructor.
+ <p>
+ Looks up the <code>BeanManager</code> which is later used to provide the instance.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.naming.NamingException</code> - when Bean Manager cannot be looked up.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isApplicable(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isApplicable</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isApplicable&#8203;(java.lang.Class&lt;?&gt;&nbsp;c)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../core/ComponentProvider.html#isApplicable(java.lang.Class)">ComponentProvider</a></code></span></div>
+<div class="block">Checks whether this component provider is able to provide an instance of given <code>Class</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../core/ComponentProvider.html#isApplicable(java.lang.Class)">isApplicable</a></code>&nbsp;in class&nbsp;<code><a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - <code>Class</code> to be checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> iff this <a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core"><code>ComponentProvider</code></a> is able to create an instance of the given <code>Class</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="create(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;java.lang.Object&nbsp;create&#8203;(java.lang.Class&lt;T&gt;&nbsp;c)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../core/ComponentProvider.html#create(java.lang.Class)">ComponentProvider</a></code></span></div>
+<div class="block">Create new instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../core/ComponentProvider.html#create(java.lang.Class)">create</a></code>&nbsp;in class&nbsp;<code><a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the created object.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - <code>Class</code> to be created.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>instance, iff found, <code>null</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="destroy(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>destroy</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;destroy&#8203;(java.lang.Object&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../core/ComponentProvider.html#destroy(java.lang.Object)">ComponentProvider</a></code></span></div>
+<div class="block">Destroys the given managed instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../core/ComponentProvider.html#destroy(java.lang.Object)">destroy</a></code>&nbsp;in class&nbsp;<code><a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - instance to be destroyed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> iff the instance was coupled to this <a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core"><code>ComponentProvider</code></a>, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CdiComponentProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/gf/cdi/class-use/CdiComponentProvider.html b/apidocs/1.20/org/glassfish/tyrus/gf/cdi/class-use/CdiComponentProvider.html
new file mode 100644
index 00000000..b13ed76d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/gf/cdi/class-use/CdiComponentProvider.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.gf.cdi.CdiComponentProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.gf.cdi.CdiComponentProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.gf.cdi.CdiComponentProvider" class="title">Uses of Class<br>org.glassfish.tyrus.gf.cdi.CdiComponentProvider</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.gf.cdi.CdiComponentProvider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/gf/cdi/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/gf/cdi/package-summary.html
new file mode 100644
index 00000000..48283d5d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/gf/cdi/package-summary.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.gf.cdi (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.gf.cdi (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.gf.cdi</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Tyrus CDI integration with Glassfish (and possibly other compatible containers).</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi">CdiComponentProvider</a></th>
+<td class="colLast">
+<div class="block">Provides the instance for CDI class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/gf/cdi/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/gf/cdi/package-tree.html
new file mode 100644
index 00000000..c5abeaf4
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/gf/cdi/package-tree.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.gf.cdi Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.gf.cdi Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.gf.cdi</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ComponentProvider</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.gf.cdi.<a href="CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi"><span class="typeNameLink">CdiComponentProvider</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/gf/cdi/package-use.html b/apidocs/1.20/org/glassfish/tyrus/gf/cdi/package-use.html
new file mode 100644
index 00000000..253138f5
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/gf/cdi/package-use.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.gf.cdi (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.gf.cdi (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.gf.cdi" class="title">Uses of Package<br>org.glassfish.tyrus.gf.cdi</h1>
+</div>
+<div class="contentContainer">No usage of org.glassfish.tyrus.gf.cdi</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html b/apidocs/1.20/org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html
new file mode 100644
index 00000000..c481941b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html
@@ -0,0 +1,416 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>EjbComponentProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EjbComponentProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EjbComponentProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.gf.ejb</a></div>
+<h2 title="Class EjbComponentProvider" class="title">Class EjbComponentProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.ComponentProvider</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.gf.ejb.EjbComponentProvider</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">EjbComponentProvider</span>
+extends <a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></pre>
+<div class="block">Provides the instance for the supported EJB classes.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">EjbComponentProvider</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(java.lang.Class)">create</a></span>&#8203;(java.lang.Class&lt;T&gt;&nbsp;c)</code></th>
+<td class="colLast">
+<div class="block">Create new instance.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroy(java.lang.Object)">destroy</a></span>&#8203;(java.lang.Object&nbsp;o)</code></th>
+<td class="colLast">
+<div class="block">Destroys the given managed instance.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.lang.reflect.Method</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInvocableMethod(java.lang.reflect.Method)">getInvocableMethod</a></span>&#8203;(java.lang.reflect.Method&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Get the method which should be invoked instead provided one.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isApplicable(java.lang.Class)">isApplicable</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;c)</code></th>
+<td class="colLast">
+<div class="block">Checks whether this component provider is able to provide an instance of given <code>Class</code>.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EjbComponentProvider</h4>
+<pre>public&nbsp;EjbComponentProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="create(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>create</h4>
+<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;java.lang.Object&nbsp;create&#8203;(java.lang.Class&lt;T&gt;&nbsp;c)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../core/ComponentProvider.html#create(java.lang.Class)">ComponentProvider</a></code></span></div>
+<div class="block">Create new instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../core/ComponentProvider.html#create(java.lang.Class)">create</a></code>&nbsp;in class&nbsp;<code><a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the created object.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - <code>Class</code> to be created.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>instance, iff found, <code>null</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="isApplicable(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isApplicable</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isApplicable&#8203;(java.lang.Class&lt;?&gt;&nbsp;c)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../core/ComponentProvider.html#isApplicable(java.lang.Class)">ComponentProvider</a></code></span></div>
+<div class="block">Checks whether this component provider is able to provide an instance of given <code>Class</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../core/ComponentProvider.html#isApplicable(java.lang.Class)">isApplicable</a></code>&nbsp;in class&nbsp;<code><a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>c</code> - <code>Class</code> to be checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> iff this <a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core"><code>ComponentProvider</code></a> is able to create an instance of the given <code>Class</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="destroy(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>destroy</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;destroy&#8203;(java.lang.Object&nbsp;o)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../core/ComponentProvider.html#destroy(java.lang.Object)">ComponentProvider</a></code></span></div>
+<div class="block">Destroys the given managed instance.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../core/ComponentProvider.html#destroy(java.lang.Object)">destroy</a></code>&nbsp;in class&nbsp;<code><a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>o</code> - instance to be destroyed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> iff the instance was coupled to this <a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core"><code>ComponentProvider</code></a>, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getInvocableMethod(java.lang.reflect.Method)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getInvocableMethod</h4>
+<pre class="methodSignature">public&nbsp;java.lang.reflect.Method&nbsp;getInvocableMethod&#8203;(java.lang.reflect.Method&nbsp;method)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../core/ComponentProvider.html#getInvocableMethod(java.lang.reflect.Method)">ComponentProvider</a></code></span></div>
+<div class="block">Get the method which should be invoked instead provided one.
+ <p>
+ Useful mainly for EJB container support, where methods from endpoint class cannot be invoked directly - Tyrus
+ needs
+ to use method declared on remote interface.
+ <p>
+ Default implementation returns method provided as parameter.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../core/ComponentProvider.html#getInvocableMethod(java.lang.reflect.Method)">getInvocableMethod</a></code>&nbsp;in class&nbsp;<code><a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core">ComponentProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>method</code> - method from endpoint class.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>method which should be invoked.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EjbComponentProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/gf/ejb/class-use/EjbComponentProvider.html b/apidocs/1.20/org/glassfish/tyrus/gf/ejb/class-use/EjbComponentProvider.html
new file mode 100644
index 00000000..7b8c76d8
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/gf/ejb/class-use/EjbComponentProvider.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.gf.ejb.EjbComponentProvider (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.gf.ejb.EjbComponentProvider (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.gf.ejb.EjbComponentProvider" class="title">Uses of Class<br>org.glassfish.tyrus.gf.ejb.EjbComponentProvider</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.gf.ejb.EjbComponentProvider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/gf/ejb/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/gf/ejb/package-summary.html
new file mode 100644
index 00000000..687aba8a
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/gf/ejb/package-summary.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.gf.ejb (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.gf.ejb (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.gf.ejb</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Tyrus EJB integration with Glassfish (and possibly other compatible containers).</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb">EjbComponentProvider</a></th>
+<td class="colLast">
+<div class="block">Provides the instance for the supported EJB classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/gf/ejb/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/gf/ejb/package-tree.html
new file mode 100644
index 00000000..6f3367fe
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/gf/ejb/package-tree.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.gf.ejb Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.gf.ejb Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.gf.ejb</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="../../core/ComponentProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ComponentProvider</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.gf.ejb.<a href="EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb"><span class="typeNameLink">EjbComponentProvider</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/gf/ejb/package-use.html b/apidocs/1.20/org/glassfish/tyrus/gf/ejb/package-use.html
new file mode 100644
index 00000000..8d185dfc
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/gf/ejb/package-use.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.gf.ejb (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.gf.ejb (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.gf.ejb" class="title">Uses of Package<br>org.glassfish.tyrus.gf.ejb</h1>
+</div>
+<div class="contentContainer">No usage of org.glassfish.tyrus.gf.ejb</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/server/Server.html b/apidocs/1.20/org/glassfish/tyrus/server/Server.html
new file mode 100644
index 00000000..885729ff
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/server/Server.html
@@ -0,0 +1,535 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Server (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Server (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":9,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Server.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.server</a></div>
+<h2 title="Class Server" class="title">Class Server</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.server.Server</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Server</span>
+extends java.lang.Object</pre>
+<div class="block">Implementation of the WebSocket Server.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATIC_CONTENT_ROOT">STATIC_CONTENT_ROOT</a></span></code></th>
+<td class="colLast">
+<div class="block">Path to static content to be served by created Server instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Class...)">Server</a></span>&#8203;(java.lang.Class&lt;?&gt;...&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Create new server instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int,java.lang.String,java.util.Map,java.lang.Class...)">Server</a></span>&#8203;(java.lang.String&nbsp;hostName,
+      int&nbsp;port,
+      java.lang.String&nbsp;contextPath,
+      java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+      java.lang.Class&lt;?&gt;...&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Construct new server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int,java.lang.String,java.util.Map,java.util.Set)">Server</a></span>&#8203;(java.lang.String&nbsp;hostName,
+      int&nbsp;port,
+      java.lang.String&nbsp;contextPath,
+      java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+      java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Construct new server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Map,java.lang.Class...)">Server</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+      java.lang.Class&lt;?&gt;...&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Create new server instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPort()">getPort</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the port which was used to start the container.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#main(java.lang.String%5B%5D)">main</a></span>&#8203;(java.lang.String[]&nbsp;args)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#start()">start</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Start the server.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop()">stop</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Stop the server.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="STATIC_CONTENT_ROOT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>STATIC_CONTENT_ROOT</h4>
+<pre>public static final&nbsp;java.lang.String STATIC_CONTENT_ROOT</pre>
+<div class="block">Path to static content to be served by created Server instance.
+ <p>
+ Value have to be non-empty <code>String</code> and should represent content root of static content (file system
+ path).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#%3Cinit%3E(java.util.Map,java.lang.Class...)"><code>Server(java.util.Map, Class[])</code></a>, 
+<a href="#%3Cinit%3E(java.lang.String,int,java.lang.String,java.util.Map,java.lang.Class...)"><code>Server(String, int, String, java.util.Map, Class[])</code></a>, 
+<a href="#%3Cinit%3E(java.lang.String,int,java.lang.String,java.util.Map,java.util.Set)"><code>Server(String, int, String, java.util.Map, java.util.Set)</code></a>, 
+<a href="../../../../constant-values.html#org.glassfish.tyrus.server.Server.STATIC_CONTENT_ROOT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.Class...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Server</h4>
+<pre>public&nbsp;Server&#8203;(java.lang.Class&lt;?&gt;...&nbsp;configuration)</pre>
+<div class="block">Create new server instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>configuration</code> - to be registered with the server. Classes annotated with <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>, implementing
+                      <a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><code>ServerApplicationConfig</code></a> or extending <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a>
+                      are supported.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.util.Map,java.lang.Class...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Server</h4>
+<pre>public&nbsp;Server&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+              java.lang.Class&lt;?&gt;...&nbsp;configuration)</pre>
+<div class="block">Create new server instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>properties</code> - properties used as a parameter to <a href="../spi/ServerContainerFactory.html#createServerContainer()"><code>(java.util.Map)</code></a> call.</dd>
+<dd><code>configuration</code> - to be registered with the server. Classes annotated with <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>, implementing <a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><code>ServerApplicationConfig</code></a> or extending <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a>
+                      are supported.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int,java.lang.String,java.util.Map,java.lang.Class...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Server</h4>
+<pre>public&nbsp;Server&#8203;(java.lang.String&nbsp;hostName,
+              int&nbsp;port,
+              java.lang.String&nbsp;contextPath,
+              java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+              java.lang.Class&lt;?&gt;...&nbsp;configuration)</pre>
+<div class="block">Construct new server.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostName</code> - hostName of the server.</dd>
+<dd><code>port</code> - port of the server. When provided value is <code>0</code>, default port (<a href="#DEFAULT_PORT">8025</a>)
+                      will be used, when <code>-1</code>, ephemeral port number will be used.</dd>
+<dd><code>contextPath</code> - root path to the server App.</dd>
+<dd><code>properties</code> - properties used as a parameter to <a href="../spi/ServerContainerFactory.html#createServerContainer()"><code>(java.util.Map)</code></a> call.</dd>
+<dd><code>configuration</code> - to be registered with the server. Classes annotated with <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>, implementing
+                      <a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><code>ServerApplicationConfig</code></a> or extending <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a>
+                      are supported.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getPort()"><code>getPort()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int,java.lang.String,java.util.Map,java.util.Set)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Server</h4>
+<pre>public&nbsp;Server&#8203;(java.lang.String&nbsp;hostName,
+              int&nbsp;port,
+              java.lang.String&nbsp;contextPath,
+              java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+              java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;configuration)</pre>
+<div class="block">Construct new server.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostName</code> - hostName of the server.</dd>
+<dd><code>port</code> - port of the server. When provided value is <code>0</code>, default port (<a href="#DEFAULT_PORT">8025</a>)
+                      will be used, when <code>-1</code>, ephemeral port number will be used.</dd>
+<dd><code>contextPath</code> - root path to the server App.</dd>
+<dd><code>properties</code> - properties used as a parameter to <a href="../spi/ServerContainerFactory.html#createServerContainer()"><code>(java.util.Map)</code></a> call.</dd>
+<dd><code>configuration</code> - to be registered with the server. Classes annotated with <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>, implementing <a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><code>ServerApplicationConfig</code></a>
+                      or extending <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a>
+                      are supported.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getPort()"><code>getPort()</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="main(java.lang.String[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>main</h4>
+<pre class="methodSignature">public static&nbsp;void&nbsp;main&#8203;(java.lang.String[]&nbsp;args)</pre>
+</li>
+</ul>
+<a id="start()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>start</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;start()
+           throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Start the server.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="getPort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPort</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getPort()</pre>
+<div class="block">Get the port which was used to start the container.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the port which was used to start the container.</dd>
+</dl>
+</li>
+</ul>
+<a id="stop()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>stop</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;stop()</pre>
+<div class="block">Stop the server.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Server.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/server/TyrusServerConfiguration.html b/apidocs/1.20/org/glassfish/tyrus/server/TyrusServerConfiguration.html
new file mode 100644
index 00000000..7b1889cb
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/server/TyrusServerConfiguration.html
@@ -0,0 +1,399 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusServerConfiguration (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusServerConfiguration (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusServerConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.server</a></div>
+<h2 title="Class TyrusServerConfiguration" class="title">Class TyrusServerConfiguration</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.server.TyrusServerConfiguration</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">TyrusServerConfiguration</span>
+extends java.lang.Object
+implements <a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a></pre>
+<div class="block">Container for either deployed <a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><code>ServerApplicationConfig</code></a>s, if any, or deployed classes.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Stepan Kopriva (stepan.kopriva at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Set,java.util.Set,java.util.Set,org.glassfish.tyrus.core.ErrorCollector)">TyrusServerConfiguration</a></span>&#8203;(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;classes,
+                        java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;dynamicallyAddedClasses,
+                        java.util.Set&lt;<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&gt;&nbsp;serverEndpointConfigs,
+                        <a href="../core/ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;errorCollector)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerConfiguration</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Set,java.util.Set)">TyrusServerConfiguration</a></span>&#8203;(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;classes,
+                        java.util.Set&lt;<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&gt;&nbsp;serverEndpointConfigs)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerConfiguration</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAnnotatedEndpointClasses(java.util.Set)">getAnnotatedEndpointClasses</a></span>&#8203;(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;scanned)</code></th>
+<td class="colLast">
+<div class="block">Gets all the classes annotated with <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a> annotation which should be deployed.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEndpointConfigs(java.util.Set)">getEndpointConfigs</a></span>&#8203;(java.util.Set&lt;java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&gt;&nbsp;scanned)</code></th>
+<td class="colLast">
+<div class="block">Gets all the <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> classes which should be deployed.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.util.Set,java.util.Set)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TyrusServerConfiguration</h4>
+<pre>public&nbsp;TyrusServerConfiguration&#8203;(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;classes,
+                                java.util.Set&lt;<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&gt;&nbsp;serverEndpointConfigs)</pre>
+<div class="block">Create new <a href="TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerConfiguration</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classes</code> - classes to be included in this application instance. Can contain any combination of
+                              annotated endpoints (see <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>). Cannot be <code>null</code>.</dd>
+<dd><code>serverEndpointConfigs</code> - List of instances of <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> to be deployed.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - when any of the arguments is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.util.Set,java.util.Set,java.util.Set,org.glassfish.tyrus.core.ErrorCollector)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TyrusServerConfiguration</h4>
+<pre>public&nbsp;TyrusServerConfiguration&#8203;(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;classes,
+                                java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;dynamicallyAddedClasses,
+                                java.util.Set&lt;<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&gt;&nbsp;serverEndpointConfigs,
+                                <a href="../core/ErrorCollector.html" title="class in org.glassfish.tyrus.core">ErrorCollector</a>&nbsp;errorCollector)</pre>
+<div class="block">Create new <a href="TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerConfiguration</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classes</code> - classes to be included in this application instance. Can contain any combination
+                                of annotated endpoints (see <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>).</dd>
+<dd><code>dynamicallyAddedClasses</code> - dynamically deployed classes. See <a href="../../../../javax/websocket/server/package-summary.html"><code>.ServerContainer#addEndpoint(Class)</code></a>.</dd>
+<dd><code>serverEndpointConfigs</code> - List of instances of <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> to be deployed.</dd>
+<dd><code>errorCollector</code> - model errors are reported to this instance. Cannot be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - when any of the arguments is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getEndpointConfigs(java.util.Set)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEndpointConfigs</h4>
+<pre class="methodSignature">public&nbsp;java.util.Set&lt;<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&gt;&nbsp;getEndpointConfigs&#8203;(java.util.Set&lt;java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&gt;&nbsp;scanned)</pre>
+<div class="block">Gets all the <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> classes which should be deployed.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/server/ServerApplicationConfig.html#getEndpointConfigs(java.util.Set)">getEndpointConfigs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>scanned</code> - is unused.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>all the <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a> classes which should be deployed.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAnnotatedEndpointClasses(java.util.Set)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getAnnotatedEndpointClasses</h4>
+<pre class="methodSignature">public&nbsp;java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;getAnnotatedEndpointClasses&#8203;(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;scanned)</pre>
+<div class="block">Gets all the classes annotated with <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a> annotation which should be deployed.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/server/ServerApplicationConfig.html#getAnnotatedEndpointClasses(java.util.Set)">getAnnotatedEndpointClasses</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>scanned</code> - is unused.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>all the classes annotated with <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a> annotation which should be deployed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusServerConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/server/TyrusServerContainer.html b/apidocs/1.20/org/glassfish/tyrus/server/TyrusServerContainer.html
new file mode 100644
index 00000000..9a289609
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/server/TyrusServerContainer.html
@@ -0,0 +1,1146 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusServerContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusServerContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":6,"i19":6,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusServerContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.server</a></div>
+<h2 title="Class TyrusServerContainer" class="title">Class TyrusServerContainer</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li><a href="../core/ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.ExecutorServiceProvider</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../core/BaseContainer.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.BaseContainer</a></li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.server.TyrusServerContainer</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../javax/websocket/server/ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></code>, <code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code>, <code><a href="../spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">TyrusServerContainer</span>
+extends <a href="../core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a>
+implements <a href="../spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></pre>
+<div class="block">Server Container Implementation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Martin Matula (martin.matula at oracle.com), Pavel Bucek (pavel.bucek at oracle.com), Stepan Kopriva (stepan.kopriva at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.org.glassfish.tyrus.core.BaseContainer">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.glassfish.tyrus.core.<a href="../core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></h3>
+<code><a href="../core/BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core">BaseContainer.ShutDownCondition</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Set)">TyrusServerContainer</a></span>&#8203;(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;classes)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="TyrusServerContainer.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerContainer</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.websocket.server.ServerApplicationConfig)">TyrusServerContainer</a></span>&#8203;(<a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a>&nbsp;serverApplicationConfig)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="TyrusServerContainer.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerContainer</code></a> using already created <a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><code>ServerApplicationConfig</code></a> instance.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addEndpoint(java.lang.Class)">addEndpoint</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass)</code></th>
+<td class="colLast">
+<div class="block">Deploys the given annotated endpoint into this ServerContainer during the
+ initialization phase of deploying the application.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addEndpoint(javax.websocket.server.ServerEndpointConfig)">addEndpoint</a></span>&#8203;(<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverEndpointConfig)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asyncConnectToServer(java.lang.Class,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedEndpointClass,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                    <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asyncConnectToServer(java.lang.Object,java.net.URI)">asyncConnectToServer</a></span>&#8203;(java.lang.Object&nbsp;obj,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)"><code>WebSocketContainer.connectToServer(Object, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">asyncConnectToServer</a></span>&#8203;(<a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                    <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                    java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+               <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic endpoint to its server with the given 
+ configuration.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Class&nbsp;annotatedEndpointClass,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied annotated endpoint to its server.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a></span>&#8203;(java.lang.Object&nbsp;annotatedEndpointInstance,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied annotated endpoint instance to its server.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></span>&#8203;(<a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+               <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+               java.net.URI&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Connect the supplied programmatic client endpoint instance to its server 
+ with the given configuration.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doneDeployment()">doneDeployment</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Container is no longer required to accept <a href="#addEndpoint(javax.websocket.server.ServerEndpointConfig)"><code>addEndpoint(javax.websocket.server.ServerEndpointConfig)</code></a> and
+ <a href="#addEndpoint(java.lang.Class)"><code>addEndpoint(Class)</code></a> calls.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>protected <a href="../client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClientManager()">getClientManager</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Can be overridden to provide own <a href="../client/ClientManager.html" title="class in org.glassfish.tyrus.client"><code>ClientManager</code></a> implementation or instance.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultAsyncSendTimeout()">getDefaultAsyncSendTimeout</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the number of milliseconds the implementation will timeout
+ attempting to send a websocket message for all RemoteEndpoints associated
+ with this container.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultMaxBinaryMessageBufferSize()">getDefaultMaxBinaryMessageBufferSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the default maximum size of incoming binary message that this container
+ will buffer.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultMaxSessionIdleTimeout()">getDefaultMaxSessionIdleTimeout</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultMaxTextMessageBufferSize()">getDefaultMaxTextMessageBufferSize</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the default maximum size of incoming text message that this container
+ will buffer.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>java.util.Set&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstalledExtensions()">getInstalledExtensions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return the set of Extensions installed in the container.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPort()">getPort</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get port of the started container.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class)">register</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(javax.websocket.server.ServerEndpointConfig)">register</a></span>&#8203;(<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverEndpointConfig)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAsyncSendTimeout(long)">setAsyncSendTimeout</a></span>&#8203;(long&nbsp;timeoutmillis)</code></th>
+<td class="colLast">
+<div class="block">Sets the number of milliseconds the implementation will timeout
+ attempting to send a websocket message  for all RemoteEndpoints associated
+ with this container.</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDefaultMaxBinaryMessageBufferSize(int)">setDefaultMaxBinaryMessageBufferSize</a></span>&#8203;(int&nbsp;max)</code></th>
+<td class="colLast">
+<div class="block">Sets the default maximum size of incoming binary message that this container
+ will buffer.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDefaultMaxSessionIdleTimeout(long)">setDefaultMaxSessionIdleTimeout</a></span>&#8203;(long&nbsp;defaultMaxSessionIdleTimeout)</code></th>
+<td class="colLast">
+<div class="block">Sets the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDefaultMaxTextMessageBufferSize(int)">setDefaultMaxTextMessageBufferSize</a></span>&#8203;(int&nbsp;max)</code></th>
+<td class="colLast">
+<div class="block">Sets the maximum size of incoming text message that this container
+ will buffer.</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#start(java.lang.String,int)">start</a></span>&#8203;(java.lang.String&nbsp;rootPath,
+     int&nbsp;port)</code></th>
+<td class="colLast">
+<div class="block">Start the container.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop()">stop</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Undeploy all endpoints and stop underlying <a href="../spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.core.BaseContainer">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.glassfish.tyrus.core.<a href="../core/BaseContainer.html" title="class in org.glassfish.tyrus.core">BaseContainer</a></h3>
+<code><a href="../core/BaseContainer.html#getExecutorService()">getExecutorService</a>, <a href="../core/BaseContainer.html#getScheduledExecutorService()">getScheduledExecutorService</a>, <a href="../core/BaseContainer.html#shutdown()">shutdown</a>, <a href="../core/BaseContainer.html#shutdown(org.glassfish.tyrus.core.BaseContainer.ShutDownCondition)">shutdown</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.org.glassfish.tyrus.spi.ServerContainer">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.glassfish.tyrus.spi.<a href="../spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></h3>
+<code><a href="../spi/ServerContainer.html#getWebSocketEngine()">getWebSocketEngine</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.util.Set)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TyrusServerContainer</h4>
+<pre>public&nbsp;TyrusServerContainer&#8203;(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;classes)</pre>
+<div class="block">Create new <a href="TyrusServerContainer.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerContainer</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>classes</code> - classes to be included in this application instance. Can contain any combination of annotated
+                endpoints (see <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a>) or <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>
+                descendants.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.websocket.server.ServerApplicationConfig)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TyrusServerContainer</h4>
+<pre>public&nbsp;TyrusServerContainer&#8203;(<a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a>&nbsp;serverApplicationConfig)</pre>
+<div class="block">Create new <a href="TyrusServerContainer.html" title="class in org.glassfish.tyrus.server"><code>TyrusServerContainer</code></a> using already created <a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><code>ServerApplicationConfig</code></a> instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serverApplicationConfig</code> - provided application config.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="start(java.lang.String,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>start</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;start&#8203;(java.lang.String&nbsp;rootPath,
+                  int&nbsp;port)
+           throws java.io.IOException,
+                  <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Start the container.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ServerContainer.html#start(java.lang.String,int)">start</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rootPath</code> - context path of the deployed websocket application.</dd>
+<dd><code>port</code> - TCP port</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - when any IO related issues emerge during <a href="../spi/ServerContainer.html#start(java.lang.String,int)"><code>ServerContainer.start(String, int)</code></a>.</dd>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - when any deployment related error is found; should contain list of all found issues.</dd>
+</dl>
+</li>
+</ul>
+<a id="stop()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stop</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;stop()</pre>
+<div class="block">Undeploy all endpoints and stop underlying <a href="../spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.
+ <p>
+ Release all created threadpools / executor services.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../spi/ServerContainer.html#stop()">stop</a></code>&nbsp;in interface&nbsp;<code><a href="../spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;register&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass)
+                       throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="register(javax.websocket.server.ServerEndpointConfig)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;register&#8203;(<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverEndpointConfig)
+                       throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="addEndpoint(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addEndpoint</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;addEndpoint&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass)
+                 throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/server/ServerContainer.html#addEndpoint(java.lang.Class)">ServerContainer</a></code></span></div>
+<div class="block">Deploys the given annotated endpoint into this ServerContainer during the
+ initialization phase of deploying the application.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/server/ServerContainer.html#addEndpoint(java.lang.Class)">addEndpoint</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/server/ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - the class of the annotated endpoint</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the annotated endpoint was badly formed.</dd>
+</dl>
+</li>
+</ul>
+<a id="addEndpoint(javax.websocket.server.ServerEndpointConfig)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addEndpoint</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;addEndpoint&#8203;(<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverEndpointConfig)
+                 throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/server/ServerContainer.html#addEndpoint(javax.websocket.server.ServerEndpointConfig)">addEndpoint</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/server/ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serverEndpointConfig</code> - the configuration instance representing the logical endpoint
+ that will be registered.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the endpoint was badly formed.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPort</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getPort()</pre>
+<div class="block">Get port of the started container.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the port of the started container or <code>-1</code>, when the container is not started or the container does
+ not provide the port.</dd>
+</dl>
+</li>
+</ul>
+<a id="getClientManager()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClientManager</h4>
+<pre class="methodSignature">protected&nbsp;<a href="../client/ClientManager.html" title="class in org.glassfish.tyrus.client">ClientManager</a>&nbsp;getClientManager()</pre>
+<div class="block">Can be overridden to provide own <a href="../client/ClientManager.html" title="class in org.glassfish.tyrus.client"><code>ClientManager</code></a> implementation or instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../client/ClientManager.html" title="class in org.glassfish.tyrus.client"><code>ClientManager</code></a> associated with this server container.</dd>
+</dl>
+</li>
+</ul>
+<a id="connectToServer(java.lang.Class,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectToServer</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;connectToServer&#8203;(java.lang.Class&nbsp;annotatedEndpointClass,
+                               java.net.URI&nbsp;path)
+                        throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                               java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)">WebSocketContainer</a></code></span></div>
+<div class="block">Connect the supplied annotated endpoint to its server. The supplied object must be a
+ class decorated with the class level
+ <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a> annotation. This method blocks until the connection
+ is established, or throws an error if either the connection could not be made or there
+ was a problem with the supplied endpoint class.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>annotatedEndpointClass</code> - the annotated websocket client endpoint.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the class is not a valid annotated endpoint class.</dd>
+<dd><code>java.io.IOException</code> - if there was a network or protocol problem that 
+ prevented the client endpoint being connected to its server.</dd>
+</dl>
+</li>
+</ul>
+<a id="connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectToServer</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;connectToServer&#8203;(java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                               <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                               java.net.URI&nbsp;path)
+                        throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                               java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">WebSocketContainer</a></code></span></div>
+<div class="block">Connect the supplied programmatic endpoint to its server with the given 
+ configuration. This method blocks until the connection
+ is established, or throws an error if the connection could not be made.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - the programmatic client endpoint class <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</dd>
+<dd><code>cec</code> - the configuration used to configure the programmatic endpoint.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the configuration is not valid</dd>
+<dd><code>java.io.IOException</code> - if there was a network or protocol problem that prevented the client endpoint being connected to its server</dd>
+</dl>
+</li>
+</ul>
+<a id="connectToServer(java.lang.Object,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectToServer</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;connectToServer&#8203;(java.lang.Object&nbsp;annotatedEndpointInstance,
+                               java.net.URI&nbsp;path)
+                        throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                               java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)">WebSocketContainer</a></code></span></div>
+<div class="block">Connect the supplied annotated endpoint instance to its server. The supplied 
+ object must be a class decorated with the class level
+ <a href="../../../../javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><code>ServerEndpoint</code></a> annotation. This method 
+ blocks until the connection is established, or throws an error if either 
+ the connection could not be made or there was a problem with the supplied 
+ endpoint class. If the developer uses this method to deploy the client
+ endpoint, services like dependency injection that are supported, for 
+ example, when the implementation is part of the Java EE platform
+ may not be available. If the client endpoint uses dependency injection,
+ use <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)"><code>WebSocketContainer.connectToServer(java.lang.Class, java.net.URI)</code></a>
+ instead.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>annotatedEndpointInstance</code> - the annotated websocket client endpoint 
+ instance.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the annotated endpoint instance is not valid.</dd>
+<dd><code>java.io.IOException</code> - if there was a network or protocol problem that 
+ prevented the client endpoint being connected to its server.</dd>
+</dl>
+</li>
+</ul>
+<a id="connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectToServer</h4>
+<pre class="methodSignature">public&nbsp;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&nbsp;connectToServer&#8203;(<a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                               <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                               java.net.URI&nbsp;path)
+                        throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                               java.io.IOException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">WebSocketContainer</a></code></span></div>
+<div class="block">Connect the supplied programmatic client endpoint instance to its server 
+ with the given configuration. This method blocks until the connection
+ is established, or throws an error if the connection could not be made. 
+ If the developer uses this method to deploy the client
+ endpoint, services like dependency injection that are supported, for 
+ example, when the implementation is part of the Java EE platform
+ may not be available. If the client endpoint uses dependency injection,
+ use <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(java.lang.Class, javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>
+ instead.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointInstance</code> - the programmatic client endpoint instance <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</dd>
+<dd><code>cec</code> - the configuration used to configure the programmatic endpoint.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the configuration is not valid</dd>
+<dd><code>java.io.IOException</code> - if there was a network or protocol problem that 
+ prevented the client endpoint being connected to its server</dd>
+</dl>
+</li>
+</ul>
+<a id="asyncConnectToServer(java.lang.Class,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asyncConnectToServer</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;&nbsp;asyncConnectToServer&#8203;(java.lang.Class&lt;?&gt;&nbsp;annotatedEndpointClass,
+                                                                 java.net.URI&nbsp;path)
+                                                          throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, java.net.URI)</code></a>.
+ <p>
+ Only simple checks are performed in the main thread; client container is created in different thread, same
+ applies to connecting etc.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>annotatedEndpointClass</code> - the annotated websocket client endpoint.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Future for the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the class is not a valid annotated endpoint class.</dd>
+</dl>
+</li>
+</ul>
+<a id="asyncConnectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asyncConnectToServer</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;&nbsp;asyncConnectToServer&#8203;(java.lang.Class&lt;? extends <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&gt;&nbsp;endpointClass,
+                                                                 <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                                                                 java.net.URI&nbsp;path)
+                                                          throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.
+ <p>
+ Only simple checks are performed in the main thread; client container is created in different thread, same
+ applies to connecting etc.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - the programmatic client endpoint class <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dd><code>cec</code> - the configuration used to configure the programmatic endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the configuration is not valid</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class, javax.websocket.ClientEndpointConfig,
+ java.net.URI)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="asyncConnectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asyncConnectToServer</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;&nbsp;asyncConnectToServer&#8203;(<a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket">Endpoint</a>&nbsp;endpointInstance,
+                                                                 <a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                                                                 java.net.URI&nbsp;path)
+                                                          throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a>.
+ <p>
+ Only simple checks are performed in the main thread; client container is created in different thread, same
+ applies to connecting etc.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointInstance</code> - the programmatic client endpoint instance <a href="../../../../javax/websocket/Endpoint.html" title="class in javax.websocket"><code>Endpoint</code></a>.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dd><code>cec</code> - the configuration used to configure the programmatic endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the configuration is not valid</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(javax.websocket.Endpoint,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="asyncConnectToServer(java.lang.Object,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asyncConnectToServer</h4>
+<pre class="methodSignature">public&nbsp;java.util.concurrent.Future&lt;<a href="../../../../javax/websocket/Session.html" title="interface in javax.websocket">Session</a>&gt;&nbsp;asyncConnectToServer&#8203;(java.lang.Object&nbsp;obj,
+                                                                 java.net.URI&nbsp;path)
+                                                          throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Non-blocking version of <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)"><code>WebSocketContainer.connectToServer(Object, java.net.URI)</code></a>.
+ <p>
+ Only simple checks are performed in the main thread; client container is created in different thread, same
+ applies to connecting etc.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the annotated websocket client endpoint instance.</dd>
+<dd><code>path</code> - the complete path to the server endpoint.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the Session created if the connection is successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - if the annotated endpoint instance is not valid.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)"><code>WebSocketContainer.connectToServer(Object, java.net.URI)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getDefaultMaxBinaryMessageBufferSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultMaxBinaryMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getDefaultMaxBinaryMessageBufferSize()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxBinaryMessageBufferSize()">WebSocketContainer</a></code></span></div>
+<div class="block">Returns the default maximum size of incoming binary message that this container
+ will buffer. This default may be overridden on a per session basis using
+ <a href="../../../../javax/websocket/Session.html#setMaxBinaryMessageBufferSize(int)"><code>Session.setMaxBinaryMessageBufferSize(int)</code></a></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxBinaryMessageBufferSize()">getDefaultMaxBinaryMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum size of incoming binary message in number of bytes.</dd>
+</dl>
+</li>
+</ul>
+<a id="setDefaultMaxBinaryMessageBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDefaultMaxBinaryMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setDefaultMaxBinaryMessageBufferSize&#8203;(int&nbsp;max)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxBinaryMessageBufferSize(int)">WebSocketContainer</a></code></span></div>
+<div class="block">Sets the default maximum size of incoming binary message that this container
+ will buffer.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxBinaryMessageBufferSize(int)">setDefaultMaxBinaryMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>max</code> - the maximum size of binary message in number of bytes.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDefaultMaxTextMessageBufferSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultMaxTextMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getDefaultMaxTextMessageBufferSize()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxTextMessageBufferSize()">WebSocketContainer</a></code></span></div>
+<div class="block">Returns the default maximum size of incoming text message that this container
+ will buffer. This default may be overridden on a per session basis using
+ <a href="../../../../javax/websocket/Session.html#setMaxTextMessageBufferSize(int)"><code>Session.setMaxTextMessageBufferSize(int)</code></a></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxTextMessageBufferSize()">getDefaultMaxTextMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum size of incoming text message in number of bytes.</dd>
+</dl>
+</li>
+</ul>
+<a id="setDefaultMaxTextMessageBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDefaultMaxTextMessageBufferSize</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setDefaultMaxTextMessageBufferSize&#8203;(int&nbsp;max)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxTextMessageBufferSize(int)">WebSocketContainer</a></code></span></div>
+<div class="block">Sets the maximum size of incoming text message that this container
+ will buffer.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxTextMessageBufferSize(int)">setDefaultMaxTextMessageBufferSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>max</code> - the maximum size of text message in number of bytes.</dd>
+</dl>
+</li>
+</ul>
+<a id="getInstalledExtensions()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInstalledExtensions</h4>
+<pre class="methodSignature">public&nbsp;java.util.Set&lt;<a href="../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;getInstalledExtensions()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#getInstalledExtensions()">WebSocketContainer</a></code></span></div>
+<div class="block">Return the set of Extensions installed in the container.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#getInstalledExtensions()">getInstalledExtensions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the set of extensions.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDefaultAsyncSendTimeout()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultAsyncSendTimeout</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;getDefaultAsyncSendTimeout()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultAsyncSendTimeout()">WebSocketContainer</a></code></span></div>
+<div class="block">Return the number of milliseconds the implementation will timeout
+ attempting to send a websocket message for all RemoteEndpoints associated
+ with this container. A non-positive number indicates
+ the implementation will not timeout attempting to send a websocket message
+ asynchronously. Note this default may be overridden in each RemoteEndpoint.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultAsyncSendTimeout()">getDefaultAsyncSendTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the timeout time in millsenconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="setAsyncSendTimeout(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAsyncSendTimeout</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setAsyncSendTimeout&#8203;(long&nbsp;timeoutmillis)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#setAsyncSendTimeout(long)">WebSocketContainer</a></code></span></div>
+<div class="block">Sets the number of milliseconds the implementation will timeout
+ attempting to send a websocket message  for all RemoteEndpoints associated
+ with this container. A non-positive number indicates
+ the implementation will not timeout attempting to send a websocket message
+ asynchronously. Note this default may be overridden in each RemoteEndpoint.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#setAsyncSendTimeout(long)">setAsyncSendTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="getDefaultMaxSessionIdleTimeout()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDefaultMaxSessionIdleTimeout</h4>
+<pre class="methodSignature">public&nbsp;long&nbsp;getDefaultMaxSessionIdleTimeout()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxSessionIdleTimeout()">WebSocketContainer</a></code></span></div>
+<div class="block">Return the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive. A value that is
+ 0 or negative indicates the sessions will never timeout due to inactivity.
+ The value may be overridden on a per session basis using
+ <a href="../../../../javax/websocket/Session.html#setMaxIdleTimeout(long)"><code>Session.setMaxIdleTimeout(long)</code></a></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxSessionIdleTimeout()">getDefaultMaxSessionIdleTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the default number of milliseconds after which an idle session in this container
+ will be closed</dd>
+</dl>
+</li>
+</ul>
+<a id="setDefaultMaxSessionIdleTimeout(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDefaultMaxSessionIdleTimeout</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setDefaultMaxSessionIdleTimeout&#8203;(long&nbsp;defaultMaxSessionIdleTimeout)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxSessionIdleTimeout(long)">WebSocketContainer</a></code></span></div>
+<div class="block">Sets the default time in milliseconds after which any web socket sessions in this
+ container will be closed if it has been inactive. A value that is
+ 0 or negative indicates the sessions will never timeout due to inactivity.
+ The value may be overridden on a per session basis using
+ <a href="../../../../javax/websocket/Session.html#setMaxIdleTimeout(long)"><code>Session.setMaxIdleTimeout(long)</code></a></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxSessionIdleTimeout(long)">setDefaultMaxSessionIdleTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>defaultMaxSessionIdleTimeout</code> - the maximum time in milliseconds.</dd>
+</dl>
+</li>
+</ul>
+<a id="doneDeployment()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>doneDeployment</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;doneDeployment()</pre>
+<div class="block">Container is no longer required to accept <a href="#addEndpoint(javax.websocket.server.ServerEndpointConfig)"><code>addEndpoint(javax.websocket.server.ServerEndpointConfig)</code></a> and
+ <a href="#addEndpoint(java.lang.Class)"><code>addEndpoint(Class)</code></a> calls.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusServerContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/server/class-use/Server.html b/apidocs/1.20/org/glassfish/tyrus/server/class-use/Server.html
new file mode 100644
index 00000000..f3944fc5
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/server/class-use/Server.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.server.Server (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.server.Server (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Server.html" title="class in org.glassfish.tyrus.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.server.Server" class="title">Uses of Class<br>org.glassfish.tyrus.server.Server</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.server.Server</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Server.html" title="class in org.glassfish.tyrus.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/server/class-use/TyrusServerConfiguration.html b/apidocs/1.20/org/glassfish/tyrus/server/class-use/TyrusServerConfiguration.html
new file mode 100644
index 00000000..ddd4b025
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/server/class-use/TyrusServerConfiguration.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.server.TyrusServerConfiguration (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.server.TyrusServerConfiguration (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.server.TyrusServerConfiguration" class="title">Uses of Class<br>org.glassfish.tyrus.server.TyrusServerConfiguration</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.server.TyrusServerConfiguration</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/server/class-use/TyrusServerContainer.html b/apidocs/1.20/org/glassfish/tyrus/server/class-use/TyrusServerContainer.html
new file mode 100644
index 00000000..5bbe1d9e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/server/class-use/TyrusServerContainer.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.server.TyrusServerContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.server.TyrusServerContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.server.TyrusServerContainer" class="title">Uses of Class<br>org.glassfish.tyrus.server.TyrusServerContainer</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.server.TyrusServerContainer</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/server/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/server/package-summary.html
new file mode 100644
index 00000000..897fa838
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/server/package-summary.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.server (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.server (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.server</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Server implementation.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Server.html" title="class in org.glassfish.tyrus.server">Server</a></th>
+<td class="colLast">
+<div class="block">Implementation of the WebSocket Server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server">TyrusServerConfiguration</a></th>
+<td class="colLast">
+<div class="block">Container for either deployed <a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><code>ServerApplicationConfig</code></a>s, if any, or deployed classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></th>
+<td class="colLast">
+<div class="block">Server Container Implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/server/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/server/package-tree.html
new file mode 100644
index 00000000..83c0509c
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/server/package-tree.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.server Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.server Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.server</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="../core/ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ExecutorServiceProvider</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="../core/BaseContainer.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">BaseContainer</span></a> (implements javax.websocket.<a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>)
+<ul>
+<li class="circle">org.glassfish.tyrus.server.<a href="TyrusServerContainer.html" title="class in org.glassfish.tyrus.server"><span class="typeNameLink">TyrusServerContainer</span></a> (implements org.glassfish.tyrus.spi.<a href="../spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a>)</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.server.<a href="Server.html" title="class in org.glassfish.tyrus.server"><span class="typeNameLink">Server</span></a></li>
+<li class="circle">org.glassfish.tyrus.server.<a href="TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server"><span class="typeNameLink">TyrusServerConfiguration</span></a> (implements javax.websocket.server.<a href="../../../../javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a>)</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/server/package-use.html b/apidocs/1.20/org/glassfish/tyrus/server/package-use.html
new file mode 100644
index 00000000..d77efe1c
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/server/package-use.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.server (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.server (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.server" class="title">Uses of Package<br>org.glassfish.tyrus.server</h1>
+</div>
+<div class="contentContainer">No usage of org.glassfish.tyrus.server</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html b/apidocs/1.20/org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html
new file mode 100644
index 00000000..1595ae85
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html
@@ -0,0 +1,512 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusHttpUpgradeHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusHttpUpgradeHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusHttpUpgradeHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.servlet</a></div>
+<h2 title="Class TyrusHttpUpgradeHandler" class="title">Class TyrusHttpUpgradeHandler</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.util.EventListener</code>, <code>javax.servlet.http.HttpUpgradeHandler</code>, <code>javax.servlet.ReadListener</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">TyrusHttpUpgradeHandler</span>
+extends java.lang.Object
+implements javax.servlet.http.HttpUpgradeHandler, javax.servlet.ReadListener</pre>
+<div class="block"><code>HttpUpgradeHandler</code> and <code>ReadListener</code> implementation.
+ <p>
+ Reads data from <code>ServletInputStream</code> and passes it further to the Tyrus runtime.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Jitendra Kotamraju, Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FRAME_BUFFER_SIZE">FRAME_BUFFER_SIZE</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">TyrusHttpUpgradeHandler</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroy()">destroy</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(javax.servlet.http.WebConnection)">init</a></span>&#8203;(javax.servlet.http.WebConnection&nbsp;wc)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onAllDataRead()">onAllDataRead</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onDataAvailable()">onDataAvailable</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onError(java.lang.Throwable)">onError</a></span>&#8203;(java.lang.Throwable&nbsp;t)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#preInit(org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo,org.glassfish.tyrus.spi.Writer,boolean)">preInit</a></span>&#8203;(<a href="../spi/WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a>&nbsp;upgradeInfo,
+       <a href="../spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+       boolean&nbsp;authenticated)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sessionDestroyed()">sessionDestroyed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Called when related <code>HttpSession</code> is destroyed or invalidated.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIncomingBufferSize(int)">setIncomingBufferSize</a></span>&#8203;(int&nbsp;incomingBufferSize)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="FRAME_BUFFER_SIZE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FRAME_BUFFER_SIZE</h4>
+<pre>public static final&nbsp;java.lang.String FRAME_BUFFER_SIZE</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler.FRAME_BUFFER_SIZE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TyrusHttpUpgradeHandler</h4>
+<pre>public&nbsp;TyrusHttpUpgradeHandler()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="init(javax.servlet.http.WebConnection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>init</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;init&#8203;(javax.servlet.http.WebConnection&nbsp;wc)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>init</code>&nbsp;in interface&nbsp;<code>javax.servlet.http.HttpUpgradeHandler</code></dd>
+</dl>
+</li>
+</ul>
+<a id="preInit(org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo,org.glassfish.tyrus.spi.Writer,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>preInit</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;preInit&#8203;(<a href="../spi/WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a>&nbsp;upgradeInfo,
+                    <a href="../spi/Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+                    boolean&nbsp;authenticated)</pre>
+</li>
+</ul>
+<a id="onDataAvailable()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onDataAvailable</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onDataAvailable()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>onDataAvailable</code>&nbsp;in interface&nbsp;<code>javax.servlet.ReadListener</code></dd>
+</dl>
+</li>
+</ul>
+<a id="onAllDataRead()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onAllDataRead</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onAllDataRead()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>onAllDataRead</code>&nbsp;in interface&nbsp;<code>javax.servlet.ReadListener</code></dd>
+</dl>
+</li>
+</ul>
+<a id="onError(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onError</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onError&#8203;(java.lang.Throwable&nbsp;t)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>onError</code>&nbsp;in interface&nbsp;<code>javax.servlet.ReadListener</code></dd>
+</dl>
+</li>
+</ul>
+<a id="destroy()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>destroy</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;destroy()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>destroy</code>&nbsp;in interface&nbsp;<code>javax.servlet.http.HttpUpgradeHandler</code></dd>
+</dl>
+</li>
+</ul>
+<a id="sessionDestroyed()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sessionDestroyed</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;sessionDestroyed()</pre>
+<div class="block">Called when related <code>HttpSession</code> is destroyed or invalidated.
+ <p>
+ Implementation is required to call onClose() on server-side with corresponding close code (1008, see
+ WebSocket spec 7.2) - only when there is an authorized user for this session.</div>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a id="setIncomingBufferSize(int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setIncomingBufferSize</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setIncomingBufferSize&#8203;(int&nbsp;incomingBufferSize)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusHttpUpgradeHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html b/apidocs/1.20/org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html
new file mode 100644
index 00000000..c99d98fa
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html
@@ -0,0 +1,329 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusServletContainerInitializer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TyrusServletContainerInitializer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusServletContainerInitializer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.servlet</a></div>
+<h2 title="Class TyrusServletContainerInitializer" class="title">Class TyrusServletContainerInitializer</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.servlet.TyrusServletContainerInitializer</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>javax.servlet.ServletContainerInitializer</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">TyrusServletContainerInitializer</span>
+extends java.lang.Object
+implements javax.servlet.ServletContainerInitializer</pre>
+<div class="block">Registers a filter for upgrade handshake.
+ <p>
+ All requests will be handled by registered filter if not specified otherwise.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Jitendra Kotamraju, Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">TyrusServletContainerInitializer</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onStartup(java.util.Set,javax.servlet.ServletContext)">onStartup</a></span>&#8203;(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;classes,
+         javax.servlet.ServletContext&nbsp;ctx)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TyrusServletContainerInitializer</h4>
+<pre>public&nbsp;TyrusServletContainerInitializer()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onStartup(java.util.Set,javax.servlet.ServletContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onStartup</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;onStartup&#8203;(java.util.Set&lt;java.lang.Class&lt;?&gt;&gt;&nbsp;classes,
+                      javax.servlet.ServletContext&nbsp;ctx)
+               throws javax.servlet.ServletException</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>onStartup</code>&nbsp;in interface&nbsp;<code>javax.servlet.ServletContainerInitializer</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.servlet.ServletException</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TyrusServletContainerInitializer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/servlet/class-use/TyrusHttpUpgradeHandler.html b/apidocs/1.20/org/glassfish/tyrus/servlet/class-use/TyrusHttpUpgradeHandler.html
new file mode 100644
index 00000000..6b176bf6
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/servlet/class-use/TyrusHttpUpgradeHandler.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler" class="title">Uses of Class<br>org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/servlet/class-use/TyrusServletContainerInitializer.html b/apidocs/1.20/org/glassfish/tyrus/servlet/class-use/TyrusServletContainerInitializer.html
new file mode 100644
index 00000000..2e7f4677
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/servlet/class-use/TyrusServletContainerInitializer.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.servlet.TyrusServletContainerInitializer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.servlet.TyrusServletContainerInitializer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusServletContainerInitializer.html" title="class in org.glassfish.tyrus.servlet">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.servlet.TyrusServletContainerInitializer" class="title">Uses of Class<br>org.glassfish.tyrus.servlet.TyrusServletContainerInitializer</h2>
+</div>
+<div class="classUseContainer">No usage of org.glassfish.tyrus.servlet.TyrusServletContainerInitializer</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TyrusServletContainerInitializer.html" title="class in org.glassfish.tyrus.servlet">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/servlet/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/servlet/package-summary.html
new file mode 100644
index 00000000..42af88e4
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/servlet/package-summary.html
@@ -0,0 +1,181 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.servlet (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.servlet (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.servlet</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Servlet 3.1 integration.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet">TyrusHttpUpgradeHandler</a></th>
+<td class="colLast">
+<div class="block"><code>HttpUpgradeHandler</code> and <code>ReadListener</code> implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="TyrusServletContainerInitializer.html" title="class in org.glassfish.tyrus.servlet">TyrusServletContainerInitializer</a></th>
+<td class="colLast">
+<div class="block">Registers a filter for upgrade handshake.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/servlet/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/servlet/package-tree.html
new file mode 100644
index 00000000..96ea66ef
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/servlet/package-tree.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.servlet Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.servlet Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.servlet</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.servlet.<a href="TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet"><span class="typeNameLink">TyrusHttpUpgradeHandler</span></a> (implements javax.servlet.http.HttpUpgradeHandler, javax.servlet.ReadListener)</li>
+<li class="circle">org.glassfish.tyrus.servlet.<a href="TyrusServletContainerInitializer.html" title="class in org.glassfish.tyrus.servlet"><span class="typeNameLink">TyrusServletContainerInitializer</span></a> (implements javax.servlet.ServletContainerInitializer)</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/servlet/package-use.html b/apidocs/1.20/org/glassfish/tyrus/servlet/package-use.html
new file mode 100644
index 00000000..b2e8d6de
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/servlet/package-use.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.servlet (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.servlet (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.servlet" class="title">Uses of Package<br>org.glassfish.tyrus.servlet</h1>
+</div>
+<div class="contentContainer">No usage of org.glassfish.tyrus.servlet</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/ClientContainer.html b/apidocs/1.20/org/glassfish/tyrus/spi/ClientContainer.html
new file mode 100644
index 00000000..ab8caa5b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/ClientContainer.html
@@ -0,0 +1,366 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Interface ClientContainer" class="title">Interface ClientContainer</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../container/grizzly/client/GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientContainer</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ClientContainer</span></pre>
+<div class="block">Entry point for client implementation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#INCOMING_BUFFER_SIZE">INCOMING_BUFFER_SIZE</a></span></code></th>
+<td class="colLast">
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <code>org.glassfish.tyrus.client.ClientProperties#INCOMING_BUFFER_SIZE</code>.</div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WLS_INCOMING_BUFFER_SIZE">WLS_INCOMING_BUFFER_SIZE</a></span></code></th>
+<td class="colLast">
+<div class="block">WLS version of <a href="#INCOMING_BUFFER_SIZE"><code>INCOMING_BUFFER_SIZE</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">openClientSocket</a></span>&#8203;(<a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+                <a href="ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a>&nbsp;clientEngine)</code></th>
+<td class="colLast">
+<div class="block">Open client socket - connect to endpoint specified with <code>url</code> parameter.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="INCOMING_BUFFER_SIZE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INCOMING_BUFFER_SIZE</h4>
+<pre>static final&nbsp;java.lang.String INCOMING_BUFFER_SIZE</pre>
+<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
+<div class="deprecationComment">please use <code>org.glassfish.tyrus.client.ClientProperties#INCOMING_BUFFER_SIZE</code>.</div>
+</div>
+<div class="block">Property name for maximal incoming buffer size.
+ <p>
+ Can be set in properties map (see <a href="#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)"><code>openClientSocket(javax.websocket.ClientEndpointConfig, java.util.Map,
+ ClientEngine)</code></a>).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.ClientContainer.INCOMING_BUFFER_SIZE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WLS_INCOMING_BUFFER_SIZE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>WLS_INCOMING_BUFFER_SIZE</h4>
+<pre>static final&nbsp;java.lang.String WLS_INCOMING_BUFFER_SIZE</pre>
+<div class="block">WLS version of <a href="#INCOMING_BUFFER_SIZE"><code>INCOMING_BUFFER_SIZE</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.ClientContainer.WLS_INCOMING_BUFFER_SIZE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>openClientSocket</h4>
+<pre class="methodSignature">void&nbsp;openClientSocket&#8203;(<a href="../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                      java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+                      <a href="ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a>&nbsp;clientEngine)
+               throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a>,
+                      java.io.IOException</pre>
+<div class="block">Open client socket - connect to endpoint specified with <code>url</code> parameter.
+ <p>
+ Called from ClientManager when <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)"><code>WebSocketContainer.connectToServer(Class,
+ javax.websocket.ClientEndpointConfig, java.net.URI)</code></a> is invoked.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cec</code> - endpoint configuration. SPI consumer can access user properties, <a href="../../../../javax/websocket/ClientEndpointConfig.Configurator.html" title="class in javax.websocket"><code>ClientEndpointConfig.Configurator</code></a>, extensions and subprotocol
+                     configuration,
+                     etc..</dd>
+<dd><code>properties</code> - properties passed from client container. Don't mix up this with <a href="../../../../javax/websocket/EndpointConfig.html#getUserProperties()"><code>EndpointConfig.getUserProperties()</code></a>, these are Tyrus proprietary.</dd>
+<dd><code>clientEngine</code> - one instance equals to one connection, cannot be reused. Implementation is expected to call
+                     <a href="ClientEngine.html#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)"><code>ClientEngine.createUpgradeRequest(ClientEngine.TimeoutHandler)</code></a> and <a href="ClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>ClientEngine.processResponse(UpgradeResponse, Writer,
+                     org.glassfish.tyrus.spi.Connection.CloseListener)</code></a> (in that order).</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - when the client endpoint is invalid or when there is any other (not
+                                             specified) connection problem.</dd>
+<dd><code>java.io.IOException</code> - when there is any I/O issue related to opening client socket or
+                                             connecting to remote endpoint.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html b/apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html
new file mode 100644
index 00000000..4c1b0245
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEngine.ClientUpgradeInfo (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientEngine.ClientUpgradeInfo (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEngine.ClientUpgradeInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Interface ClientEngine.ClientUpgradeInfo" class="title">Interface ClientEngine.ClientUpgradeInfo</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">ClientEngine.ClientUpgradeInfo</span></pre>
+<div class="block">Upgrade process result.
+ <p>
+ Provides information about upgrade process. There are three possible states which can be reported:
+ <ul>
+ <li><a href="ClientEngine.ClientUpgradeStatus.html#ANOTHER_UPGRADE_REQUEST_REQUIRED"><code>ClientEngine.ClientUpgradeStatus.ANOTHER_UPGRADE_REQUEST_REQUIRED</code></a></li>
+ <li><a href="ClientEngine.ClientUpgradeStatus.html#UPGRADE_REQUEST_FAILED"><code>ClientEngine.ClientUpgradeStatus.UPGRADE_REQUEST_FAILED</code></a></li>
+ <li><a href="ClientEngine.ClientUpgradeStatus.html#SUCCESS"><code>ClientEngine.ClientUpgradeStatus.SUCCESS</code></a></li>
+ </ul>
+ <p>
+ When <a href="#getUpgradeStatus()"><code>getUpgradeStatus()</code></a> returns <a href="ClientEngine.ClientUpgradeStatus.html#SUCCESS"><code>ClientEngine.ClientUpgradeStatus.SUCCESS</code></a>, client container can create
+ <a href="Connection.html" title="interface in org.glassfish.tyrus.spi"><code>Connection</code></a> and start processing read events from the underlying connection and report them to Tyrus
+ runtime.
+ <p>
+ When <a href="#getUpgradeStatus()"><code>getUpgradeStatus()</code></a> returns <a href="ClientEngine.ClientUpgradeStatus.html#UPGRADE_REQUEST_FAILED"><code>ClientEngine.ClientUpgradeStatus.UPGRADE_REQUEST_FAILED</code></a>, client container
+ HAS TO close all resources related to currently processed <a href="UpgradeResponse.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeResponse</code></a>.
+ <p>
+ When <a href="#getUpgradeStatus()"><code>getUpgradeStatus()</code></a> returns <a href="ClientEngine.ClientUpgradeStatus.html#ANOTHER_UPGRADE_REQUEST_REQUIRED"><code>ClientEngine.ClientUpgradeStatus.ANOTHER_UPGRADE_REQUEST_REQUIRED</code></a>, client
+ container HAS TO close all resources related to currently processed <a href="UpgradeResponse.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeResponse</code></a>, open new TCP
+ connection and send <a href="UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeRequest</code></a> obtained from method <a href="ClientEngine.html#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)"><code>ClientEngine.createUpgradeRequest(TimeoutHandler)</code></a>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createConnection()">createConnection</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="Connection.html" title="interface in org.glassfish.tyrus.spi"><code>Connection</code></a> when <a href="#getUpgradeStatus()"><code>getUpgradeStatus()</code></a> returns <a href="ClientEngine.ClientUpgradeStatus.html#SUCCESS"><code>ClientEngine.ClientUpgradeStatus.SUCCESS</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUpgradeStatus()">getUpgradeStatus</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get <a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getUpgradeStatus()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUpgradeStatus</h4>
+<pre class="methodSignature"><a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a>&nbsp;getUpgradeStatus()</pre>
+<div class="block">Get <a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="createConnection()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createConnection</h4>
+<pre class="methodSignature"><a href="Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a>&nbsp;createConnection()</pre>
+<div class="block">Create new <a href="Connection.html" title="interface in org.glassfish.tyrus.spi"><code>Connection</code></a> when <a href="#getUpgradeStatus()"><code>getUpgradeStatus()</code></a> returns <a href="ClientEngine.ClientUpgradeStatus.html#SUCCESS"><code>ClientEngine.ClientUpgradeStatus.SUCCESS</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <a href="Connection.html" title="interface in org.glassfish.tyrus.spi"><code>Connection</code></a> instance or <code>null</code>, when <a href="#getUpgradeStatus()"><code>getUpgradeStatus()</code></a> does not return
+ <a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEngine.ClientUpgradeInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html b/apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html
new file mode 100644
index 00000000..f909bb34
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html
@@ -0,0 +1,417 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEngine.ClientUpgradeStatus (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientEngine.ClientUpgradeStatus (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEngine.ClientUpgradeStatus.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Enum ClientEngine.ClientUpgradeStatus" class="title">Enum ClientEngine.ClientUpgradeStatus</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeStatus</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">ClientEngine.ClientUpgradeStatus</span>
+extends java.lang.Enum&lt;<a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a>&gt;</pre>
+<div class="block">Status of upgrade process.
+ <p>
+ Returned by <a href="ClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>ClientEngine.processResponse(UpgradeResponse, Writer, Connection.CloseListener)</code></a>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#ANOTHER_UPGRADE_REQUEST_REQUIRED">ANOTHER_UPGRADE_REQUEST_REQUIRED</a></span></code></th>
+<td class="colLast">
+<div class="block">Client engine needs to send another request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SUCCESS">SUCCESS</a></span></code></th>
+<td class="colLast">
+<div class="block">Upgrade process was successful.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#UPGRADE_REQUEST_FAILED">UPGRADE_REQUEST_FAILED</a></span></code></th>
+<td class="colLast">
+<div class="block">Upgrade process failed.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="ANOTHER_UPGRADE_REQUEST_REQUIRED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ANOTHER_UPGRADE_REQUEST_REQUIRED</h4>
+<pre>public static final&nbsp;<a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a> ANOTHER_UPGRADE_REQUEST_REQUIRED</pre>
+<div class="block">Client engine needs to send another request.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ClientEngine.html#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)"><code>ClientEngine.createUpgradeRequest(TimeoutHandler)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="UPGRADE_REQUEST_FAILED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPGRADE_REQUEST_FAILED</h4>
+<pre>public static final&nbsp;<a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a> UPGRADE_REQUEST_FAILED</pre>
+<div class="block">Upgrade process failed.</div>
+</li>
+</ul>
+<a id="SUCCESS">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SUCCESS</h4>
+<pre>public static final&nbsp;<a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a> SUCCESS</pre>
+<div class="block">Upgrade process was successful.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ClientEngine.ClientUpgradeInfo.html#createConnection()"><code>ClientEngine.ClientUpgradeInfo.createConnection()</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (ClientEngine.ClientUpgradeStatus c : ClientEngine.ClientUpgradeStatus.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEngine.ClientUpgradeStatus.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html b/apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html
new file mode 100644
index 00000000..2d70f745
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html
@@ -0,0 +1,261 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEngine.TimeoutHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientEngine.TimeoutHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEngine.TimeoutHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Interface ClientEngine.TimeoutHandler" class="title">Interface ClientEngine.TimeoutHandler</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">ClientEngine.TimeoutHandler</span></pre>
+<div class="block">Indicates to container that handshake timeout was reached.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleTimeout()">handleTimeout</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoked when timeout is reached.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="handleTimeout()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>handleTimeout</h4>
+<pre class="methodSignature">void&nbsp;handleTimeout()</pre>
+<div class="block">Invoked when timeout is reached. Container is supposed to clean all resources related to <a href="ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine</code></a>
+ instance.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEngine.TimeoutHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.html b/apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.html
new file mode 100644
index 00000000..ae62b674
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.html
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEngine (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientEngine (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEngine.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Interface ClientEngine" class="title">Interface ClientEngine</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../client/TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">TyrusClientEngine</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ClientEngine</span></pre>
+<div class="block">Facade for handling client operations from containers.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com), Ondrej Kosatka (ondrej.kosatka at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></span></code></th>
+<td class="colLast">
+<div class="block">Upgrade process result.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></span></code></th>
+<td class="colLast">
+<div class="block">Status of upgrade process.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates to container that handshake timeout was reached.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)">createUpgradeRequest</a></span>&#8203;(<a href="ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a>&nbsp;timeoutHandler)</code></th>
+<td class="colLast">
+<div class="block">Create upgrade request and register <a href="ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.TimeoutHandler</code></a>.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#processError(java.lang.Throwable)">processError</a></span>&#8203;(java.lang.Throwable&nbsp;t)</code></th>
+<td class="colLast">
+<div class="block">Process error.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">processResponse</a></span>&#8203;(<a href="UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse,
+               <a href="Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+               <a href="Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">
+<div class="block">Process handshake and return <a href="ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeInfo</code></a> with handshake status (<a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>).</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createUpgradeRequest</h4>
+<pre class="methodSignature"><a href="UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;createUpgradeRequest&#8203;(<a href="ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a>&nbsp;timeoutHandler)</pre>
+<div class="block">Create upgrade request and register <a href="ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.TimeoutHandler</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeoutHandler</code> - handshake timeout handler. <a href="ClientEngine.TimeoutHandler.html#handleTimeout()"><code>ClientEngine.TimeoutHandler.handleTimeout()</code></a> is invoked if <a href="#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>processResponse(UpgradeResponse, Writer, Connection.CloseListener)</code></a> is not called within
+                       handshake timeout.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>request to be send on the wire or <code>null</code>, when the request cannot be created. When <code>null</code> is
+ returned, client should free all resources tied to current connection.</dd>
+</dl>
+</li>
+</ul>
+<a id="processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>processResponse</h4>
+<pre class="methodSignature"><a href="ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a>&nbsp;processResponse&#8203;(<a href="UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse,
+                                               <a href="Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+                                               <a href="Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</pre>
+<div class="block">Process handshake and return <a href="ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeInfo</code></a> with handshake status (<a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>upgradeResponse</code> - response to be processed.</dd>
+<dd><code>writer</code> - used for sending dataframes from client endpoint.</dd>
+<dd><code>closeListener</code> - will be called when connection is closed, will be set as listener of returned <a href="Connection.html" title="interface in org.glassfish.tyrus.spi"><code>Connection</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>info with upgrade status.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#processError(java.lang.Throwable)"><code>processError(Throwable)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="processError(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>processError</h4>
+<pre class="methodSignature">void&nbsp;processError&#8203;(java.lang.Throwable&nbsp;t)</pre>
+<div class="block">Process error.
+ <p>
+ This method can be called any time when client encounters an error which cannot be handled in the container
+ before <a href="ClientEngine.ClientUpgradeStatus.html#SUCCESS"><code>ClientEngine.ClientUpgradeStatus.SUCCESS</code></a> is returned from <a href="#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>processResponse(UpgradeResponse, Writer,
+ Connection.CloseListener)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>t</code> - encountered error.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>processResponse(UpgradeResponse, Writer, Connection.CloseListener)</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientEngine.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/CompletionHandler.html b/apidocs/1.20/org/glassfish/tyrus/spi/CompletionHandler.html
new file mode 100644
index 00000000..eefd41f9
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/CompletionHandler.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CompletionHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CompletionHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompletionHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Class CompletionHandler" class="title">Class CompletionHandler&lt;E&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.spi.CompletionHandler&lt;E&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>E</code> - result type.</dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">CompletionHandler&lt;E&gt;</span>
+extends java.lang.Object</pre>
+<div class="block">A callback to notify about asynchronous I/O operations status updates.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Alexey Stashok</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">CompletionHandler</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cancelled()">cancelled</a></span>()</code></th>
+<td class="colLast">
+<div class="block">The operation was cancelled.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#completed(E)">completed</a></span>&#8203;(<a href="CompletionHandler.html" title="type parameter in CompletionHandler">E</a>&nbsp;result)</code></th>
+<td class="colLast">
+<div class="block">The operation was completed.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#failed(java.lang.Throwable)">failed</a></span>&#8203;(java.lang.Throwable&nbsp;throwable)</code></th>
+<td class="colLast">
+<div class="block">The operation was failed.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#updated(E)">updated</a></span>&#8203;(<a href="CompletionHandler.html" title="type parameter in CompletionHandler">E</a>&nbsp;result)</code></th>
+<td class="colLast">
+<div class="block">The callback method may be called, when there is some progress in
+ operation execution, but it is still not completed.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CompletionHandler</h4>
+<pre>public&nbsp;CompletionHandler()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="cancelled()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cancelled</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;cancelled()</pre>
+<div class="block">The operation was cancelled.</div>
+</li>
+</ul>
+<a id="failed(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>failed</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;failed&#8203;(java.lang.Throwable&nbsp;throwable)</pre>
+<div class="block">The operation was failed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>throwable</code> - error, which occurred during operation execution.</dd>
+</dl>
+</li>
+</ul>
+<a id="completed(java.lang.Object)">
+<!--   -->
+</a><a id="completed(E)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>completed</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;completed&#8203;(<a href="CompletionHandler.html" title="type parameter in CompletionHandler">E</a>&nbsp;result)</pre>
+<div class="block">The operation was completed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>result</code> - the operation result.</dd>
+</dl>
+</li>
+</ul>
+<a id="updated(java.lang.Object)">
+<!--   -->
+</a><a id="updated(E)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>updated</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;updated&#8203;(<a href="CompletionHandler.html" title="type parameter in CompletionHandler">E</a>&nbsp;result)</pre>
+<div class="block">The callback method may be called, when there is some progress in
+ operation execution, but it is still not completed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>result</code> - the current result.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompletionHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/Connection.CloseListener.html b/apidocs/1.20/org/glassfish/tyrus/spi/Connection.CloseListener.html
new file mode 100644
index 00000000..a40ac034
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/Connection.CloseListener.html
@@ -0,0 +1,265 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Connection.CloseListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Connection.CloseListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connection.CloseListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Interface Connection.CloseListener" class="title">Interface Connection.CloseListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Connection.CloseListener</span></pre>
+<div class="block">Transport close listener that receives connection close
+ notifications from Tyrus.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;reason)</code></th>
+<td class="colLast">
+<div class="block">Tyrus notifies that logical connection is closed.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="close(javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">void&nbsp;close&#8203;(<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;reason)</pre>
+<div class="block">Tyrus notifies that logical connection is closed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>reason</code> - for closing the connection.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connection.CloseListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/Connection.html b/apidocs/1.20/org/glassfish/tyrus/spi/Connection.html
new file mode 100644
index 00000000..a4723c8b
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/Connection.html
@@ -0,0 +1,364 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Connection (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Connection (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Interface Connection" class="title">Interface Connection</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">Connection</span></pre>
+<div class="block">A logical websocket connection. Tyrus creates this connection after
+ successful upgrade and gets data from <a href="ReadHandler.html" title="interface in org.glassfish.tyrus.spi"><code>ReadHandler</code></a> and writes data
+ to <a href="Writer.html" title="class in org.glassfish.tyrus.spi"><code>Writer</code></a>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a></span></code></th>
+<td class="colLast">
+<div class="block">Transport close listener that receives connection close
+ notifications from Tyrus.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(javax.websocket.CloseReason)">close</a></span>&#8203;(<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;reason)</code></th>
+<td class="colLast">
+<div class="block">Notifies tyrus that underlying transport is closing the connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCloseListener()">getCloseListener</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the same close listener that is passed for creating connection in
+ <a href="WebSocketEngine.UpgradeInfo.html#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>WebSocketEngine.UpgradeInfo.createConnection(Writer, CloseListener)</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="ReadHandler.html" title="interface in org.glassfish.tyrus.spi">ReadHandler</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReadHandler()">getReadHandler</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a read handler.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getWriter()">getWriter</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the same writer that is passed for creating connection in
+ <a href="WebSocketEngine.UpgradeInfo.html#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>WebSocketEngine.UpgradeInfo.createConnection(Writer, CloseListener)</code></a>
+ The transport writer that actually writes websocket data
+ to underlying connection.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getReadHandler()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReadHandler</h4>
+<pre class="methodSignature"><a href="ReadHandler.html" title="interface in org.glassfish.tyrus.spi">ReadHandler</a>&nbsp;getReadHandler()</pre>
+<div class="block">Returns a read handler. A transport can pass websocket data to
+ tyrus using the handler.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>tryus read handler that handles websocket data.</dd>
+</dl>
+</li>
+</ul>
+<a id="getWriter()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre class="methodSignature"><a href="Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;getWriter()</pre>
+<div class="block">Returns the same writer that is passed for creating connection in
+ <a href="WebSocketEngine.UpgradeInfo.html#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>WebSocketEngine.UpgradeInfo.createConnection(Writer, CloseListener)</code></a>
+ The transport writer that actually writes websocket data
+ to underlying connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>transport writer that actually writes websocket data
+ to underlying connection.</dd>
+</dl>
+</li>
+</ul>
+<a id="getCloseListener()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCloseListener</h4>
+<pre class="methodSignature"><a href="Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;getCloseListener()</pre>
+<div class="block">Returns the same close listener that is passed for creating connection in
+ <a href="WebSocketEngine.UpgradeInfo.html#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>WebSocketEngine.UpgradeInfo.createConnection(Writer, CloseListener)</code></a>.
+ <p>
+ This transport close listener receives connection close notifications
+ from Tyrus.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>close listener provided when the connection is created.</dd>
+</dl>
+</li>
+</ul>
+<a id="close(javax.websocket.CloseReason)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">void&nbsp;close&#8203;(<a href="../../../../javax/websocket/CloseReason.html" title="class in javax.websocket">CloseReason</a>&nbsp;reason)</pre>
+<div class="block">Notifies tyrus that underlying transport is closing the connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>reason</code> - for closing the actual connection.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/ReadHandler.html b/apidocs/1.20/org/glassfish/tyrus/spi/ReadHandler.html
new file mode 100644
index 00000000..78cbb45d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/ReadHandler.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ReadHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReadHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReadHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Interface ReadHandler" class="title">Interface ReadHandler</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ReadHandler</span></pre>
+<div class="block">Read handler provides a way for a transport to pass websocket
+ connection data to tyrus runtime. A transport reads websocket data for an
+ connection and passes the data to tyrus runtime for invoking endpoint.
+ <p>
+ An implementation of this interface is created by tyrus runtime. Once a
+ transport completes a successful upgrade for a connection, the transport
+ can get hold of the handler using <a href="Connection.html#getReadHandler()"><code>Connection.getReadHandler()</code></a>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handle(java.nio.ByteBuffer)">handle</a></span>&#8203;(java.nio.ByteBuffer&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">A transport reads websocket data and invokes this method to handover
+ websocket data for a connection to tyrus runtime.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="handle(java.nio.ByteBuffer)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>handle</h4>
+<pre class="methodSignature">void&nbsp;handle&#8203;(java.nio.ByteBuffer&nbsp;data)</pre>
+<div class="block">A transport reads websocket data and invokes this method to handover
+ websocket data for a connection to tyrus runtime. The runtime consumes
+ as much data as possible from the byte buffer. If there is some
+ remaining data in the buffer, transport needs pass those bytes in
+ more call (along with more data) in the same byte buffer or in a newer
+ byte buffer.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - websocket data of a connection.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReadHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/ServerContainer.html b/apidocs/1.20/org/glassfish/tyrus/spi/ServerContainer.html
new file mode 100644
index 00000000..02e7daf1
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/ServerContainer.html
@@ -0,0 +1,339 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServerContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Interface ServerContainer" class="title">Interface ServerContainer</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="../../../../javax/websocket/server/ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></code>, <code><a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ServerContainer</span>
+extends <a href="../../../../javax/websocket/server/ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></pre>
+<div class="block">HTTP server abstraction.
+ <p>
+ TODO rename the class to avoid findbugs</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Martin Matula (martin.matula at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getWebSocketEngine()">getWebSocketEngine</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return WebSocketEngine to upgrade requests and setting up the connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#start(java.lang.String,int)">start</a></span>&#8203;(java.lang.String&nbsp;rootPath,
+     int&nbsp;port)</code></th>
+<td class="colLast">
+<div class="block">Start the server.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop()">stop</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Stop the server.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.server.ServerContainer">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.server.<a href="../../../../javax/websocket/server/ServerContainer.html" title="interface in javax.websocket.server">ServerContainer</a></h3>
+<code><a href="../../../../javax/websocket/server/ServerContainer.html#addEndpoint(java.lang.Class)">addEndpoint</a>, <a href="../../../../javax/websocket/server/ServerContainer.html#addEndpoint(javax.websocket.server.ServerEndpointConfig)">addEndpoint</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.WebSocketContainer">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a></h3>
+<code><a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,java.net.URI)">connectToServer</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Class,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(java.lang.Object,java.net.URI)">connectToServer</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#connectToServer(javax.websocket.Endpoint,javax.websocket.ClientEndpointConfig,java.net.URI)">connectToServer</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultAsyncSendTimeout()">getDefaultAsyncSendTimeout</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxBinaryMessageBufferSize()">getDefaultMaxBinaryMessageBufferSize</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxSessionIdleTimeout()">getDefaultMaxSessionIdleTimeout</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#getDefaultMaxTextMessageBufferSize()">getDefaultMaxTextMessageBufferSize</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#getInstalledExtensions()">getInstalledExtensions</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#setAsyncSendTimeout(long)">setAsyncSendTimeout</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxBinaryMessageBufferSize(int)">setDefaultMaxBinaryMessageBufferSize</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxSessionIdleTimeout(long)">setDefaultMaxSessionIdleTimeout</a>, <a href="../../../../javax/websocket/WebSocketContainer.html#setDefaultMaxTextMessageBufferSize(int)">setDefaultMaxTextMessageBufferSize</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="start(java.lang.String,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>start</h4>
+<pre class="methodSignature">void&nbsp;start&#8203;(java.lang.String&nbsp;rootPath,
+           int&nbsp;port)
+    throws java.io.IOException,
+           <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Start the server.
+ <p>
+ Creates a new embedded HTTP server (if supported) listening to incoming connections at a given root path
+ and port.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rootPath</code> - context root</dd>
+<dd><code>port</code> - TCP port</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.io.IOException</code> - if something goes wrong.</dd>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - when there is any issue with endpoints or other, non-specific
+                                             issues.</dd>
+</dl>
+</li>
+</ul>
+<a id="stop()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stop</h4>
+<pre class="methodSignature">void&nbsp;stop()</pre>
+<div class="block">Stop the server.</div>
+</li>
+</ul>
+<a id="getWebSocketEngine()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getWebSocketEngine</h4>
+<pre class="methodSignature"><a href="WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a>&nbsp;getWebSocketEngine()</pre>
+<div class="block">Return WebSocketEngine to upgrade requests and setting up the connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>websocket engine</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerContainer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/ServerContainerFactory.html b/apidocs/1.20/org/glassfish/tyrus/spi/ServerContainerFactory.html
new file mode 100644
index 00000000..9ee459c4
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/ServerContainerFactory.html
@@ -0,0 +1,368 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerContainerFactory (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServerContainerFactory (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":9,"i2":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerContainerFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Class ServerContainerFactory" class="title">Class ServerContainerFactory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.spi.ServerContainerFactory</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="../container/grizzly/server/GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server">GrizzlyServerContainer</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">ServerContainerFactory</span>
+extends java.lang.Object</pre>
+<div class="block">Factory used to get instances of <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ServerContainerFactory</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createContainer(java.util.Map)">createContainer</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties)</code></th>
+<td class="colLast">
+<div class="block">Create container delegate method.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createServerContainer()">createServerContainer</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a> with default configuration.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createServerContainer(java.util.Map)">createServerContainer</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a> with configuration.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ServerContainerFactory</h4>
+<pre>public&nbsp;ServerContainerFactory()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="createServerContainer()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createServerContainer</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a>&nbsp;createServerContainer()</pre>
+<div class="block">Create new <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a> with default configuration.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="createServerContainer(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createServerContainer</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a>&nbsp;createServerContainer&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties)</pre>
+<div class="block">Create new <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a> with configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>properties</code> - configuration passed to created server container.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="createContainer(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createContainer</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a>&nbsp;createContainer&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties)</pre>
+<div class="block">Create container delegate method.
+ <p>
+ Has to be implemented by <a href="ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi"><code>ServerContainerFactory</code></a> implementations.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>properties</code> - configuration passed to created server container.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerContainerFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/UpgradeRequest.html b/apidocs/1.20/org/glassfish/tyrus/spi/UpgradeRequest.html
new file mode 100644
index 00000000..a4fa3442
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/UpgradeRequest.html
@@ -0,0 +1,690 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>UpgradeRequest (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UpgradeRequest (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UpgradeRequest.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Class UpgradeRequest" class="title">Class UpgradeRequest</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.spi.UpgradeRequest</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="../core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">UpgradeRequest</span>
+extends java.lang.Object
+implements <a href="../../../../javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></pre>
+<div class="block">Abstraction for a HTTP upgrade request. A transport creates an implementation
+ for this and uses <a href="WebSocketEngine.html#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)"><code>WebSocketEngine.upgrade(org.glassfish.tyrus.spi.UpgradeRequest, org.glassfish.tyrus.spi.UpgradeResponse)</code></a> method to upgrade the
+ request.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Danny Coward (danny.coward at oracle.com), Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AUTHORIZATION">AUTHORIZATION</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP "Authorization" header name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CLUSTER_CONNECTION_ID_HEADER">CLUSTER_CONNECTION_ID_HEADER</a></span></code></th>
+<td class="colLast">
+<div class="block">Tyrus cluster connection ID header name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONNECTION">CONNECTION</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP "Connection" header name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ENABLE_TRACING_HEADER">ENABLE_TRACING_HEADER</a></span></code></th>
+<td class="colLast">
+<div class="block">If this header is present in the handshake request and the tracing type is configured to "ON_DEMAND", tracing
+ headers will be sent in the handshake response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HOST">HOST</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP "Host" header name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ORIGIN_HEADER">ORIGIN_HEADER</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP "Origin" header name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#RESPONSE_CODE_MESSAGE">RESPONSE_CODE_MESSAGE</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP reason phrase for successful handshake response.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SEC_WS_ORIGIN_HEADER">SEC_WS_ORIGIN_HEADER</a></span></code></th>
+<td class="colLast">
+<div class="block">WebSocket origin header name from previous versions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SERVER_KEY_HASH">SERVER_KEY_HASH</a></span></code></th>
+<td class="colLast">
+<div class="block">Server key hash used to compute "Sec-WebSocket-Accept" header value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TRACING_THRESHOLD">TRACING_THRESHOLD</a></span></code></th>
+<td class="colLast">
+<div class="block">This header allows temporarily changing tracing threshold.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#UPGRADE">UPGRADE</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP "Upgrade" header name and "Connection" header expected value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WEBSOCKET">WEBSOCKET</a></span></code></th>
+<td class="colLast">
+<div class="block">Expected value in HTTP handshake "Upgrade" header.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.javax.websocket.server.HandshakeRequest">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;javax.websocket.server.<a href="../../../../javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></h3>
+<code><a href="../../../../javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_EXTENSIONS">SEC_WEBSOCKET_EXTENSIONS</a>, <a href="../../../../javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_KEY">SEC_WEBSOCKET_KEY</a>, <a href="../../../../javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_PROTOCOL">SEC_WEBSOCKET_PROTOCOL</a>, <a href="../../../../javax/websocket/server/HandshakeRequest.html#SEC_WEBSOCKET_VERSION">SEC_WEBSOCKET_VERSION</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">UpgradeRequest</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeader(java.lang.String)">getHeader</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the value of the specified request header name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestUri()">getRequestUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the undecoded request uri (up to the query string) of underlying
+ HTTP handshake request.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>abstract boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSecure()">isSecure</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Indicates whether this request was made using a secure channel
+ (such as HTTPS).</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.server.HandshakeRequest">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.server.<a href="../../../../javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a></h3>
+<code><a href="../../../../javax/websocket/server/HandshakeRequest.html#getHeaders()">getHeaders</a>, <a href="../../../../javax/websocket/server/HandshakeRequest.html#getHttpSession()">getHttpSession</a>, <a href="../../../../javax/websocket/server/HandshakeRequest.html#getParameterMap()">getParameterMap</a>, <a href="../../../../javax/websocket/server/HandshakeRequest.html#getQueryString()">getQueryString</a>, <a href="../../../../javax/websocket/server/HandshakeRequest.html#getRequestURI()">getRequestURI</a>, <a href="../../../../javax/websocket/server/HandshakeRequest.html#getUserPrincipal()">getUserPrincipal</a>, <a href="../../../../javax/websocket/server/HandshakeRequest.html#isUserInRole(java.lang.String)">isUserInRole</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="WEBSOCKET">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WEBSOCKET</h4>
+<pre>public static final&nbsp;java.lang.String WEBSOCKET</pre>
+<div class="block">Expected value in HTTP handshake "Upgrade" header.
+ <p>
+ (Registered in RFC 6455).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeRequest.WEBSOCKET">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="RESPONSE_CODE_MESSAGE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESPONSE_CODE_MESSAGE</h4>
+<pre>public static final&nbsp;java.lang.String RESPONSE_CODE_MESSAGE</pre>
+<div class="block">HTTP reason phrase for successful handshake response.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeRequest.RESPONSE_CODE_MESSAGE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="UPGRADE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPGRADE</h4>
+<pre>public static final&nbsp;java.lang.String UPGRADE</pre>
+<div class="block">HTTP "Upgrade" header name and "Connection" header expected value.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeRequest.UPGRADE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONNECTION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONNECTION</h4>
+<pre>public static final&nbsp;java.lang.String CONNECTION</pre>
+<div class="block">HTTP "Connection" header name.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeRequest.CONNECTION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="HOST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HOST</h4>
+<pre>public static final&nbsp;java.lang.String HOST</pre>
+<div class="block">HTTP "Host" header name.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeRequest.HOST">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SEC_WS_ORIGIN_HEADER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SEC_WS_ORIGIN_HEADER</h4>
+<pre>public static final&nbsp;java.lang.String SEC_WS_ORIGIN_HEADER</pre>
+<div class="block">WebSocket origin header name from previous versions.
+ <p>
+ Keeping here only for backwards compatibility, not used anymore.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeRequest.SEC_WS_ORIGIN_HEADER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ORIGIN_HEADER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ORIGIN_HEADER</h4>
+<pre>public static final&nbsp;java.lang.String ORIGIN_HEADER</pre>
+<div class="block">HTTP "Origin" header name.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeRequest.ORIGIN_HEADER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CLUSTER_CONNECTION_ID_HEADER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLUSTER_CONNECTION_ID_HEADER</h4>
+<pre>public static final&nbsp;java.lang.String CLUSTER_CONNECTION_ID_HEADER</pre>
+<div class="block">Tyrus cluster connection ID header name.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeRequest.CLUSTER_CONNECTION_ID_HEADER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SERVER_KEY_HASH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVER_KEY_HASH</h4>
+<pre>public static final&nbsp;java.lang.String SERVER_KEY_HASH</pre>
+<div class="block">Server key hash used to compute "Sec-WebSocket-Accept" header value.
+ <p>
+ Defined in RFC 6455.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeRequest.SERVER_KEY_HASH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="AUTHORIZATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTHORIZATION</h4>
+<pre>public static final&nbsp;java.lang.String AUTHORIZATION</pre>
+<div class="block">HTTP "Authorization" header name.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeRequest.AUTHORIZATION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ENABLE_TRACING_HEADER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENABLE_TRACING_HEADER</h4>
+<pre>public static final&nbsp;java.lang.String ENABLE_TRACING_HEADER</pre>
+<div class="block">If this header is present in the handshake request and the tracing type is configured to "ON_DEMAND", tracing
+ headers will be sent in the handshake response. The value of the header is no taken into account.
+ <p>
+ Setting this header does not have any effect if the tracing type is configured to "ALL" or "OFF".</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeRequest.ENABLE_TRACING_HEADER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TRACING_THRESHOLD">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TRACING_THRESHOLD</h4>
+<pre>public static final&nbsp;java.lang.String TRACING_THRESHOLD</pre>
+<div class="block">This header allows temporarily changing tracing threshold. If present in the handshake request, the tracing
+ threshold will be changed for the handshake the request is part of.
+ <p>
+ The expected values are "SUMMARY" or "TRACE", of which "TRACE" will provide more fine-grained information.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeRequest.TRACING_THRESHOLD">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UpgradeRequest</h4>
+<pre>public&nbsp;UpgradeRequest()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getHeader(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeader</h4>
+<pre class="methodSignature">public abstract&nbsp;java.lang.String&nbsp;getHeader&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the value of the specified request header name. If there are
+ multiple headers with the same name, this method returns the first
+ header in the request. The header name is case insensitive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a header name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value of the specified header name,
+ null if the request doesn't have a header of that name.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestUri</h4>
+<pre class="methodSignature">public abstract&nbsp;java.lang.String&nbsp;getRequestUri()</pre>
+<div class="block">Get the undecoded request uri (up to the query string) of underlying
+ HTTP handshake request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>request uri.</dd>
+</dl>
+</li>
+</ul>
+<a id="isSecure()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isSecure</h4>
+<pre class="methodSignature">public abstract&nbsp;boolean&nbsp;isSecure()</pre>
+<div class="block">Indicates whether this request was made using a secure channel
+ (such as HTTPS).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the request was made using secure channel,
+ false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UpgradeRequest.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/UpgradeResponse.html b/apidocs/1.20/org/glassfish/tyrus/spi/UpgradeResponse.html
new file mode 100644
index 00000000..4edd845d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/UpgradeResponse.html
@@ -0,0 +1,532 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>UpgradeResponse (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UpgradeResponse (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UpgradeResponse.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Class UpgradeResponse" class="title">Class UpgradeResponse</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.spi.UpgradeResponse</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../../../../javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="../core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">TyrusUpgradeResponse</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">UpgradeResponse</span>
+extends java.lang.Object
+implements <a href="../../../../javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></pre>
+<div class="block">Abstraction for a HTTP upgrade response. A transport creates an
+ implementation for this and uses <a href="WebSocketEngine.html#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)"><code>WebSocketEngine.upgrade(org.glassfish.tyrus.spi.UpgradeRequest, org.glassfish.tyrus.spi.UpgradeResponse)</code></a> method
+ to upgrade the request.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LOCATION">LOCATION</a></span></code></th>
+<td class="colLast">
+<div class="block">Header containing a new URI when <a href="#getStatus()"><code>getStatus()</code></a> .</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#RETRY_AFTER">RETRY_AFTER</a></span></code></th>
+<td class="colLast">
+<div class="block">Header containing delay or date in which client can try to reconnect to the server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TRACING_HEADER_PREFIX">TRACING_HEADER_PREFIX</a></span></code></th>
+<td class="colLast">
+<div class="block">Prefix of headers used for including tracing information into handshake response.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WWW_AUTHENTICATE">WWW_AUTHENTICATE</a></span></code></th>
+<td class="colLast">
+<div class="block">Header containing challenge with authentication scheme and parameters.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.javax.websocket.HandshakeResponse">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;javax.websocket.<a href="../../../../javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></h3>
+<code><a href="../../../../javax/websocket/HandshakeResponse.html#SEC_WEBSOCKET_ACCEPT">SEC_WEBSOCKET_ACCEPT</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">UpgradeResponse</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>java.lang.String</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFirstHeaderValue(java.lang.String)">getFirstHeaderValue</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Gets the value of the response header with the given name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatus()">getStatus</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the current HTTP status code of this response.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setReasonPhrase(java.lang.String)">setReasonPhrase</a></span>&#8203;(java.lang.String&nbsp;reason)</code></th>
+<td class="colLast">
+<div class="block">Get HTTP reason phrase.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStatus(int)">setStatus</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set HTTP status code for this response.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.websocket.HandshakeResponse">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.websocket.<a href="../../../../javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a></h3>
+<code><a href="../../../../javax/websocket/HandshakeResponse.html#getHeaders()">getHeaders</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="WWW_AUTHENTICATE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WWW_AUTHENTICATE</h4>
+<pre>public static final&nbsp;java.lang.String WWW_AUTHENTICATE</pre>
+<div class="block">Header containing challenge with authentication scheme and parameters.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeResponse.WWW_AUTHENTICATE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="LOCATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LOCATION</h4>
+<pre>public static final&nbsp;java.lang.String LOCATION</pre>
+<div class="block">Header containing a new URI when <a href="#getStatus()"><code>getStatus()</code></a> .</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeResponse.LOCATION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="RETRY_AFTER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RETRY_AFTER</h4>
+<pre>public static final&nbsp;java.lang.String RETRY_AFTER</pre>
+<div class="block">Header containing delay or date in which client can try to reconnect to the server.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeResponse.RETRY_AFTER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TRACING_HEADER_PREFIX">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TRACING_HEADER_PREFIX</h4>
+<pre>public static final&nbsp;java.lang.String TRACING_HEADER_PREFIX</pre>
+<div class="block">Prefix of headers used for including tracing information into handshake response.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.glassfish.tyrus.spi.UpgradeResponse.TRACING_HEADER_PREFIX">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UpgradeResponse</h4>
+<pre>public&nbsp;UpgradeResponse()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getStatus()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre class="methodSignature">public abstract&nbsp;int&nbsp;getStatus()</pre>
+<div class="block">Get the current HTTP status code of this response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the current HTTP status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="setStatus(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStatus</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;setStatus&#8203;(int&nbsp;status)</pre>
+<div class="block">Set HTTP status code for this response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - HTTP status code for this response.</dd>
+</dl>
+</li>
+</ul>
+<a id="setReasonPhrase(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setReasonPhrase</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;setReasonPhrase&#8203;(java.lang.String&nbsp;reason)</pre>
+<div class="block">Get HTTP reason phrase.
+ <p>
+ TODO remove ?? we are using only for "Switching Protocols" and that is
+ TODO standard status code 101</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>reason</code> - reason phrase to be set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getFirstHeaderValue(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getFirstHeaderValue</h4>
+<pre class="methodSignature">public final&nbsp;java.lang.String&nbsp;getFirstHeaderValue&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Gets the value of the response header with the given name.
+ <p>
+ If a response header with the given name exists and contains
+ multiple values, the value that was added first will be returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - header name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value of the response header with the given name,
+ null if no header with the given name has been set
+ on this response.
+ TODO rename to getHeader(String name) ?? similar to
+ TODO HttpServletResponse#getHeader(String)</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UpgradeResponse.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html b/apidocs/1.20/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html
new file mode 100644
index 00000000..72791ca3
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WebSocketEngine.UpgradeInfo (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WebSocketEngine.UpgradeInfo (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebSocketEngine.UpgradeInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Interface WebSocketEngine.UpgradeInfo" class="title">Interface WebSocketEngine.UpgradeInfo</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">WebSocketEngine.UpgradeInfo</span></pre>
+<div class="block">Upgrade info that includes status for HTTP request upgrading and connection creation details.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">createConnection</a></span>&#8203;(<a href="Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+                <a href="Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">
+<div class="block">Creates a connection if the upgrade is successful.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatus()">getStatus</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the status of HTTP request upgrade.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getStatus()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre class="methodSignature"><a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a>&nbsp;getStatus()</pre>
+<div class="block">Returns the status of HTTP request upgrade.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>status of the upgrade.</dd>
+</dl>
+</li>
+</ul>
+<a id="createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createConnection</h4>
+<pre class="methodSignature"><a href="Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a>&nbsp;createConnection&#8203;(<a href="Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+                            <a href="Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</pre>
+<div class="block">Creates a connection if the upgrade is successful. Tyrus would call onConnect lifecycle method on the
+ endpoint during the invocation of this method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>writer</code> - transport writer that actually writes tyrus websocket data to underlying connection.</dd>
+<dd><code>closeListener</code> - transport listener for receiving tyrus close notifications.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>upgraded connection if the upgrade is successful otherwise null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebSocketEngine.UpgradeInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html b/apidocs/1.20/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html
new file mode 100644
index 00000000..a576ae57
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html
@@ -0,0 +1,409 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WebSocketEngine.UpgradeStatus (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WebSocketEngine.UpgradeStatus (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebSocketEngine.UpgradeStatus.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Enum WebSocketEngine.UpgradeStatus" class="title">Enum WebSocketEngine.UpgradeStatus</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.spi.WebSocketEngine.UpgradeStatus</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">WebSocketEngine.UpgradeStatus</span>
+extends java.lang.Enum&lt;<a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a>&gt;</pre>
+<div class="block">Upgrade Status for HTTP request upgrading.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#HANDSHAKE_FAILED">HANDSHAKE_FAILED</a></span></code></th>
+<td class="colLast">
+<div class="block">Upgrade failed due to version, extensions, origin check etc.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NOT_APPLICABLE">NOT_APPLICABLE</a></span></code></th>
+<td class="colLast">
+<div class="block">Not a WebSocketRequest or no mapping in the application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SUCCESS">SUCCESS</a></span></code></th>
+<td class="colLast">
+<div class="block">Upgrade is successful.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="NOT_APPLICABLE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NOT_APPLICABLE</h4>
+<pre>public static final&nbsp;<a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a> NOT_APPLICABLE</pre>
+<div class="block">Not a WebSocketRequest or no mapping in the application. This may mean that HTTP request processing should
+ continue (in servlet container, the next filter may be called).</div>
+</li>
+</ul>
+<a id="HANDSHAKE_FAILED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HANDSHAKE_FAILED</h4>
+<pre>public static final&nbsp;<a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a> HANDSHAKE_FAILED</pre>
+<div class="block">Upgrade failed due to version, extensions, origin check etc. Tyrus would set an appropriate HTTP error status
+ code in <a href="UpgradeResponse.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeResponse</code></a>.</div>
+</li>
+</ul>
+<a id="SUCCESS">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SUCCESS</h4>
+<pre>public static final&nbsp;<a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a> SUCCESS</pre>
+<div class="block">Upgrade is successful.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (WebSocketEngine.UpgradeStatus c : WebSocketEngine.UpgradeStatus.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebSocketEngine.UpgradeStatus.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/WebSocketEngine.html b/apidocs/1.20/org/glassfish/tyrus/spi/WebSocketEngine.html
new file mode 100644
index 00000000..8db5f1b3
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/WebSocketEngine.html
@@ -0,0 +1,360 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WebSocketEngine (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WebSocketEngine (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebSocketEngine.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Interface WebSocketEngine" class="title">Interface WebSocketEngine</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">WebSocketEngine</span></pre>
+<div class="block">WebSocket engine is used for upgrading HTTP requests into websocket connections. A transport gets hold of the engine
+ from the <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a> and upgrades HTTP handshake requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></span></code></th>
+<td class="colLast">
+<div class="block">Upgrade info that includes status for HTTP request upgrading and connection creation details.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></span></code></th>
+<td class="colLast">
+<div class="block">Upgrade Status for HTTP request upgrading.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,java.lang.String)">register</a></span>&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass,
+        java.lang.String&nbsp;contextPath)</code></th>
+<td class="colLast">
+<div class="block">Register endpoint class.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(javax.websocket.server.ServerEndpointConfig,java.lang.String)">register</a></span>&#8203;(<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverConfig,
+        java.lang.String&nbsp;contextPath)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a>.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">upgrade</a></span>&#8203;(<a href="UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+       <a href="UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">A transport calls this method to upgrade a HTTP request.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>upgrade</h4>
+<pre class="methodSignature"><a href="WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a>&nbsp;upgrade&#8203;(<a href="UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+                                    <a href="UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)</pre>
+<div class="block">A transport calls this method to upgrade a HTTP request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - request to be upgraded.</dd>
+<dd><code>response</code> - response to the upgrade request.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>info about upgrade status and connection details.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">void&nbsp;register&#8203;(java.lang.Class&lt;?&gt;&nbsp;endpointClass,
+              java.lang.String&nbsp;contextPath)
+       throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Register endpoint class.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpointClass</code> - endpoint class to be registered.</dd>
+<dd><code>contextPath</code> - context path of the registered endpoint.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - when the endpoint is invalid.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(javax.websocket.server.ServerEndpointConfig,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">void&nbsp;register&#8203;(<a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server">ServerEndpointConfig</a>&nbsp;serverConfig,
+              java.lang.String&nbsp;contextPath)
+       throws <a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></pre>
+<div class="block">Register <a href="../../../../javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><code>ServerEndpointConfig</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serverConfig</code> - server endpoint to be registered.</dd>
+<dd><code>contextPath</code> - context path of the registered endpoint.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../javax/websocket/DeploymentException.html" title="class in javax.websocket">DeploymentException</a></code> - when the endpoint is invalid.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebSocketEngine.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/Writer.html b/apidocs/1.20/org/glassfish/tyrus/spi/Writer.html
new file mode 100644
index 00000000..19a2994d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/Writer.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Writer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Writer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Writer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Class Writer" class="title">Class Writer</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.spi.Writer</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Closeable</code>, <code>java.lang.AutoCloseable</code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="../container/grizzly/client/GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyWriter</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">Writer</span>
+extends java.lang.Object
+implements java.io.Closeable</pre>
+<div class="block">Writer class that is used by tyrus runtime to pass outbound websocket data
+ for a connection to a transport. Then, the transport actually writes the
+ data eventually.
+ <p>
+ A transport creates implementation of this class and registers the writer
+ object using <a href="WebSocketEngine.UpgradeInfo.html#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>WebSocketEngine.UpgradeInfo.createConnection(org.glassfish.tyrus.spi.Writer, org.glassfish.tyrus.spi.Connection.CloseListener)</code></a> after
+ a successful upgrade.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Writer</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler)">write</a></span>&#8203;(java.nio.ByteBuffer&nbsp;buffer,
+     <a href="CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a>&lt;java.nio.ByteBuffer&gt;&nbsp;completionHandler)</code></th>
+<td class="colLast">
+<div class="block">
+ A backward compatible method called from <a href="#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler,org.glassfish.tyrus.spi.WriterInfo)"><code>write(ByteBuffer, CompletionHandler, WriterInfo)</code></a>
+ to handover the data for a connection
+ to the transport.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler,org.glassfish.tyrus.spi.WriterInfo)">write</a></span>&#8203;(java.nio.ByteBuffer&nbsp;buffer,
+     <a href="CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a>&lt;java.nio.ByteBuffer&gt;&nbsp;completionHandler,
+     <a href="WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Tyrus runtime calls this method to handover the data for a connection
+ to the transport.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.io.Closeable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.io.Closeable</h3>
+<code>close</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Writer</h4>
+<pre>public&nbsp;Writer()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;write&#8203;(java.nio.ByteBuffer&nbsp;buffer,
+                           <a href="CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a>&lt;java.nio.ByteBuffer&gt;&nbsp;completionHandler)</pre>
+<div class="block"><p>
+ A backward compatible method called from <a href="#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler,org.glassfish.tyrus.spi.WriterInfo)"><code>write(ByteBuffer, CompletionHandler, WriterInfo)</code></a>
+ to handover the data for a connection
+ to the transport. The transport writes bytes to underlying connection.
+ Tyrus runtime must not use the buffer until the write is completed.
+ </p>
+ <p>
+ The method will be removed in the next major version.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>buffer</code> - bytes to write.</dd>
+<dd><code>completionHandler</code> - completion handler to know the write status.</dd>
+</dl>
+</li>
+</ul>
+<a id="write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler,org.glassfish.tyrus.spi.WriterInfo)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>write</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;write&#8203;(java.nio.ByteBuffer&nbsp;buffer,
+                  <a href="CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a>&lt;java.nio.ByteBuffer&gt;&nbsp;completionHandler,
+                  <a href="WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</pre>
+<div class="block">Tyrus runtime calls this method to handover the data for a connection
+ to the transport. The transport writes bytes to underlying connection.
+ Tyrus runtime must not use the buffer until the write is completed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>buffer</code> - bytes to write.</dd>
+<dd><code>completionHandler</code> - completion handler to know the write status.</dd>
+<dd><code>writerInfo</code> - additional information about the data to be written.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.17</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Writer.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/WriterInfo.MessageType.html b/apidocs/1.20/org/glassfish/tyrus/spi/WriterInfo.MessageType.html
new file mode 100644
index 00000000..c54f4901
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/WriterInfo.MessageType.html
@@ -0,0 +1,487 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WriterInfo.MessageType (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WriterInfo.MessageType (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInfo.MessageType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Enum WriterInfo.MessageType" class="title">Enum WriterInfo.MessageType</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.spi.WriterInfo.MessageType</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">WriterInfo.MessageType</span>
+extends java.lang.Enum&lt;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a>&gt;</pre>
+<div class="block">Possible WebSocket Message Types.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#BINARY">BINARY</a></span></code></th>
+<td class="colLast">
+<div class="block">Binary type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#BINARY_CONTINUATION">BINARY_CONTINUATION</a></span></code></th>
+<td class="colLast">
+<div class="block">Continuation binary type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CLOSE">CLOSE</a></span></code></th>
+<td class="colLast">
+<div class="block">Close type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#OBJECT">OBJECT</a></span></code></th>
+<td class="colLast">
+<div class="block">Object type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PING">PING</a></span></code></th>
+<td class="colLast">
+<div class="block">Ping type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PONG">PONG</a></span></code></th>
+<td class="colLast">
+<div class="block">Pong type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TEXT">TEXT</a></span></code></th>
+<td class="colLast">
+<div class="block">Text type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TEXT_CONTINUATION">TEXT_CONTINUATION</a></span></code></th>
+<td class="colLast">
+<div class="block">Continuation text type.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="TEXT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT</h4>
+<pre>public static final&nbsp;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a> TEXT</pre>
+<div class="block">Text type.</div>
+</li>
+</ul>
+<a id="TEXT_CONTINUATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_CONTINUATION</h4>
+<pre>public static final&nbsp;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a> TEXT_CONTINUATION</pre>
+<div class="block">Continuation text type.</div>
+</li>
+</ul>
+<a id="BINARY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BINARY</h4>
+<pre>public static final&nbsp;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a> BINARY</pre>
+<div class="block">Binary type.</div>
+</li>
+</ul>
+<a id="BINARY_CONTINUATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BINARY_CONTINUATION</h4>
+<pre>public static final&nbsp;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a> BINARY_CONTINUATION</pre>
+<div class="block">Continuation binary type.</div>
+</li>
+</ul>
+<a id="OBJECT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>OBJECT</h4>
+<pre>public static final&nbsp;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a> OBJECT</pre>
+<div class="block">Object type.</div>
+</li>
+</ul>
+<a id="PING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PING</h4>
+<pre>public static final&nbsp;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a> PING</pre>
+<div class="block">Ping type.</div>
+</li>
+</ul>
+<a id="PONG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PONG</h4>
+<pre>public static final&nbsp;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a> PONG</pre>
+<div class="block">Pong type.</div>
+</li>
+</ul>
+<a id="CLOSE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLOSE</h4>
+<pre>public static final&nbsp;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a> CLOSE</pre>
+<div class="block">Close type.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (WriterInfo.MessageType c : WriterInfo.MessageType.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInfo.MessageType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html b/apidocs/1.20/org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html
new file mode 100644
index 00000000..731f54f1
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html
@@ -0,0 +1,422 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WriterInfo.RemoteEndpointType (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WriterInfo.RemoteEndpointType (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInfo.RemoteEndpointType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Enum WriterInfo.RemoteEndpointType" class="title">Enum WriterInfo.RemoteEndpointType</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>java.lang.Enum&lt;<a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code>java.io.Serializable</code>, <code>java.lang.Comparable&lt;<a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a>&gt;</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">WriterInfo.RemoteEndpointType</span>
+extends java.lang.Enum&lt;<a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a>&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#ASYNC">ASYNC</a></span></code></th>
+<td class="colLast">
+<div class="block">RemoteEndpoint.Async</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#BASIC">BASIC</a></span></code></th>
+<td class="colLast">
+<div class="block">RemoteEndpoint.Basic</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#BROADCAST">BROADCAST</a></span></code></th>
+<td class="colLast">
+<div class="block">Broadcast</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SUPER">SUPER</a></span></code></th>
+<td class="colLast">
+<div class="block">RemoteEndpoint</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Enum</h3>
+<code>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>getClass, notify, notifyAll, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="ASYNC">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ASYNC</h4>
+<pre>public static final&nbsp;<a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a> ASYNC</pre>
+<div class="block">RemoteEndpoint.Async</div>
+</li>
+</ul>
+<a id="BASIC">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BASIC</h4>
+<pre>public static final&nbsp;<a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a> BASIC</pre>
+<div class="block">RemoteEndpoint.Basic</div>
+</li>
+</ul>
+<a id="BROADCAST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BROADCAST</h4>
+<pre>public static final&nbsp;<a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a> BROADCAST</pre>
+<div class="block">Broadcast</div>
+</li>
+</ul>
+<a id="SUPER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SUPER</h4>
+<pre>public static final&nbsp;<a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a> SUPER</pre>
+<div class="block">RemoteEndpoint</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared. This method may be used to iterate
+over the constants as follows:
+<pre>
+for (WriterInfo.RemoteEndpointType c : WriterInfo.RemoteEndpointType.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a>&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>java.lang.IllegalArgumentException</code> - if this enum type has no constant with the specified name</dd>
+<dd><code>java.lang.NullPointerException</code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInfo.RemoteEndpointType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/WriterInfo.html b/apidocs/1.20/org/glassfish/tyrus/spi/WriterInfo.html
new file mode 100644
index 00000000..5cfc9577
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/WriterInfo.html
@@ -0,0 +1,367 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WriterInfo (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WriterInfo (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.glassfish.tyrus.spi</a></div>
+<h2 title="Class WriterInfo" class="title">Class WriterInfo</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>org.glassfish.tyrus.spi.WriterInfo</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">WriterInfo</span>
+extends java.lang.Object</pre>
+<div class="block">Additional data for the transport.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.17</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></span></code></th>
+<td class="colLast">
+<div class="block">Possible WebSocket Message Types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.glassfish.tyrus.spi.WriterInfo.MessageType,org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType)">WriterInfo</a></span>&#8203;(<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a>&nbsp;messageType,
+          <a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a>&nbsp;remoteEndpointType)</code></th>
+<td class="colLast">
+<div class="block">Create new <code>WriterData</code> instance</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMessageType()">getMessageType</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteEndpointType()">getRemoteEndpointType</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(org.glassfish.tyrus.spi.WriterInfo.MessageType,org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>WriterInfo</h4>
+<pre>public&nbsp;WriterInfo&#8203;(<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a>&nbsp;messageType,
+                  <a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a>&nbsp;remoteEndpointType)</pre>
+<div class="block">Create new <code>WriterData</code> instance</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>messageType</code> - The outbound message type</dd>
+<dd><code>remoteEndpointType</code> - The outbound message remote endpoint</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getMessageType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMessageType</h4>
+<pre class="methodSignature">public&nbsp;<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a>&nbsp;getMessageType()</pre>
+</li>
+</ul>
+<a id="getRemoteEndpointType()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getRemoteEndpointType</h4>
+<pre class="methodSignature">public&nbsp;<a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a>&nbsp;getRemoteEndpointType()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientContainer.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientContainer.html
new file mode 100644
index 00000000..8650b1e9
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientContainer.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.ClientContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ClientContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientContainer.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.spi.ClientContainer" class="title">Uses of Interface<br>org.glassfish.tyrus.spi.ClientContainer</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.client">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.container.grizzly.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a> in <a href="../../container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a> that implement <a href="../ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../container/grizzly/client/GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyClientContainer</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientContainer.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeInfo.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeInfo.html
new file mode 100644
index 00000000..064c325d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeInfo.html
@@ -0,0 +1,230 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeInfo (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeInfo (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeInfo" class="title">Uses of Interface<br>org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeInfo</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a> in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a> that return <a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusClientEngine.</span><code><span class="memberNameLink"><a href="../../client/TyrusClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">processResponse</a></span>&#8203;(<a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse,
+               <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+               <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> that return <a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEngine.</span><code><span class="memberNameLink"><a href="../ClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">processResponse</a></span>&#8203;(<a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse,
+               <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+               <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">
+<div class="block">Process handshake and return <a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeInfo</code></a> with handshake status (<a href="../ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeStatus.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeStatus.html
new file mode 100644
index 00000000..6ad11871
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeStatus.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeStatus (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeStatus (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeStatus" class="title">Uses of Class<br>org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeStatus</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> that return <a href="../ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEngine.ClientUpgradeInfo.</span><code><span class="memberNameLink"><a href="../ClientEngine.ClientUpgradeInfo.html#getUpgradeStatus()">getUpgradeStatus</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get <a href="../ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEngine.ClientUpgradeStatus.</span><code><span class="memberNameLink"><a href="../ClientEngine.ClientUpgradeStatus.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEngine.ClientUpgradeStatus.</span><code><span class="memberNameLink"><a href="../ClientEngine.ClientUpgradeStatus.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.TimeoutHandler.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.TimeoutHandler.html
new file mode 100644
index 00000000..7cfce80e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.TimeoutHandler.html
@@ -0,0 +1,243 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler" class="title">Uses of Interface<br>org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a> in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a> that return <a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusClientEngine.</span><code><span class="memberNameLink"><a href="../../client/TyrusClientEngine.html#getTimeoutHandler()">getTimeoutHandler</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get <a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.TimeoutHandler</code></a> associated with current <a href="../ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a> with parameters of type <a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusClientEngine.</span><code><span class="memberNameLink"><a href="../../client/TyrusClientEngine.html#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)">createUpgradeRequest</a></span>&#8203;(<a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a>&nbsp;timeoutHandler)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> with parameters of type <a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEngine.</span><code><span class="memberNameLink"><a href="../ClientEngine.html#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)">createUpgradeRequest</a></span>&#8203;(<a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a>&nbsp;timeoutHandler)</code></th>
+<td class="colLast">
+<div class="block">Create upgrade request and register <a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.TimeoutHandler</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.html
new file mode 100644
index 00000000..a2e47270
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.html
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.ClientEngine (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ClientEngine (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEngine.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.spi.ClientEngine" class="title">Uses of Interface<br>org.glassfish.tyrus.spi.ClientEngine</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.client">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a> in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a> that implement <a href="../ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/TyrusClientEngine.html" title="class in org.glassfish.tyrus.client">TyrusClientEngine</a></span></code></th>
+<td class="colLast">
+<div class="block">Tyrus <a href="../ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine</code></a> implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.container.grizzly.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a> in <a href="../../container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a> with parameters of type <a href="../ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">GrizzlyClientContainer.</span><code><span class="memberNameLink"><a href="../../container/grizzly/client/GrizzlyClientContainer.html#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">openClientSocket</a></span>&#8203;(<a href="../../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+                <a href="../ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a>&nbsp;clientEngine)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> with parameters of type <a href="../ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientContainer.</span><code><span class="memberNameLink"><a href="../ClientContainer.html#openClientSocket(javax.websocket.ClientEndpointConfig,java.util.Map,org.glassfish.tyrus.spi.ClientEngine)">openClientSocket</a></span>&#8203;(<a href="../../../../../javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket">ClientEndpointConfig</a>&nbsp;cec,
+                java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties,
+                <a href="../ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a>&nbsp;clientEngine)</code></th>
+<td class="colLast">
+<div class="block">Open client socket - connect to endpoint specified with <code>url</code> parameter.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientEngine.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/CompletionHandler.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/CompletionHandler.html
new file mode 100644
index 00000000..9a588edb
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/CompletionHandler.html
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.CompletionHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.CompletionHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CompletionHandler.html" title="class in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.spi.CompletionHandler" class="title">Uses of Class<br>org.glassfish.tyrus.spi.CompletionHandler</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.client">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.container.grizzly.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a> in <a href="../../container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a> with parameters of type <a href="../CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">GrizzlyWriter.</span><code><span class="memberNameLink"><a href="../../container/grizzly/client/GrizzlyWriter.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler)">write</a></span>&#8203;(java.nio.ByteBuffer&nbsp;buffer,
+     <a href="../CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a>&lt;java.nio.ByteBuffer&gt;&nbsp;completionHandler)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> with parameters of type <a href="../CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Writer.</span><code><span class="memberNameLink"><a href="../Writer.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler)">write</a></span>&#8203;(java.nio.ByteBuffer&nbsp;buffer,
+     <a href="../CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a>&lt;java.nio.ByteBuffer&gt;&nbsp;completionHandler)</code></th>
+<td class="colLast">
+<div class="block">
+ A backward compatible method called from <a href="../Writer.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler,org.glassfish.tyrus.spi.WriterInfo)"><code>Writer.write(ByteBuffer, CompletionHandler, WriterInfo)</code></a>
+ to handover the data for a connection
+ to the transport.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Writer.</span><code><span class="memberNameLink"><a href="../Writer.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler,org.glassfish.tyrus.spi.WriterInfo)">write</a></span>&#8203;(java.nio.ByteBuffer&nbsp;buffer,
+     <a href="../CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a>&lt;java.nio.ByteBuffer&gt;&nbsp;completionHandler,
+     <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Tyrus runtime calls this method to handover the data for a connection
+ to the transport.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CompletionHandler.html" title="class in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/Connection.CloseListener.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/Connection.CloseListener.html
new file mode 100644
index 00000000..55c886b6
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/Connection.CloseListener.html
@@ -0,0 +1,256 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.Connection.CloseListener (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.Connection.CloseListener (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.spi.Connection.CloseListener" class="title">Uses of Interface<br>org.glassfish.tyrus.spi.Connection.CloseListener</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a> in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a> with parameters of type <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusClientEngine.</span><code><span class="memberNameLink"><a href="../../client/TyrusClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">processResponse</a></span>&#8203;(<a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse,
+               <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+               <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> that return <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../Connection.html#getCloseListener()">getCloseListener</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the same close listener that is passed for creating connection in
+ <a href="../WebSocketEngine.UpgradeInfo.html#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>WebSocketEngine.UpgradeInfo.createConnection(Writer, CloseListener)</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> with parameters of type <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketEngine.UpgradeInfo.</span><code><span class="memberNameLink"><a href="../WebSocketEngine.UpgradeInfo.html#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">createConnection</a></span>&#8203;(<a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+                <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">
+<div class="block">Creates a connection if the upgrade is successful.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEngine.</span><code><span class="memberNameLink"><a href="../ClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">processResponse</a></span>&#8203;(<a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse,
+               <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+               <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">
+<div class="block">Process handshake and return <a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeInfo</code></a> with handshake status (<a href="../ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/Connection.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/Connection.html
new file mode 100644
index 00000000..aa773966
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/Connection.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.Connection (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.Connection (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Connection.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.spi.Connection" class="title">Uses of Interface<br>org.glassfish.tyrus.spi.Connection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> that return <a href="../Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEngine.ClientUpgradeInfo.</span><code><span class="memberNameLink"><a href="../ClientEngine.ClientUpgradeInfo.html#createConnection()">createConnection</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../Connection.html" title="interface in org.glassfish.tyrus.spi"><code>Connection</code></a> when <a href="../ClientEngine.ClientUpgradeInfo.html#getUpgradeStatus()"><code>ClientEngine.ClientUpgradeInfo.getUpgradeStatus()</code></a> returns <a href="../ClientEngine.ClientUpgradeStatus.html#SUCCESS"><code>ClientEngine.ClientUpgradeStatus.SUCCESS</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketEngine.UpgradeInfo.</span><code><span class="memberNameLink"><a href="../WebSocketEngine.UpgradeInfo.html#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">createConnection</a></span>&#8203;(<a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+                <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">
+<div class="block">Creates a connection if the upgrade is successful.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Connection.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ReadHandler.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ReadHandler.html
new file mode 100644
index 00000000..375eb123
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ReadHandler.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.ReadHandler (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ReadHandler (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReadHandler.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.spi.ReadHandler" class="title">Uses of Interface<br>org.glassfish.tyrus.spi.ReadHandler</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ReadHandler.html" title="interface in org.glassfish.tyrus.spi">ReadHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ReadHandler.html" title="interface in org.glassfish.tyrus.spi">ReadHandler</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> that return <a href="../ReadHandler.html" title="interface in org.glassfish.tyrus.spi">ReadHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ReadHandler.html" title="interface in org.glassfish.tyrus.spi">ReadHandler</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../Connection.html#getReadHandler()">getReadHandler</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a read handler.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReadHandler.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ServerContainer.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ServerContainer.html
new file mode 100644
index 00000000..b9f783f5
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ServerContainer.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.ServerContainer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ServerContainer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.spi.ServerContainer" class="title">Uses of Interface<br>org.glassfish.tyrus.spi.ServerContainer</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.server">org.glassfish.tyrus.container.grizzly.server</a></th>
+<td class="colLast">
+<div class="block">Grizzly Server container.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.container.grizzly.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a> in <a href="../../container/grizzly/server/package-summary.html">org.glassfish.tyrus.container.grizzly.server</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../container/grizzly/server/package-summary.html">org.glassfish.tyrus.container.grizzly.server</a> that return <a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">GrizzlyServerContainer.</span><code><span class="memberNameLink"><a href="../../container/grizzly/server/GrizzlyServerContainer.html#createContainer(java.util.Map)">createContainer</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a> in <a href="../../server/package-summary.html">org.glassfish.tyrus.server</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../server/package-summary.html">org.glassfish.tyrus.server</a> that implement <a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server">TyrusServerContainer</a></span></code></th>
+<td class="colLast">
+<div class="block">Server Container Implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> that return <a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerContainerFactory.</span><code><span class="memberNameLink"><a href="../ServerContainerFactory.html#createContainer(java.util.Map)">createContainer</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties)</code></th>
+<td class="colLast">
+<div class="block">Create container delegate method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerContainerFactory.</span><code><span class="memberNameLink"><a href="../ServerContainerFactory.html#createServerContainer()">createServerContainer</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a> with default configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerContainerFactory.</span><code><span class="memberNameLink"><a href="../ServerContainerFactory.html#createServerContainer(java.util.Map)">createServerContainer</a></span>&#8203;(java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;properties)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a> with configuration.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ServerContainerFactory.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ServerContainerFactory.html
new file mode 100644
index 00000000..c6c2aef3
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/ServerContainerFactory.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.ServerContainerFactory (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.ServerContainerFactory (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.spi.ServerContainerFactory" class="title">Uses of Class<br>org.glassfish.tyrus.spi.ServerContainerFactory</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">ServerContainerFactory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.server">org.glassfish.tyrus.container.grizzly.server</a></th>
+<td class="colLast">
+<div class="block">Grizzly Server container.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.container.grizzly.server">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">ServerContainerFactory</a> in <a href="../../container/grizzly/server/package-summary.html">org.glassfish.tyrus.container.grizzly.server</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">ServerContainerFactory</a> in <a href="../../container/grizzly/server/package-summary.html">org.glassfish.tyrus.container.grizzly.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../container/grizzly/server/GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server">GrizzlyServerContainer</a></span></code></th>
+<td class="colLast">
+<div class="block">Grizzly implementation of <a href="../ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi"><code>ServerContainerFactory</code></a> and <a href="../ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/UpgradeRequest.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/UpgradeRequest.html
new file mode 100644
index 00000000..5628e459
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/UpgradeRequest.html
@@ -0,0 +1,348 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.UpgradeRequest (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.UpgradeRequest (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.spi.UpgradeRequest" class="title">Uses of Class<br>org.glassfish.tyrus.spi.UpgradeRequest</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a> in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a> that return <a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusClientEngine.</span><code><span class="memberNameLink"><a href="../../client/TyrusClientEngine.html#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)">createUpgradeRequest</a></span>&#8203;(<a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a>&nbsp;timeoutHandler)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a> in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a> in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/RequestContext.html" title="class in org.glassfish.tyrus.core">RequestContext</a></span></code></th>
+<td class="colLast">
+<div class="block">Implementation of all possible request interfaces.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Handshake.</span><code><span class="memberNameLink"><a href="../../core/Handshake.html#prepareRequest()">prepareRequest</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Client side only - compose the <a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><code>UpgradeRequest</code></a> and store it for further use.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../core/Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../core/ProtocolHandler.html#handshake(org.glassfish.tyrus.core.TyrusEndpointWrapper,org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">handshake</a></span>&#8203;(<a href="../../core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+         <a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+         <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response,
+         <a href="../../core/extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;extensionContext)</code></th>
+<td class="colLast">
+<div class="block">Server side handshake processing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../core/TyrusWebSocket.html#onConnect(org.glassfish.tyrus.spi.UpgradeRequest,java.lang.String,java.util.List,java.lang.String,org.glassfish.tyrus.core.DebugContext)">onConnect</a></span>&#8203;(<a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;upgradeRequest,
+         java.lang.String&nbsp;subProtocol,
+         java.util.List&lt;<a href="../../../../../javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>&gt;&nbsp;extensions,
+         java.lang.String&nbsp;connectionId,
+         <a href="../../core/DebugContext.html" title="class in org.glassfish.tyrus.core">DebugContext</a>&nbsp;debugContext)</code></th>
+<td class="colLast">
+<div class="block">This callback will be invoked when the opening handshake between both
+ endpoints has been completed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Utils.</span><code><span class="memberNameLink"><a href="../../core/Utils.html#stringifyUpgradeRequest(org.glassfish.tyrus.spi.UpgradeRequest)">stringifyUpgradeRequest</a></span>&#8203;(<a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;upgradeRequest)</code></th>
+<td class="colLast">
+<div class="block">Converts upgrade request to a HTTP-formatted string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Handshake.</span><code><span class="memberNameLink"><a href="../../core/Handshake.html#updateHostAndOrigin(org.glassfish.tyrus.spi.UpgradeRequest)">updateHostAndOrigin</a></span>&#8203;(<a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;upgradeRequest)</code></th>
+<td class="colLast">
+<div class="block">Client side only - Generate host and origin header and put them to the upgrade request headers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.</span><code><span class="memberNameLink"><a href="../../core/TyrusWebSocketEngine.html#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">upgrade</a></span>&#8203;(<a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+       <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Version.</span><code><span class="memberNameLink"><a href="../../core/Version.html#validate(org.glassfish.tyrus.spi.UpgradeRequest)">validate</a></span>&#8203;(<a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> that return <a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEngine.</span><code><span class="memberNameLink"><a href="../ClientEngine.html#createUpgradeRequest(org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler)">createUpgradeRequest</a></span>&#8203;(<a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a>&nbsp;timeoutHandler)</code></th>
+<td class="colLast">
+<div class="block">Create upgrade request and register <a href="../ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.TimeoutHandler</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> with parameters of type <a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketEngine.</span><code><span class="memberNameLink"><a href="../WebSocketEngine.html#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">upgrade</a></span>&#8203;(<a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+       <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">A transport calls this method to upgrade a HTTP request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/UpgradeResponse.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/UpgradeResponse.html
new file mode 100644
index 00000000..8e10c851
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/UpgradeResponse.html
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.UpgradeResponse (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.UpgradeResponse (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.spi.UpgradeResponse" class="title">Uses of Class<br>org.glassfish.tyrus.spi.UpgradeResponse</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a> in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a> with parameters of type <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusClientEngine.</span><code><span class="memberNameLink"><a href="../../client/TyrusClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">processResponse</a></span>&#8203;(<a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse,
+               <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+               <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a> in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a> in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core">TyrusUpgradeResponse</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP response representation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../core/Handshake.html" title="class in org.glassfish.tyrus.core">Handshake</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../core/ProtocolHandler.html#handshake(org.glassfish.tyrus.core.TyrusEndpointWrapper,org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext)">handshake</a></span>&#8203;(<a href="../../core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core">TyrusEndpointWrapper</a>&nbsp;endpointWrapper,
+         <a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+         <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response,
+         <a href="../../core/extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension">ExtendedExtension.ExtensionContext</a>&nbsp;extensionContext)</code></th>
+<td class="colLast">
+<div class="block">Server side handshake processing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static java.lang.String</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Utils.</span><code><span class="memberNameLink"><a href="../../core/Utils.html#stringifyUpgradeResponse(org.glassfish.tyrus.spi.UpgradeResponse)">stringifyUpgradeResponse</a></span>&#8203;(<a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse)</code></th>
+<td class="colLast">
+<div class="block">Converts upgrade response to a HTTP-formatted string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.</span><code><span class="memberNameLink"><a href="../../core/TyrusWebSocketEngine.html#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">upgrade</a></span>&#8203;(<a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+       <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Handshake.</span><code><span class="memberNameLink"><a href="../../core/Handshake.html#validateServerResponse(org.glassfish.tyrus.spi.UpgradeResponse)">validateServerResponse</a></span>&#8203;(<a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Client side only - validate server response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> with parameters of type <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEngine.</span><code><span class="memberNameLink"><a href="../ClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">processResponse</a></span>&#8203;(<a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse,
+               <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+               <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">
+<div class="block">Process handshake and return <a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeInfo</code></a> with handshake status (<a href="../ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketEngine.</span><code><span class="memberNameLink"><a href="../WebSocketEngine.html#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">upgrade</a></span>&#8203;(<a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+       <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">A transport calls this method to upgrade a HTTP request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeInfo.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeInfo.html
new file mode 100644
index 00000000..af312a53
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeInfo.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo" class="title">Uses of Interface<br>org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.servlet">org.glassfish.tyrus.servlet</a></th>
+<td class="colLast">
+<div class="block">Servlet 3.1 integration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a> in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a> that return <a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocketEngine.</span><code><span class="memberNameLink"><a href="../../core/TyrusWebSocketEngine.html#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">upgrade</a></span>&#8203;(<a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+       <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.servlet">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a> in <a href="../../servlet/package-summary.html">org.glassfish.tyrus.servlet</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../servlet/package-summary.html">org.glassfish.tyrus.servlet</a> with parameters of type <a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusHttpUpgradeHandler.</span><code><span class="memberNameLink"><a href="../../servlet/TyrusHttpUpgradeHandler.html#preInit(org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo,org.glassfish.tyrus.spi.Writer,boolean)">preInit</a></span>&#8203;(<a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a>&nbsp;upgradeInfo,
+       <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+       boolean&nbsp;authenticated)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> that return <a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketEngine.</span><code><span class="memberNameLink"><a href="../WebSocketEngine.html#upgrade(org.glassfish.tyrus.spi.UpgradeRequest,org.glassfish.tyrus.spi.UpgradeResponse)">upgrade</a></span>&#8203;(<a href="../UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a>&nbsp;request,
+       <a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">A transport calls this method to upgrade a HTTP request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeStatus.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeStatus.html
new file mode 100644
index 00000000..ad037da6
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeStatus.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.WebSocketEngine.UpgradeStatus (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.WebSocketEngine.UpgradeStatus (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.spi.WebSocketEngine.UpgradeStatus" class="title">Uses of Class<br>org.glassfish.tyrus.spi.WebSocketEngine.UpgradeStatus</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> that return <a href="../WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketEngine.UpgradeInfo.</span><code><span class="memberNameLink"><a href="../WebSocketEngine.UpgradeInfo.html#getStatus()">getStatus</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the status of HTTP request upgrade.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketEngine.UpgradeStatus.</span><code><span class="memberNameLink"><a href="../WebSocketEngine.UpgradeStatus.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketEngine.UpgradeStatus.</span><code><span class="memberNameLink"><a href="../WebSocketEngine.UpgradeStatus.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WebSocketEngine.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WebSocketEngine.html
new file mode 100644
index 00000000..c4caa9b2
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WebSocketEngine.html
@@ -0,0 +1,228 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine" class="title">Uses of Interface<br>org.glassfish.tyrus.spi.WebSocketEngine</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a> in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Classes in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a> that implement <a href="../WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core">TyrusWebSocketEngine</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="../WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi"><code>WebSocketEngine</code></a> implementation, which handles server-side handshake, validation and data processing.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> that return <a href="../WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ServerContainer.</span><code><span class="memberNameLink"><a href="../ServerContainer.html#getWebSocketEngine()">getWebSocketEngine</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Return WebSocketEngine to upgrade requests and setting up the connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/Writer.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/Writer.html
new file mode 100644
index 00000000..db2e0e35
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/Writer.html
@@ -0,0 +1,346 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.Writer (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.Writer (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.spi.Writer" class="title">Uses of Class<br>org.glassfish.tyrus.spi.Writer</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.client">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.servlet">org.glassfish.tyrus.servlet</a></th>
+<td class="colLast">
+<div class="block">Servlet 3.1 integration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a> in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../client/package-summary.html">org.glassfish.tyrus.client</a> with parameters of type <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusClientEngine.</span><code><span class="memberNameLink"><a href="../../client/TyrusClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">processResponse</a></span>&#8203;(<a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse,
+               <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+               <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.container.grizzly.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a> in <a href="../../container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></h3>
+<table class="useSummary">
+<caption><span>Subclasses of <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a> in <a href="../../container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../container/grizzly/client/GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client">GrizzlyWriter</a></span></code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a> in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../core/ProtocolHandler.html#setWriter(org.glassfish.tyrus.spi.Writer)">setWriter</a></span>&#8203;(<a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer)</code></th>
+<td class="colLast">
+<div class="block">Set <a href="../Writer.html" title="class in org.glassfish.tyrus.spi"><code>Writer</code></a> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.servlet">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a> in <a href="../../servlet/package-summary.html">org.glassfish.tyrus.servlet</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../servlet/package-summary.html">org.glassfish.tyrus.servlet</a> with parameters of type <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusHttpUpgradeHandler.</span><code><span class="memberNameLink"><a href="../../servlet/TyrusHttpUpgradeHandler.html#preInit(org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo,org.glassfish.tyrus.spi.Writer,boolean)">preInit</a></span>&#8203;(<a href="../WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a>&nbsp;upgradeInfo,
+       <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+       boolean&nbsp;authenticated)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> that return <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../Connection.html#getWriter()">getWriter</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the same writer that is passed for creating connection in
+ <a href="../WebSocketEngine.UpgradeInfo.html#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)"><code>WebSocketEngine.UpgradeInfo.createConnection(Writer, CloseListener)</code></a>
+ The transport writer that actually writes websocket data
+ to underlying connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> with parameters of type <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebSocketEngine.UpgradeInfo.</span><code><span class="memberNameLink"><a href="../WebSocketEngine.UpgradeInfo.html#createConnection(org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">createConnection</a></span>&#8203;(<a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+                <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">
+<div class="block">Creates a connection if the upgrade is successful.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientEngine.</span><code><span class="memberNameLink"><a href="../ClientEngine.html#processResponse(org.glassfish.tyrus.spi.UpgradeResponse,org.glassfish.tyrus.spi.Writer,org.glassfish.tyrus.spi.Connection.CloseListener)">processResponse</a></span>&#8203;(<a href="../UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a>&nbsp;upgradeResponse,
+               <a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a>&nbsp;writer,
+               <a href="../Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a>&nbsp;closeListener)</code></th>
+<td class="colLast">
+<div class="block">Process handshake and return <a href="../ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeInfo</code></a> with handshake status (<a href="../ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><code>ClientEngine.ClientUpgradeStatus</code></a>).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Writer.html" title="class in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WriterInfo.MessageType.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WriterInfo.MessageType.html
new file mode 100644
index 00000000..edd7976e
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WriterInfo.MessageType.html
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.WriterInfo.MessageType (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.WriterInfo.MessageType (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.spi.WriterInfo.MessageType" class="title">Uses of Class<br>org.glassfish.tyrus.spi.WriterInfo.MessageType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> that return <a href="../WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInfo.</span><code><span class="memberNameLink"><a href="../WriterInfo.html#getMessageType()">getMessageType</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInfo.MessageType.</span><code><span class="memberNameLink"><a href="../WriterInfo.MessageType.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInfo.MessageType.</span><code><span class="memberNameLink"><a href="../WriterInfo.MessageType.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> with parameters of type <a href="../WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../WriterInfo.html#%3Cinit%3E(org.glassfish.tyrus.spi.WriterInfo.MessageType,org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType)">WriterInfo</a></span>&#8203;(<a href="../WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a>&nbsp;messageType,
+          <a href="../WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a>&nbsp;remoteEndpointType)</code></th>
+<td class="colLast">
+<div class="block">Create new <code>WriterData</code> instance</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WriterInfo.RemoteEndpointType.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WriterInfo.RemoteEndpointType.html
new file mode 100644
index 00000000..a8b281bc
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WriterInfo.RemoteEndpointType.html
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType" class="title">Uses of Class<br>org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> that return <a href="../WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInfo.</span><code><span class="memberNameLink"><a href="../WriterInfo.html#getRemoteEndpointType()">getRemoteEndpointType</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInfo.RemoteEndpointType.</span><code><span class="memberNameLink"><a href="../WriterInfo.RemoteEndpointType.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInfo.RemoteEndpointType.</span><code><span class="memberNameLink"><a href="../WriterInfo.RemoteEndpointType.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary">
+<caption><span>Constructors in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> with parameters of type <a href="../WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../WriterInfo.html#%3Cinit%3E(org.glassfish.tyrus.spi.WriterInfo.MessageType,org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType)">WriterInfo</a></span>&#8203;(<a href="../WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a>&nbsp;messageType,
+          <a href="../WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a>&nbsp;remoteEndpointType)</code></th>
+<td class="colLast">
+<div class="block">Create new <code>WriterData</code> instance</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WriterInfo.html b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WriterInfo.html
new file mode 100644
index 00000000..540ad34d
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/class-use/WriterInfo.html
@@ -0,0 +1,329 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.WriterInfo (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.WriterInfo (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class org.glassfish.tyrus.spi.WriterInfo" class="title">Uses of Class<br>org.glassfish.tyrus.spi.WriterInfo</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a> in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../../core/package-summary.html">org.glassfish.tyrus.core</a> with parameters of type <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../core/ProtocolHandler.html#send(byte%5B%5D,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">send</a></span>&#8203;(byte[]&nbsp;data,
+    <a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+    <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../core/ProtocolHandler.html#send(byte%5B%5D,org.glassfish.tyrus.spi.WriterInfo)">send</a></span>&#8203;(byte[]&nbsp;data,
+    <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../core/ProtocolHandler.html#send(java.lang.String,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">send</a></span>&#8203;(java.lang.String&nbsp;data,
+    <a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+    <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../core/ProtocolHandler.html#send(java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">send</a></span>&#8203;(java.lang.String&nbsp;data,
+    <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../core/TyrusWebSocket.html#sendBinary(byte%5B%5D,boolean,org.glassfish.tyrus.spi.WriterInfo)">sendBinary</a></span>&#8203;(byte[]&nbsp;bytes,
+          boolean&nbsp;last,
+          <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Sends a fragment of a complete message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../core/TyrusWebSocket.html#sendBinary(byte%5B%5D,int,int,boolean,org.glassfish.tyrus.spi.WriterInfo)">sendBinary</a></span>&#8203;(byte[]&nbsp;bytes,
+          int&nbsp;off,
+          int&nbsp;len,
+          boolean&nbsp;last,
+          <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Sends a fragment of a complete message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../core/TyrusWebSocket.html#sendBinary(byte%5B%5D,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">sendBinary</a></span>&#8203;(byte[]&nbsp;data,
+          <a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+          <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Send a binary frame to the remote endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../core/TyrusWebSocket.html#sendBinary(byte%5B%5D,org.glassfish.tyrus.spi.WriterInfo)">sendBinary</a></span>&#8203;(byte[]&nbsp;data,
+          <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Send a binary frame to the remote endpoint.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../core/TyrusWebSocket.html#sendText(java.lang.String,boolean,org.glassfish.tyrus.spi.WriterInfo)">sendText</a></span>&#8203;(java.lang.String&nbsp;fragment,
+        boolean&nbsp;last,
+        <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Sends a fragment of a complete message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../core/TyrusWebSocket.html#sendText(java.lang.String,javax.websocket.SendHandler,org.glassfish.tyrus.spi.WriterInfo)">sendText</a></span>&#8203;(java.lang.String&nbsp;data,
+        <a href="../../../../../javax/websocket/SendHandler.html" title="interface in javax.websocket">SendHandler</a>&nbsp;handler,
+        <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Send a text frame to the remote endpoint.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TyrusWebSocket.</span><code><span class="memberNameLink"><a href="../../core/TyrusWebSocket.html#sendText(java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">sendText</a></span>&#8203;(java.lang.String&nbsp;data,
+        <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Send a text frame to the remote endpoint.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../core/ProtocolHandler.html#stream(boolean,byte%5B%5D,int,int,org.glassfish.tyrus.spi.WriterInfo)">stream</a></span>&#8203;(boolean&nbsp;last,
+      byte[]&nbsp;bytes,
+      int&nbsp;off,
+      int&nbsp;len,
+      <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.util.concurrent.Future&lt;<a href="../../core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame">Frame</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ProtocolHandler.</span><code><span class="memberNameLink"><a href="../../core/ProtocolHandler.html#stream(boolean,java.lang.String,org.glassfish.tyrus.spi.WriterInfo)">stream</a></span>&#8203;(boolean&nbsp;last,
+      java.lang.String&nbsp;fragment,
+      <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a> in <a href="../package-summary.html">org.glassfish.tyrus.spi</a></h3>
+<table class="useSummary">
+<caption><span>Methods in <a href="../package-summary.html">org.glassfish.tyrus.spi</a> with parameters of type <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Writer.</span><code><span class="memberNameLink"><a href="../Writer.html#write(java.nio.ByteBuffer,org.glassfish.tyrus.spi.CompletionHandler,org.glassfish.tyrus.spi.WriterInfo)">write</a></span>&#8203;(java.nio.ByteBuffer&nbsp;buffer,
+     <a href="../CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a>&lt;java.nio.ByteBuffer&gt;&nbsp;completionHandler,
+     <a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a>&nbsp;writerInfo)</code></th>
+<td class="colLast">
+<div class="block">Tyrus runtime calls this method to handover the data for a connection
+ to the transport.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInfo.html" title="class in org.glassfish.tyrus.spi">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/package-summary.html b/apidocs/1.20/org/glassfish/tyrus/spi/package-summary.html
new file mode 100644
index 00000000..90387669
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/package-summary.html
@@ -0,0 +1,312 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.spi (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.spi (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.glassfish.tyrus.spi</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Tyrus SPI.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a></th>
+<td class="colLast">
+<div class="block">Entry point for client implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a></th>
+<td class="colLast">
+<div class="block">Facade for handling client operations from containers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></th>
+<td class="colLast">
+<div class="block">Upgrade process result.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a></th>
+<td class="colLast">
+<div class="block">Indicates to container that handshake timeout was reached.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Connection.html" title="interface in org.glassfish.tyrus.spi">Connection</a></th>
+<td class="colLast">
+<div class="block">A logical websocket connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi">Connection.CloseListener</a></th>
+<td class="colLast">
+<div class="block">Transport close listener that receives connection close
+ notifications from Tyrus.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ReadHandler.html" title="interface in org.glassfish.tyrus.spi">ReadHandler</a></th>
+<td class="colLast">
+<div class="block">Read handler provides a way for a transport to pass websocket
+ connection data to tyrus runtime.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a></th>
+<td class="colLast">
+<div class="block">HTTP server abstraction.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a></th>
+<td class="colLast">
+<div class="block">WebSocket engine is used for upgrading HTTP requests into websocket connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></th>
+<td class="colLast">
+<div class="block">Upgrade info that includes status for HTTP request upgrading and connection creation details.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="CompletionHandler.html" title="class in org.glassfish.tyrus.spi">CompletionHandler</a>&lt;E&gt;</th>
+<td class="colLast">
+<div class="block">A callback to notify about asynchronous I/O operations status updates.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi">ServerContainerFactory</a></th>
+<td class="colLast">
+<div class="block">Factory used to get instances of <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="UpgradeRequest.html" title="class in org.glassfish.tyrus.spi">UpgradeRequest</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a HTTP upgrade request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="UpgradeResponse.html" title="class in org.glassfish.tyrus.spi">UpgradeResponse</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a HTTP upgrade response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Writer.html" title="class in org.glassfish.tyrus.spi">Writer</a></th>
+<td class="colLast">
+<div class="block">Writer class that is used by tyrus runtime to pass outbound websocket data
+ for a connection to a transport.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="WriterInfo.html" title="class in org.glassfish.tyrus.spi">WriterInfo</a></th>
+<td class="colLast">
+<div class="block">Additional data for the transport.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></th>
+<td class="colLast">
+<div class="block">Status of upgrade process.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></th>
+<td class="colLast">
+<div class="block">Upgrade Status for HTTP request upgrading.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.MessageType</a></th>
+<td class="colLast">
+<div class="block">Possible WebSocket Message Types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/package-tree.html b/apidocs/1.20/org/glassfish/tyrus/spi/package-tree.html
new file mode 100644
index 00000000..d921f283
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/package-tree.html
@@ -0,0 +1,210 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.spi Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.glassfish.tyrus.spi Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package org.glassfish.tyrus.spi</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.spi.<a href="CompletionHandler.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">CompletionHandler</span></a>&lt;E&gt;</li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">ServerContainerFactory</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">UpgradeRequest</span></a> (implements javax.websocket.server.<a href="../../../../javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a>)</li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="UpgradeResponse.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">UpgradeResponse</span></a> (implements javax.websocket.<a href="../../../../javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>)</li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="Writer.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">Writer</span></a> (implements java.io.Closeable)</li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="WriterInfo.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">WriterInfo</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">org.glassfish.tyrus.spi.<a href="ClientContainer.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientContainer</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientEngine</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientEngine.ClientUpgradeInfo</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientEngine.TimeoutHandler</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="Connection.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">Connection</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">Connection.CloseListener</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="ReadHandler.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ReadHandler</span></a></li>
+<li class="circle">javax.websocket.<a href="../../../../javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><span class="typeNameLink">WebSocketContainer</span></a>
+<ul>
+<li class="circle">javax.websocket.server.<a href="../../../../javax/websocket/server/ServerContainer.html" title="interface in javax.websocket.server"><span class="typeNameLink">ServerContainer</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.spi.<a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ServerContainer</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">WebSocketEngine</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">WebSocketEngine.UpgradeInfo</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
+<ul>
+<li class="circle">org.glassfish.tyrus.spi.<a href="ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientEngine.ClientUpgradeStatus</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><span class="typeNameLink">WebSocketEngine.UpgradeStatus</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi"><span class="typeNameLink">WriterInfo.MessageType</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi"><span class="typeNameLink">WriterInfo.RemoteEndpointType</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/org/glassfish/tyrus/spi/package-use.html b/apidocs/1.20/org/glassfish/tyrus/spi/package-use.html
new file mode 100644
index 00000000..d2fd00a1
--- /dev/null
+++ b/apidocs/1.20/org/glassfish/tyrus/spi/package-use.html
@@ -0,0 +1,543 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.spi (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.glassfish.tyrus.spi (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package org.glassfish.tyrus.spi" class="title">Uses of Package<br>org.glassfish.tyrus.spi</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary">
+<caption><span>Packages that use <a href="package-summary.html">org.glassfish.tyrus.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.client">org.glassfish.tyrus.client</a></th>
+<td class="colLast">
+<div class="block">Common Client.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.client">org.glassfish.tyrus.container.grizzly.client</a></th>
+<td class="colLast">
+<div class="block">Grizzly Client container.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.container.grizzly.server">org.glassfish.tyrus.container.grizzly.server</a></th>
+<td class="colLast">
+<div class="block">Grizzly Server container.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.core">org.glassfish.tyrus.core</a></th>
+<td class="colLast">
+<div class="block">Core classes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.server">org.glassfish.tyrus.server</a></th>
+<td class="colLast">
+<div class="block">Server implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.servlet">org.glassfish.tyrus.servlet</a></th>
+<td class="colLast">
+<div class="block">Servlet 3.1 integration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#org.glassfish.tyrus.spi">org.glassfish.tyrus.spi</a></th>
+<td class="colLast">
+<div class="block">Tyrus SPI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.client">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.spi</a> used by <a href="../client/package-summary.html">org.glassfish.tyrus.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEngine.html#org.glassfish.tyrus.client">ClientEngine</a></th>
+<td class="colLast">
+<div class="block">Facade for handling client operations from containers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEngine.ClientUpgradeInfo.html#org.glassfish.tyrus.client">ClientEngine.ClientUpgradeInfo</a></th>
+<td class="colLast">
+<div class="block">Upgrade process result.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEngine.TimeoutHandler.html#org.glassfish.tyrus.client">ClientEngine.TimeoutHandler</a></th>
+<td class="colLast">
+<div class="block">Indicates to container that handshake timeout was reached.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Connection.CloseListener.html#org.glassfish.tyrus.client">Connection.CloseListener</a></th>
+<td class="colLast">
+<div class="block">Transport close listener that receives connection close
+ notifications from Tyrus.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/UpgradeRequest.html#org.glassfish.tyrus.client">UpgradeRequest</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a HTTP upgrade request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/UpgradeResponse.html#org.glassfish.tyrus.client">UpgradeResponse</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a HTTP upgrade response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Writer.html#org.glassfish.tyrus.client">Writer</a></th>
+<td class="colLast">
+<div class="block">Writer class that is used by tyrus runtime to pass outbound websocket data
+ for a connection to a transport.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.container.grizzly.client">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.spi</a> used by <a href="../container/grizzly/client/package-summary.html">org.glassfish.tyrus.container.grizzly.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientContainer.html#org.glassfish.tyrus.container.grizzly.client">ClientContainer</a></th>
+<td class="colLast">
+<div class="block">Entry point for client implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEngine.html#org.glassfish.tyrus.container.grizzly.client">ClientEngine</a></th>
+<td class="colLast">
+<div class="block">Facade for handling client operations from containers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/CompletionHandler.html#org.glassfish.tyrus.container.grizzly.client">CompletionHandler</a></th>
+<td class="colLast">
+<div class="block">A callback to notify about asynchronous I/O operations status updates.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Writer.html#org.glassfish.tyrus.container.grizzly.client">Writer</a></th>
+<td class="colLast">
+<div class="block">Writer class that is used by tyrus runtime to pass outbound websocket data
+ for a connection to a transport.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.container.grizzly.server">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.spi</a> used by <a href="../container/grizzly/server/package-summary.html">org.glassfish.tyrus.container.grizzly.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerContainer.html#org.glassfish.tyrus.container.grizzly.server">ServerContainer</a></th>
+<td class="colLast">
+<div class="block">HTTP server abstraction.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerContainerFactory.html#org.glassfish.tyrus.container.grizzly.server">ServerContainerFactory</a></th>
+<td class="colLast">
+<div class="block">Factory used to get instances of <a href="ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><code>ServerContainer</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.spi</a> used by <a href="../core/package-summary.html">org.glassfish.tyrus.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/UpgradeRequest.html#org.glassfish.tyrus.core">UpgradeRequest</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a HTTP upgrade request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/UpgradeResponse.html#org.glassfish.tyrus.core">UpgradeResponse</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a HTTP upgrade response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketEngine.html#org.glassfish.tyrus.core">WebSocketEngine</a></th>
+<td class="colLast">
+<div class="block">WebSocket engine is used for upgrading HTTP requests into websocket connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketEngine.UpgradeInfo.html#org.glassfish.tyrus.core">WebSocketEngine.UpgradeInfo</a></th>
+<td class="colLast">
+<div class="block">Upgrade info that includes status for HTTP request upgrading and connection creation details.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Writer.html#org.glassfish.tyrus.core">Writer</a></th>
+<td class="colLast">
+<div class="block">Writer class that is used by tyrus runtime to pass outbound websocket data
+ for a connection to a transport.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WriterInfo.html#org.glassfish.tyrus.core">WriterInfo</a></th>
+<td class="colLast">
+<div class="block">Additional data for the transport.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.server">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.spi</a> used by <a href="../server/package-summary.html">org.glassfish.tyrus.server</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerContainer.html#org.glassfish.tyrus.server">ServerContainer</a></th>
+<td class="colLast">
+<div class="block">HTTP server abstraction.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.servlet">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.spi</a> used by <a href="../servlet/package-summary.html">org.glassfish.tyrus.servlet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketEngine.UpgradeInfo.html#org.glassfish.tyrus.servlet">WebSocketEngine.UpgradeInfo</a></th>
+<td class="colLast">
+<div class="block">Upgrade info that includes status for HTTP request upgrading and connection creation details.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Writer.html#org.glassfish.tyrus.servlet">Writer</a></th>
+<td class="colLast">
+<div class="block">Writer class that is used by tyrus runtime to pass outbound websocket data
+ for a connection to a transport.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.spi">
+<!--   -->
+</a>
+<table class="useSummary">
+<caption><span>Classes in <a href="package-summary.html">org.glassfish.tyrus.spi</a> used by <a href="package-summary.html">org.glassfish.tyrus.spi</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEngine.html#org.glassfish.tyrus.spi">ClientEngine</a></th>
+<td class="colLast">
+<div class="block">Facade for handling client operations from containers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEngine.ClientUpgradeInfo.html#org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeInfo</a></th>
+<td class="colLast">
+<div class="block">Upgrade process result.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEngine.ClientUpgradeStatus.html#org.glassfish.tyrus.spi">ClientEngine.ClientUpgradeStatus</a></th>
+<td class="colLast">
+<div class="block">Status of upgrade process.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientEngine.TimeoutHandler.html#org.glassfish.tyrus.spi">ClientEngine.TimeoutHandler</a></th>
+<td class="colLast">
+<div class="block">Indicates to container that handshake timeout was reached.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/CompletionHandler.html#org.glassfish.tyrus.spi">CompletionHandler</a></th>
+<td class="colLast">
+<div class="block">A callback to notify about asynchronous I/O operations status updates.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Connection.html#org.glassfish.tyrus.spi">Connection</a></th>
+<td class="colLast">
+<div class="block">A logical websocket connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Connection.CloseListener.html#org.glassfish.tyrus.spi">Connection.CloseListener</a></th>
+<td class="colLast">
+<div class="block">Transport close listener that receives connection close
+ notifications from Tyrus.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ReadHandler.html#org.glassfish.tyrus.spi">ReadHandler</a></th>
+<td class="colLast">
+<div class="block">Read handler provides a way for a transport to pass websocket
+ connection data to tyrus runtime.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerContainer.html#org.glassfish.tyrus.spi">ServerContainer</a></th>
+<td class="colLast">
+<div class="block">HTTP server abstraction.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/UpgradeRequest.html#org.glassfish.tyrus.spi">UpgradeRequest</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a HTTP upgrade request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/UpgradeResponse.html#org.glassfish.tyrus.spi">UpgradeResponse</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a HTTP upgrade response.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketEngine.html#org.glassfish.tyrus.spi">WebSocketEngine</a></th>
+<td class="colLast">
+<div class="block">WebSocket engine is used for upgrading HTTP requests into websocket connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketEngine.UpgradeInfo.html#org.glassfish.tyrus.spi">WebSocketEngine.UpgradeInfo</a></th>
+<td class="colLast">
+<div class="block">Upgrade info that includes status for HTTP request upgrading and connection creation details.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WebSocketEngine.UpgradeStatus.html#org.glassfish.tyrus.spi">WebSocketEngine.UpgradeStatus</a></th>
+<td class="colLast">
+<div class="block">Upgrade Status for HTTP request upgrading.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Writer.html#org.glassfish.tyrus.spi">Writer</a></th>
+<td class="colLast">
+<div class="block">Writer class that is used by tyrus runtime to pass outbound websocket data
+ for a connection to a transport.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WriterInfo.html#org.glassfish.tyrus.spi">WriterInfo</a></th>
+<td class="colLast">
+<div class="block">Additional data for the transport.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WriterInfo.MessageType.html#org.glassfish.tyrus.spi">WriterInfo.MessageType</a></th>
+<td class="colLast">
+<div class="block">Possible WebSocket Message Types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WriterInfo.RemoteEndpointType.html#org.glassfish.tyrus.spi">WriterInfo.RemoteEndpointType</a></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/overview-summary.html b/apidocs/1.20/overview-summary.html
new file mode 100644
index 00000000..dad8c55c
--- /dev/null
+++ b/apidocs/1.20/overview-summary.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Tyrus 1.20 API</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript">window.location.replace('index.html')</script>
+<noscript>
+<meta http-equiv="Refresh" content="0;index.html">
+</noscript>
+<link rel="canonical" href="index.html">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<main role="main">
+<noscript>
+<p>JavaScript is disabled on your browser.</p>
+</noscript>
+<p><a href="index.html">index.html</a></p>
+</main>
+</body>
+</html>
diff --git a/apidocs/1.20/overview-tree.html b/apidocs/1.20/overview-tree.html
new file mode 100644
index 00000000..f8aeb89e
--- /dev/null
+++ b/apidocs/1.20/overview-tree.html
@@ -0,0 +1,556 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Class Hierarchy (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Class Hierarchy (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="javax/websocket/package-tree.html">javax.websocket</a>, </li>
+<li><a href="javax/websocket/server/package-tree.html">javax.websocket.server</a>, </li>
+<li><a href="org/glassfish/tyrus/client/package-tree.html">org.glassfish.tyrus.client</a>, </li>
+<li><a href="org/glassfish/tyrus/client/auth/package-tree.html">org.glassfish.tyrus.client.auth</a>, </li>
+<li><a href="org/glassfish/tyrus/container/grizzly/client/package-tree.html">org.glassfish.tyrus.container.grizzly.client</a>, </li>
+<li><a href="org/glassfish/tyrus/container/grizzly/server/package-tree.html">org.glassfish.tyrus.container.grizzly.server</a>, </li>
+<li><a href="org/glassfish/tyrus/core/package-tree.html">org.glassfish.tyrus.core</a>, </li>
+<li><a href="org/glassfish/tyrus/core/cluster/package-tree.html">org.glassfish.tyrus.core.cluster</a>, </li>
+<li><a href="org/glassfish/tyrus/core/coder/package-tree.html">org.glassfish.tyrus.core.coder</a>, </li>
+<li><a href="org/glassfish/tyrus/core/collection/package-tree.html">org.glassfish.tyrus.core.collection</a>, </li>
+<li><a href="org/glassfish/tyrus/core/extension/package-tree.html">org.glassfish.tyrus.core.extension</a>, </li>
+<li><a href="org/glassfish/tyrus/core/frame/package-tree.html">org.glassfish.tyrus.core.frame</a>, </li>
+<li><a href="org/glassfish/tyrus/core/l10n/package-tree.html">org.glassfish.tyrus.core.l10n</a>, </li>
+<li><a href="org/glassfish/tyrus/core/monitoring/package-tree.html">org.glassfish.tyrus.core.monitoring</a>, </li>
+<li><a href="org/glassfish/tyrus/core/uri/package-tree.html">org.glassfish.tyrus.core.uri</a>, </li>
+<li><a href="org/glassfish/tyrus/core/uri/internal/package-tree.html">org.glassfish.tyrus.core.uri.internal</a>, </li>
+<li><a href="org/glassfish/tyrus/core/wsadl/model/package-tree.html">org.glassfish.tyrus.core.wsadl.model</a>, </li>
+<li><a href="org/glassfish/tyrus/gf/cdi/package-tree.html">org.glassfish.tyrus.gf.cdi</a>, </li>
+<li><a href="org/glassfish/tyrus/gf/ejb/package-tree.html">org.glassfish.tyrus.gf.ejb</a>, </li>
+<li><a href="org/glassfish/tyrus/server/package-tree.html">org.glassfish.tyrus.server</a>, </li>
+<li><a href="org/glassfish/tyrus/servlet/package-tree.html">org.glassfish.tyrus.servlet</a>, </li>
+<li><a href="org/glassfish/tyrus/spi/package-tree.html">org.glassfish.tyrus.spi</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">AbstractMultivaluedMap</span></a>&lt;K,&#8203;V&gt; (implements org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal">MultivaluedMap</a>&lt;K,&#8203;V&gt;)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">MultivaluedHashMap</span></a>&lt;K,&#8203;V&gt; (implements java.io.Serializable)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">MultivaluedStringMap</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Application.html" title="class in org.glassfish.tyrus.core.wsadl.model"><span class="typeNameLink">Application</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/AuthConfig.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">AuthConfig</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/AuthConfig.Builder.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">AuthConfig.Builder</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/Authenticator.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">Authenticator</span></a></li>
+<li class="circle">java.nio.charset.Charset (implements java.lang.Comparable&lt;T&gt;)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/StrictUtf8.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">StrictUtf8</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/ClientEndpointConfig.Builder.html" title="class in javax.websocket"><span class="typeNameLink">ClientEndpointConfig.Builder</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/ClientEndpointConfig.Configurator.html" title="class in javax.websocket"><span class="typeNameLink">ClientEndpointConfig.Configurator</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">ClientManager.ReconnectHandler</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientProperties.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">ClientProperties</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/CloseReason.html" title="class in javax.websocket"><span class="typeNameLink">CloseReason</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/ClusterContext.html" title="class in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">ClusterContext</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/CoderAdapter.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">CoderAdapter</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/CoderWrapper.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">CoderWrapper</span></a>&lt;T&gt; (implements javax.websocket.<a href="javax/websocket/Decoder.html" title="interface in javax.websocket">Decoder</a>, javax.websocket.<a href="javax/websocket/Encoder.html" title="interface in javax.websocket">Encoder</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/InputStreamDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">InputStreamDecoder</span></a> (implements javax.websocket.<a href="javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;T&gt;)</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">NoOpByteArrayCoder</span></a> (implements javax.websocket.<a href="javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;T&gt;, javax.websocket.<a href="javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;T&gt;)</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">NoOpByteBufferCoder</span></a> (implements javax.websocket.<a href="javax/websocket/Decoder.Binary.html" title="interface in javax.websocket">Decoder.Binary</a>&lt;T&gt;, javax.websocket.<a href="javax/websocket/Encoder.Binary.html" title="interface in javax.websocket">Encoder.Binary</a>&lt;T&gt;)</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/NoOpTextCoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">NoOpTextCoder</span></a> (implements javax.websocket.<a href="javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;T&gt;, javax.websocket.<a href="javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;T&gt;)</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders</span></a>&lt;T&gt; (implements javax.websocket.<a href="javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;T&gt;)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.BooleanDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.ByteDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.CharacterDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.DoubleDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.FloatDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.IntegerDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.LongDecoder</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">PrimitiveDecoders.ShortDecoder</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/ReaderDecoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">ReaderDecoder</span></a> (implements javax.websocket.<a href="javax/websocket/Decoder.Text.html" title="interface in javax.websocket">Decoder.Text</a>&lt;T&gt;)</li>
+<li class="circle">org.glassfish.tyrus.core.coder.<a href="org/glassfish/tyrus/core/coder/ToStringEncoder.html" title="class in org.glassfish.tyrus.core.coder"><span class="typeNameLink">ToStringEncoder</span></a> (implements javax.websocket.<a href="javax/websocket/Encoder.Text.html" title="interface in javax.websocket">Encoder.Text</a>&lt;T&gt;)</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/CompletionHandler.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">CompletionHandler</span></a>&lt;E&gt;</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ComponentProvider</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.gf.cdi.<a href="org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html" title="class in org.glassfish.tyrus.gf.cdi"><span class="typeNameLink">CdiComponentProvider</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DefaultComponentProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">DefaultComponentProvider</span></a></li>
+<li class="circle">org.glassfish.tyrus.gf.ejb.<a href="org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html" title="class in org.glassfish.tyrus.gf.ejb"><span class="typeNameLink">EjbComponentProvider</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ComponentProviderService.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ComponentProviderService</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/ContainerProvider.html" title="class in javax.websocket"><span class="typeNameLink">ContainerProvider</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyContainerProvider</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/Credentials.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">Credentials</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">DebugContext</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/Endpoint.html" title="class in javax.websocket"><span class="typeNameLink">Endpoint</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/AnnotatedEndpoint.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">AnnotatedEndpoint</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/Endpoint.html" title="class in org.glassfish.tyrus.core.wsadl.model"><span class="typeNameLink">Endpoint</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ErrorCollector.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ErrorCollector</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ExecutorServiceProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ExecutorServiceProvider</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/BaseContainer.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">BaseContainer</span></a> (implements javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>)
+<ul>
+<li class="circle">org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ClientManager.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">ClientManager</span></a> (implements javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket">WebSocketContainer</a>)</li>
+<li class="circle">org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerContainer.html" title="class in org.glassfish.tyrus.server"><span class="typeNameLink">TyrusServerContainer</span></a> (implements org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi">ServerContainer</a>)</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">Frame</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">TyrusFrame</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/BinaryFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">BinaryFrame</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/CloseFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">CloseFrame</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/PingFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">PingFrame</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/PongFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">PongFrame</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TextFrame.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">TextFrame</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/Frame.Builder.html" title="class in org.glassfish.tyrus.core.frame"><span class="typeNameLink">Frame.Builder</span></a></li>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyClientContainer</span></a> (implements org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi">ClientContainer</a>)</li>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyClientProperties</span></a></li>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyClientSocket</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Handshake.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">Handshake</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizableMessage.html" title="class in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">LocalizableMessage</span></a> (implements org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/Localizable.html" title="interface in org.glassfish.tyrus.core.l10n">Localizable</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html" title="class in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">LocalizableMessageFactory</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/LocalizationMessages.html" title="class in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">LocalizationMessages</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/Localizer.html" title="class in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">Localizer</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.uri.<a href="org/glassfish/tyrus/core/uri/Match.html" title="class in org.glassfish.tyrus.core.uri"><span class="typeNameLink">Match</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MessageHandlerManager.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">MessageHandlerManager</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.wsadl.model.<a href="org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html" title="class in org.glassfish.tyrus.core.wsadl.model"><span class="typeNameLink">ObjectFactory</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/OsgiRegistry.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">OsgiRegistry</span></a> (implements org.osgi.framework.SynchronousBundleListener)</li>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PatternWithGroups</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PathPattern</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolHandler.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ProtocolHandler</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ReflectionHelper</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ReflectionHelper.ClassTypePair</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ReflectionHelper.DeclaringClassInterfacePair</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ReflectionHelper.TypeClassPair</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.html" title="class in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">RemoteSession</span></a> (implements org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a>, javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">RequestContext.Builder</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/SendResult.html" title="class in javax.websocket"><span class="typeNameLink">SendResult</span></a></li>
+<li class="circle">org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/Server.html" title="class in org.glassfish.tyrus.server"><span class="typeNameLink">Server</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ServerContainerFactory.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">ServerContainerFactory</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.container.grizzly.server.<a href="org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html" title="class in org.glassfish.tyrus.container.grizzly.server"><span class="typeNameLink">GrizzlyServerContainer</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Builder.html" title="class in javax.websocket.server"><span class="typeNameLink">ServerEndpointConfig.Builder</span></a></li>
+<li class="circle">javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.Configurator.html" title="class in javax.websocket.server"><span class="typeNameLink">ServerEndpointConfig.Configurator</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusServerEndpointConfigurator</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ServiceFinder</span></a>&lt;T&gt; (implements java.lang.Iterable&lt;T&gt;)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ServiceFinder.ServiceIteratorProvider</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ServiceFinder.DefaultServiceIteratorProvider</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/SessionEventListener.html" title="class in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">SessionEventListener</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslContextConfigurator.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">SslContextConfigurator</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/SslEngineConfigurator.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">SslEngineConfigurator</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/StrictUtf8.Parser.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">StrictUtf8.Parser</span></a></li>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">TaskProcessor</span></a></li>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">TaskProcessor.Task</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/ThreadPoolConfig.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">ThreadPoolConfig</span></a></li>
+<li class="circle">java.lang.Throwable (implements java.io.Serializable)
+<ul>
+<li class="circle">java.lang.Error
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ServiceConfigurationError</span></a></li>
+</ul>
+</li>
+<li class="circle">java.lang.Exception
+<ul>
+<li class="circle">javax.websocket.<a href="javax/websocket/DecodeException.html" title="class in javax.websocket"><span class="typeNameLink">DecodeException</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/DeploymentException.html" title="class in javax.websocket"><span class="typeNameLink">DeploymentException</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/EncodeException.html" title="class in javax.websocket"><span class="typeNameLink">EncodeException</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/HandshakeException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">HandshakeException</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.client.auth.<a href="org/glassfish/tyrus/client/auth/AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth"><span class="typeNameLink">AuthenticationException</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/RedirectException.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">RedirectException</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/RetryAfterException.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">RetryAfterException</span></a></li>
+</ul>
+</li>
+<li class="circle">java.lang.RuntimeException
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/WebSocketException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">WebSocketException</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/ProtocolException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">ProtocolException</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utf8DecodingException.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">Utf8DecodingException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/SessionException.html" title="class in javax.websocket"><span class="typeNameLink">SessionException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/TyrusClientEngine.html" title="class in org.glassfish.tyrus.client"><span class="typeNameLink">TyrusClientEngine</span></a> (implements org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi">ClientEngine</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusEndpointWrapper</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusEndpointWrapper.SessionListener</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusExtension</span></a> (implements javax.websocket.<a href="javax/websocket/Extension.html" title="interface in javax.websocket">Extension</a>, java.io.Serializable)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusExtension.TyrusParameter</span></a> (implements javax.websocket.<a href="javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>, java.io.Serializable)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusFuture.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusFuture</span></a>&lt;T&gt; (implements java.util.concurrent.Future&lt;V&gt;)</li>
+<li class="circle">org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html" title="class in org.glassfish.tyrus.servlet"><span class="typeNameLink">TyrusHttpUpgradeHandler</span></a> (implements javax.servlet.http.HttpUpgradeHandler, javax.servlet.ReadListener)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusRemoteEndpoint.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusRemoteEndpoint</span></a> (implements javax.websocket.<a href="javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket">RemoteEndpoint</a>)</li>
+<li class="circle">org.glassfish.tyrus.server.<a href="org/glassfish/tyrus/server/TyrusServerConfiguration.html" title="class in org.glassfish.tyrus.server"><span class="typeNameLink">TyrusServerConfiguration</span></a> (implements javax.websocket.server.<a href="javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server">ServerApplicationConfig</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusServerEndpointConfig.Builder</span></a></li>
+<li class="circle">org.glassfish.tyrus.servlet.<a href="org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html" title="class in org.glassfish.tyrus.servlet"><span class="typeNameLink">TyrusServletContainerInitializer</span></a> (implements javax.servlet.ServletContainerInitializer)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusSession.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusSession</span></a> (implements org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster">DistributedSession</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocket.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusWebSocket</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusWebSocketEngine</span></a> (implements org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi">WebSocketEngine</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusWebSocketEngine.TyrusWebSocketEngineBuilder</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeRequest.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">UpgradeRequest</span></a> (implements javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server">HandshakeRequest</a>)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">RequestContext</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/UpgradeResponse.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">UpgradeResponse</span></a> (implements javax.websocket.<a href="javax/websocket/HandshakeResponse.html" title="interface in javax.websocket">HandshakeResponse</a>)
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusUpgradeResponse.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusUpgradeResponse</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">UriComponent</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">UriTemplate</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathTemplate.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PathTemplate</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html" title="class in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">UriTemplateParser</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">Utils</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Utils.Stringifier.html" title="class in org.glassfish.tyrus.core"><span class="typeNameLink">Utils.Stringifier</span></a>&lt;T&gt;</li>
+<li class="circle">org.glassfish.tyrus.core.collection.<a href="org/glassfish/tyrus/core/collection/Values.html" title="class in org.glassfish.tyrus.core.collection"><span class="typeNameLink">Values</span></a></li>
+<li class="circle">org.glassfish.tyrus.container.grizzly.server.<a href="org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html" title="class in org.glassfish.tyrus.container.grizzly.server"><span class="typeNameLink">WebSocketAddOn</span></a> (implements org.glassfish.grizzly.http.server.AddOn)</li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/Writer.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">Writer</span></a> (implements java.io.Closeable)
+<ul>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html" title="class in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">GrizzlyWriter</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.html" title="class in org.glassfish.tyrus.spi"><span class="typeNameLink">WriterInfo</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><span class="typeNameLink">ApplicationEventListener</span></a></li>
+<li class="circle">java.lang.AutoCloseable
+<ul>
+<li class="circle">java.io.Closeable
+<ul>
+<li class="circle">javax.websocket.<a href="javax/websocket/Session.html" title="interface in javax.websocket"><span class="typeNameLink">Session</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/DistributedSession.html" title="interface in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">DistributedSession</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html" title="interface in org.glassfish.tyrus.core"><span class="typeNameLink">BaseContainer.ShutDownCondition</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/BroadcastListener.html" title="interface in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">BroadcastListener</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientContainer.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientContainer</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientEngine</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientEngine.ClientUpgradeInfo</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientEngine.TimeoutHandler</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/CloseReason.CloseCode.html" title="interface in javax.websocket"><span class="typeNameLink">CloseReason.CloseCode</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/Connection.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">Connection</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/Connection.CloseListener.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">Connection.CloseListener</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/Decoder.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder</span></a>
+<ul>
+<li class="circle">javax.websocket.<a href="javax/websocket/Decoder.Binary.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder.Binary</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/Decoder.BinaryStream.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder.BinaryStream</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/Decoder.Text.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder.Text</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/Decoder.TextStream.html" title="interface in javax.websocket"><span class="typeNameLink">Decoder.TextStream</span></a>&lt;T&gt;</li>
+</ul>
+</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/Encoder.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder</span></a>
+<ul>
+<li class="circle">javax.websocket.<a href="javax/websocket/Encoder.Binary.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder.Binary</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/Encoder.BinaryStream.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder.BinaryStream</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/Encoder.Text.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder.Text</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/Encoder.TextStream.html" title="interface in javax.websocket"><span class="typeNameLink">Encoder.TextStream</span></a>&lt;T&gt;</li>
+</ul>
+</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/EndpointConfig.html" title="interface in javax.websocket"><span class="typeNameLink">EndpointConfig</span></a>
+<ul>
+<li class="circle">javax.websocket.<a href="javax/websocket/ClientEndpointConfig.html" title="interface in javax.websocket"><span class="typeNameLink">ClientEndpointConfig</span></a></li>
+<li class="circle">javax.websocket.server.<a href="javax/websocket/server/ServerEndpointConfig.html" title="interface in javax.websocket.server"><span class="typeNameLink">ServerEndpointConfig</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusServerEndpointConfig.html" title="interface in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusServerEndpointConfig</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/EndpointEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><span class="typeNameLink">EndpointEventListener</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.extension.<a href="org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html" title="interface in org.glassfish.tyrus.core.extension"><span class="typeNameLink">ExtendedExtension.ExtensionContext</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/Extension.html" title="interface in javax.websocket"><span class="typeNameLink">Extension</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.extension.<a href="org/glassfish/tyrus/core/extension/ExtendedExtension.html" title="interface in org.glassfish.tyrus.core.extension"><span class="typeNameLink">ExtendedExtension</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/Extension.Parameter.html" title="interface in javax.websocket"><span class="typeNameLink">Extension.Parameter</span></a></li>
+<li class="circle">javax.websocket.server.<a href="javax/websocket/server/HandshakeRequest.html" title="interface in javax.websocket.server"><span class="typeNameLink">HandshakeRequest</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/HandshakeResponse.html" title="interface in javax.websocket"><span class="typeNameLink">HandshakeResponse</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.l10n.<a href="org/glassfish/tyrus/core/l10n/Localizable.html" title="interface in org.glassfish.tyrus.core.l10n"><span class="typeNameLink">Localizable</span></a></li>
+<li class="circle">java.util.Map&lt;K,&#8203;V&gt;
+<ul>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html" title="interface in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">MultivaluedMap</span></a>&lt;K,&#8203;V&gt;</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MaskingKeyGenerator.html" title="interface in org.glassfish.tyrus.core"><span class="typeNameLink">MaskingKeyGenerator</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.monitoring.<a href="org/glassfish/tyrus/core/monitoring/MessageEventListener.html" title="interface in org.glassfish.tyrus.core.monitoring"><span class="typeNameLink">MessageEventListener</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/MessageHandler.html" title="interface in javax.websocket"><span class="typeNameLink">MessageHandler</span></a>
+<ul>
+<li class="circle">javax.websocket.<a href="javax/websocket/MessageHandler.Partial.html" title="interface in javax.websocket"><span class="typeNameLink">MessageHandler.Partial</span></a>&lt;T&gt;</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/MessageHandler.Whole.html" title="interface in javax.websocket"><span class="typeNameLink">MessageHandler.Whole</span></a>&lt;T&gt;</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathSegment.html" title="interface in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PathSegment</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/PongMessage.html" title="interface in javax.websocket"><span class="typeNameLink">PongMessage</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ReadHandler.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ReadHandler</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/RemoteEndpoint.html" title="interface in javax.websocket"><span class="typeNameLink">RemoteEndpoint</span></a>
+<ul>
+<li class="circle">javax.websocket.<a href="javax/websocket/RemoteEndpoint.Async.html" title="interface in javax.websocket"><span class="typeNameLink">RemoteEndpoint.Async</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/RemoteEndpoint.Basic.html" title="interface in javax.websocket"><span class="typeNameLink">RemoteEndpoint.Basic</span></a></li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html" title="interface in org.glassfish.tyrus.core"><span class="typeNameLink">RequestContext.Builder.IsUserInRoleDelegate</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/SendHandler.html" title="interface in javax.websocket"><span class="typeNameLink">SendHandler</span></a></li>
+<li class="circle">javax.websocket.server.<a href="javax/websocket/server/ServerApplicationConfig.html" title="interface in javax.websocket.server"><span class="typeNameLink">ServerApplicationConfig</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/SessionListener.html" title="interface in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">SessionListener</span></a></li>
+<li class="circle">org.glassfish.tyrus.container.grizzly.client.<a href="org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html" title="interface in org.glassfish.tyrus.container.grizzly.client"><span class="typeNameLink">TaskProcessor.Condition</span></a></li>
+<li class="circle">org.glassfish.tyrus.client.<a href="org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html" title="interface in org.glassfish.tyrus.client"><span class="typeNameLink">TyrusClientEngine.ClientHandshakeListener</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.collection.<a href="org/glassfish/tyrus/core/collection/Value.html" title="interface in org.glassfish.tyrus.core.collection"><span class="typeNameLink">Value</span></a>&lt;T&gt;
+<ul>
+<li class="circle">org.glassfish.tyrus.core.collection.<a href="org/glassfish/tyrus/core/collection/LazyValue.html" title="interface in org.glassfish.tyrus.core.collection"><span class="typeNameLink">LazyValue</span></a>&lt;T&gt;</li>
+</ul>
+</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/WebSocketContainer.html" title="interface in javax.websocket"><span class="typeNameLink">WebSocketContainer</span></a>
+<ul>
+<li class="circle">javax.websocket.server.<a href="javax/websocket/server/ServerContainer.html" title="interface in javax.websocket.server"><span class="typeNameLink">ServerContainer</span></a>
+<ul>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ServerContainer.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">ServerContainer</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">WebSocketEngine</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html" title="interface in org.glassfish.tyrus.spi"><span class="typeNameLink">WebSocketEngine.UpgradeInfo</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Beta.html" title="annotation in org.glassfish.tyrus.core"><span class="typeNameLink">Beta</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/ClientEndpoint.html" title="annotation in javax.websocket"><span class="typeNameLink">ClientEndpoint</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/MaxSessions.html" title="annotation in org.glassfish.tyrus.core"><span class="typeNameLink">MaxSessions</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/OnClose.html" title="annotation in javax.websocket"><span class="typeNameLink">OnClose</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/OnError.html" title="annotation in javax.websocket"><span class="typeNameLink">OnError</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/OnMessage.html" title="annotation in javax.websocket"><span class="typeNameLink">OnMessage</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">javax.websocket.<a href="javax/websocket/OnOpen.html" title="annotation in javax.websocket"><span class="typeNameLink">OnOpen</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">javax.websocket.server.<a href="javax/websocket/server/PathParam.html" title="annotation in javax.websocket.server"><span class="typeNameLink">PathParam</span></a> (implements java.lang.annotation.Annotation)</li>
+<li class="circle">javax.websocket.server.<a href="javax/websocket/server/ServerEndpoint.html" title="annotation in javax.websocket.server"><span class="typeNameLink">ServerEndpoint</span></a> (implements java.lang.annotation.Annotation)</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.Object
+<ul>
+<li class="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
+<ul>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><span class="typeNameLink">ClientEngine.ClientUpgradeStatus</span></a></li>
+<li class="circle">javax.websocket.<a href="javax/websocket/CloseReason.CloseCodes.html" title="enum in javax.websocket"><span class="typeNameLink">CloseReason.CloseCodes</span></a> (implements javax.websocket.<a href="javax/websocket/CloseReason.CloseCode.html" title="interface in javax.websocket">CloseReason.CloseCode</a>)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/CloseReasons.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">CloseReasons</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.TracingThreshold.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">DebugContext.TracingThreshold</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.TracingType.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">DebugContext.TracingType</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/DebugContext.Type.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">DebugContext.Type</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html" title="enum in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">PathPattern.RightHandPath</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.cluster.<a href="org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html" title="enum in org.glassfish.tyrus.core.cluster"><span class="typeNameLink">RemoteSession.DistributedMapKey</span></a> (implements java.io.Serializable)</li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">TyrusEndpointWrapper.SessionListener.OnOpenResult</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.frame.<a href="org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html" title="enum in org.glassfish.tyrus.core.frame"><span class="typeNameLink">TyrusFrame.FrameType</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.uri.internal.<a href="org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html" title="enum in org.glassfish.tyrus.core.uri.internal"><span class="typeNameLink">UriComponent.Type</span></a></li>
+<li class="circle">org.glassfish.tyrus.core.<a href="org/glassfish/tyrus/core/Version.html" title="enum in org.glassfish.tyrus.core"><span class="typeNameLink">Version</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html" title="enum in org.glassfish.tyrus.spi"><span class="typeNameLink">WebSocketEngine.UpgradeStatus</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.MessageType.html" title="enum in org.glassfish.tyrus.spi"><span class="typeNameLink">WriterInfo.MessageType</span></a></li>
+<li class="circle">org.glassfish.tyrus.spi.<a href="org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html" title="enum in org.glassfish.tyrus.spi"><span class="typeNameLink">WriterInfo.RemoteEndpointType</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/package-search-index.js b/apidocs/1.20/package-search-index.js
new file mode 100644
index 00000000..4e39b317
--- /dev/null
+++ b/apidocs/1.20/package-search-index.js
@@ -0,0 +1 @@
+packageSearchIndex = [{"l":"All Packages","url":"allpackages-index.html"},{"l":"javax.websocket"},{"l":"javax.websocket.server"},{"l":"org.glassfish.tyrus.client"},{"l":"org.glassfish.tyrus.client.auth"},{"l":"org.glassfish.tyrus.container.grizzly.client"},{"l":"org.glassfish.tyrus.container.grizzly.server"},{"l":"org.glassfish.tyrus.core"},{"l":"org.glassfish.tyrus.core.cluster"},{"l":"org.glassfish.tyrus.core.coder"},{"l":"org.glassfish.tyrus.core.collection"},{"l":"org.glassfish.tyrus.core.extension"},{"l":"org.glassfish.tyrus.core.frame"},{"l":"org.glassfish.tyrus.core.l10n"},{"l":"org.glassfish.tyrus.core.monitoring"},{"l":"org.glassfish.tyrus.core.uri"},{"l":"org.glassfish.tyrus.core.uri.internal"},{"l":"org.glassfish.tyrus.core.wsadl.model"},{"l":"org.glassfish.tyrus.gf.cdi"},{"l":"org.glassfish.tyrus.gf.ejb"},{"l":"org.glassfish.tyrus.server"},{"l":"org.glassfish.tyrus.servlet"},{"l":"org.glassfish.tyrus.spi"}]
\ No newline at end of file
diff --git a/apidocs/1.20/package-search-index.zip b/apidocs/1.20/package-search-index.zip
new file mode 100644
index 00000000..8f77beeb
Binary files /dev/null and b/apidocs/1.20/package-search-index.zip differ
diff --git a/apidocs/1.20/packages b/apidocs/1.20/packages
new file mode 100644
index 00000000..67ade0d1
--- /dev/null
+++ b/apidocs/1.20/packages
@@ -0,0 +1,22 @@
+javax.websocket
+javax.websocket.server
+org.glassfish.tyrus.core.l10n
+org.glassfish.tyrus.core.wsadl.model
+org.glassfish.tyrus.core.uri
+org.glassfish.tyrus.core.uri.internal
+org.glassfish.tyrus.core
+org.glassfish.tyrus.core.monitoring
+org.glassfish.tyrus.core.frame
+org.glassfish.tyrus.core.extension
+org.glassfish.tyrus.core.collection
+org.glassfish.tyrus.core.coder
+org.glassfish.tyrus.core.cluster
+org.glassfish.tyrus.client
+org.glassfish.tyrus.client.auth
+org.glassfish.tyrus.server
+org.glassfish.tyrus.gf.cdi
+org.glassfish.tyrus.gf.ejb
+org.glassfish.tyrus.container.grizzly.client
+org.glassfish.tyrus.container.grizzly.server
+org.glassfish.tyrus.servlet
+org.glassfish.tyrus.spi
\ No newline at end of file
diff --git a/apidocs/1.20/resources/glass.png b/apidocs/1.20/resources/glass.png
new file mode 100644
index 00000000..a7f591f4
Binary files /dev/null and b/apidocs/1.20/resources/glass.png differ
diff --git a/apidocs/1.20/resources/x.png b/apidocs/1.20/resources/x.png
new file mode 100644
index 00000000..30548a75
Binary files /dev/null and b/apidocs/1.20/resources/x.png differ
diff --git a/apidocs/1.20/script.js b/apidocs/1.20/script.js
new file mode 100644
index 00000000..0eaaf535
--- /dev/null
+++ b/apidocs/1.20/script.js
@@ -0,0 +1,139 @@
+/*
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+var moduleSearchIndex;
+var packageSearchIndex;
+var typeSearchIndex;
+var memberSearchIndex;
+var tagSearchIndex;
+function loadScripts(doc, tag) {
+    createElem(doc, tag, 'jquery/jszip/dist/jszip.js');
+    createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils.js');
+    if (window.navigator.userAgent.indexOf('MSIE ') > 0 || window.navigator.userAgent.indexOf('Trident/') > 0 ||
+            window.navigator.userAgent.indexOf('Edge/') > 0) {
+        createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils-ie.js');
+    }
+    createElem(doc, tag, 'search.js');
+    
+    $.get(pathtoroot + "module-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "module-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    moduleSearchIndex = JSON.parse(zip.file("module-search-index.json").asText());
+                });
+            });
+    $.get(pathtoroot + "package-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    packageSearchIndex = JSON.parse(zip.file("package-search-index.json").asText());
+                });
+            });
+    $.get(pathtoroot + "type-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    typeSearchIndex = JSON.parse(zip.file("type-search-index.json").asText());
+                });
+            });
+    $.get(pathtoroot + "member-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    memberSearchIndex = JSON.parse(zip.file("member-search-index.json").asText());
+                });
+            });
+    $.get(pathtoroot + "tag-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) {
+                    var zip = new JSZip(data);
+                    zip.load(data);
+                    tagSearchIndex = JSON.parse(zip.file("tag-search-index.json").asText());
+                });
+            });
+    if (!moduleSearchIndex) {
+        createElem(doc, tag, 'module-search-index.js');
+    }
+    if (!packageSearchIndex) {
+        createElem(doc, tag, 'package-search-index.js');
+    }
+    if (!typeSearchIndex) {
+        createElem(doc, tag, 'type-search-index.js');
+    }
+    if (!memberSearchIndex) {
+        createElem(doc, tag, 'member-search-index.js');
+    }
+    if (!tagSearchIndex) {
+        createElem(doc, tag, 'tag-search-index.js');
+    }
+    $(window).resize(function() {
+        $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+    });
+}
+
+function createElem(doc, tag, path) {
+    var script = doc.createElement(tag);
+    var scriptElement = doc.getElementsByTagName(tag)[0];
+    script.src = pathtoroot + path;
+    scriptElement.parentNode.insertBefore(script, scriptElement);
+}
+
+function show(type) {
+    count = 0;
+    for (var key in data) {
+        var row = document.getElementById(key);
+        if ((data[key] &  type) !== 0) {
+            row.style.display = '';
+            row.className = (count++ % 2) ? rowColor : altColor;
+        }
+        else
+            row.style.display = 'none';
+    }
+    updateTabs(type);
+}
+
+function updateTabs(type) {
+    for (var value in tabs) {
+        var sNode = document.getElementById(tabs[value][0]);
+        var spanNode = sNode.firstChild;
+        if (value == type) {
+            sNode.className = activeTableTab;
+            spanNode.innerHTML = tabs[value][1];
+        }
+        else {
+            sNode.className = tableTab;
+            spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
+        }
+    }
+}
+
+function updateModuleFrame(pFrame, cFrame) {
+    top.packageFrame.location = pFrame;
+    top.classFrame.location = cFrame;
+}
diff --git a/apidocs/1.20/search.js b/apidocs/1.20/search.js
new file mode 100644
index 00000000..9d3fb812
--- /dev/null
+++ b/apidocs/1.20/search.js
@@ -0,0 +1,329 @@
+/*
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+var noResult = {l: "No results found"};
+var catModules = "Modules";
+var catPackages = "Packages";
+var catTypes = "Types";
+var catMembers = "Members";
+var catSearchTags = "SearchTags";
+var highlight = "<span class=\"resultHighlight\">$&</span>";
+var camelCaseRegexp = "";
+var secondaryMatcher = "";
+function getHighlightedText(item) {
+    var ccMatcher = new RegExp(camelCaseRegexp);
+    var label = item.replace(ccMatcher, highlight);
+    if (label === item) {
+        label = item.replace(secondaryMatcher, highlight);
+    }
+    return label;
+}
+function getURLPrefix(ui) {
+    var urlPrefix="";
+    if (useModuleDirectories) {
+        var slash = "/";
+        if (ui.item.category === catModules) {
+            return ui.item.l + slash;
+        } else if (ui.item.category === catPackages && ui.item.m) {
+            return ui.item.m + slash;
+        } else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) {
+            $.each(packageSearchIndex, function(index, item) {
+                if (ui.item.p == item.l) {
+                    urlPrefix = item.m + slash;
+                }
+            });
+            return urlPrefix;
+        } else {
+            return urlPrefix;
+        }
+    }
+    return urlPrefix;
+}
+var watermark = 'Search';
+$(function() {
+    $("#search").val('');
+    $("#search").prop("disabled", false);
+    $("#reset").prop("disabled", false);
+    $("#search").val(watermark).addClass('watermark');
+    $("#search").blur(function() {
+        if ($(this).val().length == 0) {
+            $(this).val(watermark).addClass('watermark');
+        }
+    });
+    $("#search").on('click keydown', function() {
+        if ($(this).val() == watermark) {
+            $(this).val('').removeClass('watermark');
+        }
+    });
+    $("#reset").click(function() {
+        $("#search").val('');
+        $("#search").focus();
+    });
+    $("#search").focus();
+    $("#search")[0].setSelectionRange(0, 0);
+});
+$.widget("custom.catcomplete", $.ui.autocomplete, {
+    _create: function() {
+        this._super();
+        this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
+    },
+    _renderMenu: function(ul, items) {
+        var rMenu = this,
+                currentCategory = "";
+        $.each(items, function(index, item) {
+            var li;
+            if (item.l !== noResult.l && item.category !== currentCategory) {
+                ul.append("<li class=\"ui-autocomplete-category\">" + item.category + "</li>");
+                currentCategory = item.category;
+            }
+            li = rMenu._renderItemData(ul, item);
+            if (item.category) {
+                li.attr("aria-label", item.category + " : " + item.l);
+                li.attr("class", "resultItem");
+            } else {
+                li.attr("aria-label", item.l);
+                li.attr("class", "resultItem");
+            }
+        });
+    },
+    _renderItem: function(ul, item) {
+        var label = "";
+        if (item.category === catModules) {
+            label = getHighlightedText(item.l);
+        } else if (item.category === catPackages) {
+            label = (item.m)
+                    ? getHighlightedText(item.m + "/" + item.l)
+                    : getHighlightedText(item.l);
+        } else if (item.category === catTypes) {
+            label = (item.p)
+                    ? getHighlightedText(item.p + "." + item.l)
+                    : getHighlightedText(item.l);
+        } else if (item.category === catMembers) {
+            label = getHighlightedText(item.p + "." + (item.c + "." + item.l));
+        } else if (item.category === catSearchTags) {
+            label = getHighlightedText(item.l);
+        } else {
+            label = item.l;
+        }
+        $li = $("<li/>").appendTo(ul);
+        if (item.category === catSearchTags) {
+            if (item.d) {
+                $("<a/>").attr("href", "#")
+                        .html(label + "<span class=\"searchTagHolderResult\"> (" + item.h + ")</span><br><span class=\"searchTagDescResult\">"
+                                + item.d + "</span><br>")
+                        .appendTo($li);
+            } else {
+                $("<a/>").attr("href", "#")
+                        .html(label + "<span class=\"searchTagHolderResult\"> (" + item.h + ")</span>")
+                        .appendTo($li);
+            }
+        } else {
+            $("<a/>").attr("href", "#")
+                    .html(label)
+                    .appendTo($li);
+        }
+        return $li;
+    }
+});
+$(function() {
+    $("#search").catcomplete({
+        minLength: 1,
+        delay: 100,
+        source: function(request, response) {
+            var result = new Array();
+            var presult = new Array();
+            var tresult = new Array();
+            var mresult = new Array();
+            var tgresult = new Array();
+            var secondaryresult = new Array();
+            var displayCount = 0;
+            var exactMatcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term) + "$", "i");
+            camelCaseRegexp = ($.ui.autocomplete.escapeRegex(request.term)).split(/(?=[A-Z])/).join("([a-z0-9_$]*?)");
+            var camelCaseMatcher = new RegExp("^" + camelCaseRegexp);
+            secondaryMatcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
+
+            // Return the nested innermost name from the specified object
+            function nestedName(e) {
+                return e.l.substring(e.l.lastIndexOf(".") + 1);
+            }
+
+            function concatResults(a1, a2) {
+                a1 = a1.concat(a2);
+                a2.length = 0;
+                return a1;
+            }
+
+            if (moduleSearchIndex) {
+                var mdleCount = 0;
+                $.each(moduleSearchIndex, function(index, item) {
+                    item.category = catModules;
+                    if (exactMatcher.test(item.l)) {
+                        result.push(item);
+                        mdleCount++;
+                    } else if (camelCaseMatcher.test(item.l)) {
+                        result.push(item);
+                    } else if (secondaryMatcher.test(item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                displayCount = mdleCount;
+                result = concatResults(result, secondaryresult);
+            }
+            if (packageSearchIndex) {
+                var pCount = 0;
+                var pkg = "";
+                $.each(packageSearchIndex, function(index, item) {
+                    item.category = catPackages;
+                    pkg = (item.m)
+                            ? (item.m + "/" + item.l)
+                            : item.l;
+                    if (exactMatcher.test(item.l)) {
+                        presult.push(item);
+                        pCount++;
+                    } else if (camelCaseMatcher.test(pkg)) {
+                        presult.push(item);
+                    } else if (secondaryMatcher.test(pkg)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(presult, secondaryresult));
+                displayCount = (pCount > displayCount) ? pCount : displayCount;
+            }
+            if (typeSearchIndex) {
+                var tCount = 0;
+                $.each(typeSearchIndex, function(index, item) {
+                    item.category = catTypes;
+                    var s = nestedName(item);
+                    if (exactMatcher.test(s)) {
+                        tresult.push(item);
+                        tCount++;
+                    } else if (camelCaseMatcher.test(s)) {
+                        tresult.push(item);
+                    } else if (secondaryMatcher.test(item.p + "." + item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(tresult, secondaryresult));
+                displayCount = (tCount > displayCount) ? tCount : displayCount;
+            }
+            if (memberSearchIndex) {
+                var mCount = 0;
+                $.each(memberSearchIndex, function(index, item) {
+                    item.category = catMembers;
+                    var s = nestedName(item);
+                    if (exactMatcher.test(s)) {
+                        mresult.push(item);
+                        mCount++;
+                    } else if (camelCaseMatcher.test(s)) {
+                        mresult.push(item);
+                    } else if (secondaryMatcher.test(item.c + "." + item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(mresult, secondaryresult));
+                displayCount = (mCount > displayCount) ? mCount : displayCount;
+            }
+            if (tagSearchIndex) {
+                var tgCount = 0;
+                $.each(tagSearchIndex, function(index, item) {
+                    item.category = catSearchTags;
+                    if (exactMatcher.test(item.l)) {
+                        tgresult.push(item);
+                        tgCount++;
+                    } else if (secondaryMatcher.test(item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(tgresult, secondaryresult));
+                displayCount = (tgCount > displayCount) ? tgCount : displayCount;
+            }
+            displayCount = (displayCount > 500) ? displayCount : 500;
+            var counter = function() {
+                var count = {Modules: 0, Packages: 0, Types: 0, Members: 0, SearchTags: 0};
+                var f = function(item) {
+                    count[item.category] += 1;
+                    return (count[item.category] <= displayCount);
+                };
+                return f;
+            }();
+            response(result.filter(counter));
+        },
+        response: function(event, ui) {
+            if (!ui.content.length) {
+                ui.content.push(noResult);
+            } else {
+                $("#search").empty();
+            }
+        },
+        autoFocus: true,
+        position: {
+            collision: "flip"
+        },
+        select: function(event, ui) {
+            if (ui.item.l !== noResult.l) {
+                var url = getURLPrefix(ui);
+                if (ui.item.category === catModules) {
+                    if (useModuleDirectories) {
+                        url += "module-summary.html";
+                    } else {
+                        url = ui.item.l + "-summary.html";
+                    }
+                } else if (ui.item.category === catPackages) {
+                    if (ui.item.url) {
+                        url = ui.item.url;
+                    } else {
+                    url += ui.item.l.replace(/\./g, '/') + "/package-summary.html";
+                    }
+                } else if (ui.item.category === catTypes) {
+                    if (ui.item.url) {
+                        url = ui.item.url;
+                    } else if (ui.item.p === "<Unnamed>") {
+                        url += ui.item.l + ".html";
+                    } else {
+                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html";
+                    }
+                } else if (ui.item.category === catMembers) {
+                    if (ui.item.p === "<Unnamed>") {
+                        url += ui.item.c + ".html" + "#";
+                    } else {
+                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#";
+                    }
+                    if (ui.item.url) {
+                        url += ui.item.url;
+                    } else {
+                        url += ui.item.l;
+                    }
+                } else if (ui.item.category === catSearchTags) {
+                    url += ui.item.u;
+                }
+                if (top !== window) {
+                    parent.classFrame.location = pathtoroot + url;
+                } else {
+                    window.location.href = pathtoroot + url;
+                }
+            }
+        }
+    });
+});
diff --git a/apidocs/1.20/serialized-form.html b/apidocs/1.20/serialized-form.html
new file mode 100644
index 00000000..2f9566d6
--- /dev/null
+++ b/apidocs/1.20/serialized-form.html
@@ -0,0 +1,408 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Serialized Form (Tyrus 1.20 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2022-10-11">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Serialized Form (Tyrus 1.20 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Serialized Form" class="title">Serialized Form</h1>
+</div>
+<div class="serializedFormContainer">
+<ul class="blockList">
+<li class="blockList">
+<section role="region">
+<h2 title="Package">Package&nbsp;javax.websocket</h2>
+<ul class="blockList">
+<li class="blockList"><a id="javax.websocket.DecodeException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/websocket/DecodeException.html" title="class in javax.websocket">javax.websocket.DecodeException</a> extends java.lang.Exception implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>6L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>bb</h4>
+<pre>java.nio.ByteBuffer bb</pre>
+</li>
+<li class="blockListLast">
+<h4>encodedString</h4>
+<pre>java.lang.String encodedString</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a id="javax.websocket.DeploymentException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/websocket/DeploymentException.html" title="class in javax.websocket">javax.websocket.DeploymentException</a> extends java.lang.Exception implements Serializable</h3>
+</li>
+<li class="blockList"><a id="javax.websocket.EncodeException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/websocket/EncodeException.html" title="class in javax.websocket">javax.websocket.EncodeException</a> extends java.lang.Exception implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>6L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>object</h4>
+<pre>java.lang.Object object</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a id="javax.websocket.SessionException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/websocket/SessionException.html" title="class in javax.websocket">javax.websocket.SessionException</a> extends java.lang.Exception implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>12L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>session</h4>
+<pre><a href="javax/websocket/Session.html" title="interface in javax.websocket">Session</a> session</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2 title="Package">Package&nbsp;org.glassfish.tyrus.client</h2>
+<ul class="blockList">
+<li class="blockList"><a id="org.glassfish.tyrus.client.RedirectException">
+<!--   -->
+</a>
+<h3>Class <a href="org/glassfish/tyrus/client/RedirectException.html" title="class in org.glassfish.tyrus.client">org.glassfish.tyrus.client.RedirectException</a> extends <a href="org/glassfish/tyrus/core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>4357724300486801294L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.client.RetryAfterException">
+<!--   -->
+</a>
+<h3>Class <a href="org/glassfish/tyrus/client/RetryAfterException.html" title="class in org.glassfish.tyrus.client">org.glassfish.tyrus.client.RetryAfterException</a> extends <a href="org/glassfish/tyrus/core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>delay</h4>
+<pre>java.lang.Long delay</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2 title="Package">Package&nbsp;org.glassfish.tyrus.client.auth</h2>
+<ul class="blockList">
+<li class="blockList"><a id="org.glassfish.tyrus.client.auth.AuthenticationException">
+<!--   -->
+</a>
+<h3>Class <a href="org/glassfish/tyrus/client/auth/AuthenticationException.html" title="class in org.glassfish.tyrus.client.auth">org.glassfish.tyrus.client.auth.AuthenticationException</a> extends <a href="org/glassfish/tyrus/core/HandshakeException.html" title="class in org.glassfish.tyrus.core">HandshakeException</a> implements Serializable</h3>
+</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2 title="Package">Package&nbsp;org.glassfish.tyrus.core</h2>
+<ul class="blockList">
+<li class="blockList"><a id="org.glassfish.tyrus.core.HandshakeException">
+<!--   -->
+</a>
+<h3>Class <a href="org/glassfish/tyrus/core/HandshakeException.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.HandshakeException</a> extends java.lang.Exception implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>httpStatusCode</h4>
+<pre>int httpStatusCode</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.ProtocolException">
+<!--   -->
+</a>
+<h3>Class <a href="org/glassfish/tyrus/core/ProtocolException.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.ProtocolException</a> extends <a href="org/glassfish/tyrus/core/WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>reasonPhrase</h4>
+<pre>java.lang.String reasonPhrase</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.ServiceConfigurationError">
+<!--   -->
+</a>
+<h3>Class <a href="org/glassfish/tyrus/core/ServiceConfigurationError.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.ServiceConfigurationError</a> extends java.lang.Error implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-8532392338326428074L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.TyrusExtension">
+<!--   -->
+</a>
+<h3>Class <a href="org/glassfish/tyrus/core/TyrusExtension.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.TyrusExtension</a> extends java.lang.Object implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-3671075267907614851L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>name</h4>
+<pre>java.lang.String name</pre>
+</li>
+<li class="blockListLast">
+<h4>parameters</h4>
+<pre>java.util.ArrayList&lt;<a href="javax/websocket/Extension.Parameter.html" title="interface in javax.websocket">Extension.Parameter</a>&gt; parameters</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.TyrusExtension.TyrusParameter">
+<!--   -->
+</a>
+<h3>Class <a href="org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.TyrusExtension.TyrusParameter</a> extends java.lang.Object implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6818457211703933087L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>name</h4>
+<pre>java.lang.String name</pre>
+</li>
+<li class="blockListLast">
+<h4>value</h4>
+<pre>java.lang.String value</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.Utf8DecodingException">
+<!--   -->
+</a>
+<h3>Class <a href="org/glassfish/tyrus/core/Utf8DecodingException.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.Utf8DecodingException</a> extends <a href="org/glassfish/tyrus/core/WebSocketException.html" title="class in org.glassfish.tyrus.core">WebSocketException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>7766051445796057L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.WebSocketException">
+<!--   -->
+</a>
+<h3>Class <a href="org/glassfish/tyrus/core/WebSocketException.html" title="class in org.glassfish.tyrus.core">org.glassfish.tyrus.core.WebSocketException</a> extends java.lang.RuntimeException implements Serializable</h3>
+</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2 title="Package">Package&nbsp;org.glassfish.tyrus.core.uri.internal</h2>
+<ul class="blockList">
+<li class="blockList"><a id="org.glassfish.tyrus.core.uri.internal.MultivaluedHashMap">
+<!--   -->
+</a>
+<h3>Class <a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal.MultivaluedHashMap</a> extends <a href="org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html" title="class in org.glassfish.tyrus.core.uri.internal">AbstractMultivaluedMap</a>&lt;<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;<a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt; implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6052320403766368902L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="org.glassfish.tyrus.core.uri.internal.MultivaluedStringMap">
+<!--   -->
+</a>
+<h3>Class <a href="org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html" title="class in org.glassfish.tyrus.core.uri.internal">org.glassfish.tyrus.core.uri.internal.MultivaluedStringMap</a> extends <a href="org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html" title="class in org.glassfish.tyrus.core.uri.internal">MultivaluedHashMap</a>&lt;java.lang.String,&#8203;java.lang.String&gt; implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6052320403766368902L</dd>
+</dl>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2022 <a href="http://www.oracle.com/">Oracle Corporation</a>. All rights reserved.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/1.20/stylesheet.css b/apidocs/1.20/stylesheet.css
new file mode 100644
index 00000000..fa246765
--- /dev/null
+++ b/apidocs/1.20/stylesheet.css
@@ -0,0 +1,906 @@
+/* 
+ * Javadoc style sheet
+ */
+
+@import url('resources/fonts/dejavu.css');
+
+/*
+ * Styles for individual HTML elements.
+ *
+ * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
+ * HTML element throughout the page.
+ */
+
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+    font-size:14px;
+    margin:0;
+    padding:0;
+    height:100%;
+    width:100%;
+}
+iframe {
+    margin:0;
+    padding:0;
+    height:100%;
+    width:100%;
+    overflow-y:scroll;
+    border:none;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4A6782;
+}
+a[href]:hover, a[href]:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:before, a[name]:target, a[id]:before, a[id]:target {
+    content:"";
+    display:inline-block;
+    position:relative;
+    padding-top:129px;
+    margin-top:-129px;
+}
+pre {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+}
+h1 {
+    font-size:20px;
+}
+h2 {
+    font-size:18px;
+}
+h3 {
+    font-size:16px;
+    font-style:italic;
+}
+h4 {
+    font-size:13px;
+}
+h5 {
+    font-size:12px;
+}
+h6 {
+    font-size:11px;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+    margin-top:8px;
+    line-height:1.4em;
+}
+dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+}
+table tr td dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    vertical-align:top;
+    padding-top:4px;
+}
+sup {
+    font-size:8px;
+}
+
+/*
+ * Styles for HTML generated by javadoc.
+ *
+ * These are style classes that are used by the standard doclet to generate HTML documentation.
+ */
+
+/*
+ * Styles for document title and copyright.
+ */
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:11px;
+    z-index:200;
+    margin-top:-9px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+ * Styles for navigation bar.
+ */
+.bar {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:11px;
+    margin:0;
+}
+.navPadding {
+    padding-top: 107px;
+}
+.fixedNav {
+    position:fixed;
+    width:100%;
+    z-index:999;
+    background-color:#ffffff;
+}
+.topNav {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px; 
+}
+.bottomNav {
+    margin-top:10px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav {
+    background-color:#dee3e9;
+    float:left;
+    width:100%;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+    text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.navListSearch {
+    float:right;
+    margin:0 0 0 0;
+    padding:0;
+}
+ul.navListSearch li {
+    list-style:none;
+    float:right;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.navListSearch li label {
+    position:relative;
+    right:-16px;
+}
+ul.subNavList li {
+    list-style:none;
+    float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+    text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+    text-transform:uppercase;
+}
+.navBarCell1Rev {
+    background-color:#F8981D;
+    color:#253441;
+    margin: auto 5px;
+}
+.skipNav {
+    position:absolute;
+    top:auto;
+    left:-9999px;
+    overflow:hidden;
+}
+/*
+ * Styles for page header and footer.
+ */
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexNav {
+    position:relative;
+    font-size:12px;
+    background-color:#dee3e9;
+}
+.indexNav ul {
+    margin-top:0;
+    padding:5px;
+}
+.indexNav ul li {
+    display:inline;
+    list-style-type:none;
+    padding-right:10px;
+    text-transform:uppercase;
+}
+.indexNav h1 {
+    font-size:13px;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 15px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:13px;
+}
+/*
+ * Styles for headings.
+ */
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+ * Styles for page layout containers.
+ */
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer,
+.allClassesContainer, .allPackagesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:12px;
+}
+.indexContainer h2 {
+    font-size:13px;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+    padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:12px;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:5px 0 10px 0px;
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+ * Styles for lists.
+ */
+li.circle {
+    list-style:circle;
+}
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:15px;
+    line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #ededed; 
+    background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+ * Styles for tables.
+ */
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary,
+.requiresSummary, .packagesSummary, .providesSummary, .usesSummary {
+    width:100%;
+    border-spacing:0;
+    border-left:1px solid #EEE; 
+    border-right:1px solid #EEE; 
+    border-bottom:1px solid #EEE; 
+}
+.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary  {
+    padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption,
+.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#253441;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    padding-top:10px;
+    padding-left:1px;
+    margin:0px;
+    white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.requiresSummary caption a:link, .packagesSummary caption a:link, .providesSummary caption a:link,
+.usesSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.requiresSummary caption a:hover, .packagesSummary caption a:hover, .providesSummary caption a:hover,
+.usesSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.requiresSummary caption a:active, .packagesSummary caption a:active, .providesSummary caption a:active,
+.usesSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.constantsSummary caption a:visited, .deprecatedSummary caption a:visited,
+.requiresSummary caption a:visited, .packagesSummary caption a:visited, .providesSummary caption a:visited,
+.usesSummary caption a:visited {
+    color:#FFFFFF;
+}
+.useSummary caption a:link, .useSummary caption a:hover, .useSummary caption a:active,
+.useSummary caption a:visited {
+    color:#1f389c;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span,
+.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span,
+.usesSummary caption span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    padding-bottom:7px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    border: none;
+    height:16px;
+}
+.memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span,
+.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    height:16px;
+}
+.memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span,
+.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#4D7A97;
+    height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab,
+.packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab,
+.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab,
+.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab {
+    padding-top:0px;
+    padding-left:0px;
+    padding-right:0px;
+    background-image:none;
+    float:none;
+    display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd,
+.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd {
+    display:none;
+    width:5px;
+    position:relative;
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd,
+.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative; 
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd,
+.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative;
+    background-color:#4D7A97;
+    float:left;
+}
+.rowColor th, .altColor th {
+    font-weight:normal;
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td,
+.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td {
+    text-align:left;
+    padding:0px 0px 12px 10px;
+}
+th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .useSummary th,
+.constantsSummary th, .packagesSummary th, td.colFirst, td.colSecond, td.colLast, .useSummary td,
+.constantsSummary td {
+    vertical-align:top;
+    padding-right:0px;
+    padding-top:8px;
+    padding-bottom:3px;
+}
+th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .constantsSummary th,
+.packagesSummary th {
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+    font-size:13px;
+}
+td.colSecond, th.colSecond, td.colLast, th.colConstructorName, th.colDeprecatedItemName, th.colLast {
+    font-size:13px;
+}
+.constantsSummary th, .packagesSummary th {
+    font-size:13px;
+}
+.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst,
+.providesSummary td.colLast {
+    white-space:normal;
+    font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.requiresSummary td.colFirst, .requiresSummary th.colFirst,
+.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th,
+.usesSummary td.colFirst, .usesSummary th.colFirst,
+.providesSummary td.colFirst, .providesSummary th.colFirst,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName,
+.typeSummary td.colFirst, .typeSummary th.colFirst {
+    vertical-align:top;
+}
+.packagesSummary th.colLast, .packagesSummary td.colLast {
+    white-space:normal;
+}
+td.colFirst a:link, td.colFirst a:visited,
+td.colSecond a:link, td.colSecond a:visited,
+th.colFirst a:link, th.colFirst a:visited,
+th.colSecond a:link, th.colSecond a:visited,
+th.colConstructorName a:link, th.colConstructorName a:visited,
+th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, 
+.constantValuesContainer td a:link, .constantValuesContainer td a:visited, 
+.allClassesContainer td a:link, .allClassesContainer td a:visited, 
+.allPackagesContainer td a:link, .allPackagesContainer td a:visited {
+    font-weight:bold;
+}
+.tableSubHeadingColor {
+    background-color:#EEEEFF;
+}
+.altColor, .altColor th {
+    background-color:#FFFFFF;
+}
+.rowColor, .rowColor th {
+    background-color:#EEEEEF;
+}
+/*
+ * Styles for contents.
+ */
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    font-style:normal;
+}
+div.block {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+td.colLast div {
+    padding-top:0px;
+}
+td.colLast a {
+    padding-bottom:3px;
+}
+/*
+ * Styles for formatting effect.
+ */
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:10px;
+}
+.block {
+    display:block;
+    margin:3px 10px 2px 0px;
+    color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink,
+.moduleLabelInPackage, .moduleLabelInType, .overrideSpecifyLabel, .packageLabelInType,
+.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel,
+.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink {
+    font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+    font-style:italic;
+}
+.deprecationBlock {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+    border-style:solid;
+    border-width:thin;
+    border-radius:10px;
+    padding:10px;
+    margin-bottom:10px;
+    margin-right:10px;
+    display:inline-block;
+}
+div.block div.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+    font-style:normal;
+}
+div.contentContainer ul.blockList li.blockList h2 {
+    padding-bottom:0px;
+}
+/*
+ * Styles for IFRAME.
+ */
+.mainContainer {
+    margin:0 auto; 
+    padding:0; 
+    height:100%; 
+    width:100%; 
+    position:fixed; 
+    top:0; 
+    left:0;
+}
+.leftContainer {
+    height:100%;
+    position:fixed;
+    width:320px;
+}
+.leftTop {
+    position:relative;
+    float:left;
+    width:315px;
+    top:0;
+    left:0;
+    height:30%;
+    border-right:6px solid #ccc;
+    border-bottom:6px solid #ccc;
+}
+.leftBottom {
+    position:relative;
+    float:left;
+    width:315px;
+    bottom:0;
+    left:0;
+    height:70%;
+    border-right:6px solid #ccc;
+    border-top:1px solid #000;
+}
+.rightContainer {
+    position:absolute;
+    left:320px;
+    top:0;
+    bottom:0;
+    height:100%;
+    right:0;
+    border-left:1px solid #000;
+}
+.rightIframe {
+    margin:0;
+    padding:0;
+    height:100%;
+    right:30px;
+    width:100%;
+    overflow:visible;
+    margin-bottom:30px;
+}
+/*
+ * Styles specific to HTML5 elements.
+ */
+main, nav, header, footer, section {
+    display:block;
+}
+/*
+ * Styles for javadoc search.
+ */
+.ui-autocomplete-category {
+    font-weight:bold;
+    font-size:15px;
+    padding:7px 0 7px 3px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+}
+.resultItem {
+    font-size:13px;
+}
+.ui-autocomplete {
+    max-height:85%;
+    max-width:65%;
+    overflow-y:scroll;
+    overflow-x:scroll;
+    white-space:nowrap;
+    box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
+}
+ul.ui-autocomplete {
+    position:fixed;
+    z-index:999999;
+}
+ul.ui-autocomplete  li {
+    float:left;
+    clear:both;
+    width:100%;
+}
+.resultHighlight {
+    font-weight:bold;
+}
+#search {
+    background-image:url('resources/glass.png');
+    background-size:13px;
+    background-repeat:no-repeat;
+    background-position:2px 3px;
+    padding-left:20px;
+    position:relative;
+    right:-18px;
+}
+#reset {
+    background-color: rgb(255,255,255);
+    background-image:url('resources/x.png');
+    background-position:center;
+    background-repeat:no-repeat;
+    background-size:12px;
+    border:0 none;
+    width:16px;
+    height:17px;
+    position:relative;
+    left:-4px;
+    top:-4px;
+    font-size:0px;
+}
+.watermark {
+    color:#545454;
+}
+.searchTagDescResult {
+    font-style:italic;
+    font-size:11px;
+}
+.searchTagHolderResult {
+    font-style:italic;
+    font-size:12px;
+}
+.searchTagResult:before, .searchTagResult:target {
+    color:red;
+}
+.moduleGraph span {
+    display:none;
+    position:absolute;
+}
+.moduleGraph:hover span {
+    display:block;
+    margin: -100px 0 0 100px;
+    z-index: 1;
+}
+.methodSignature {
+    white-space:normal;
+}
+
+/*
+ * Styles for user-provided tables.
+ *
+ * borderless:
+ *      No borders, vertical margins, styled caption.
+ *      This style is provided for use with existing doc comments.
+ *      In general, borderless tables should not be used for layout purposes.
+ *
+ * plain:
+ *      Plain borders around table and cells, vertical margins, styled caption.
+ *      Best for small tables or for complex tables for tables with cells that span
+ *      rows and columns, when the "striped" style does not work well.
+ *
+ * striped:
+ *      Borders around the table and vertical borders between cells, striped rows,
+ *      vertical margins, styled caption.
+ *      Best for tables that have a header row, and a body containing a series of simple rows.
+ */
+
+table.borderless,
+table.plain,
+table.striped {
+    margin-top: 10px;
+    margin-bottom: 10px;
+}
+table.borderless > caption,
+table.plain > caption,
+table.striped > caption {
+    font-weight: bold;
+    font-size: smaller;
+}
+table.borderless th, table.borderless td,
+table.plain th, table.plain td,
+table.striped th, table.striped td {
+    padding: 2px 5px;
+}
+table.borderless,
+table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
+table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
+    border: none;
+}
+table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
+    background-color: transparent;
+}
+table.plain {
+    border-collapse: collapse;
+    border: 1px solid black;
+}
+table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
+    background-color: transparent;
+}
+table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
+table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
+    border: 1px solid black;
+}
+table.striped {
+    border-collapse: collapse;
+    border: 1px solid black;
+}
+table.striped > thead {
+    background-color: #E3E3E3;
+}
+table.striped > thead > tr > th, table.striped > thead > tr > td {
+    border: 1px solid black;
+}
+table.striped > tbody > tr:nth-child(even) {
+    background-color: #EEE
+}
+table.striped > tbody > tr:nth-child(odd) {
+    background-color: #FFF
+}
+table.striped > tbody > tr > th, table.striped > tbody > tr > td {
+    border-left: 1px solid black;
+    border-right: 1px solid black;
+}
+table.striped > tbody > tr > th {
+    font-weight: normal;
+}
diff --git a/apidocs/1.20/type-search-index.js b/apidocs/1.20/type-search-index.js
new file mode 100644
index 00000000..ec6d86bf
--- /dev/null
+++ b/apidocs/1.20/type-search-index.js
@@ -0,0 +1 @@
+typeSearchIndex = [{"p":"org.glassfish.tyrus.core.uri.internal","l":"AbstractMultivaluedMap"},{"l":"All Classes","url":"allclasses-index.html"},{"p":"org.glassfish.tyrus.core","l":"AnnotatedEndpoint"},{"p":"org.glassfish.tyrus.core.wsadl.model","l":"Application"},{"p":"org.glassfish.tyrus.core.monitoring","l":"ApplicationEventListener"},{"p":"javax.websocket","l":"RemoteEndpoint.Async"},{"p":"org.glassfish.tyrus.client.auth","l":"AuthConfig"},{"p":"org.glassfish.tyrus.client.auth","l":"AuthenticationException"},{"p":"org.glassfish.tyrus.client.auth","l":"Authenticator"},{"p":"org.glassfish.tyrus.core","l":"BaseContainer"},{"p":"javax.websocket","l":"RemoteEndpoint.Basic"},{"p":"org.glassfish.tyrus.core","l":"Beta"},{"p":"javax.websocket","l":"Decoder.Binary"},{"p":"javax.websocket","l":"Encoder.Binary"},{"p":"org.glassfish.tyrus.core.frame","l":"BinaryFrame"},{"p":"javax.websocket","l":"Decoder.BinaryStream"},{"p":"javax.websocket","l":"Encoder.BinaryStream"},{"p":"org.glassfish.tyrus.core.coder","l":"PrimitiveDecoders.BooleanDecoder"},{"p":"org.glassfish.tyrus.core.cluster","l":"BroadcastListener"},{"p":"javax.websocket","l":"ClientEndpointConfig.Builder"},{"p":"javax.websocket.server","l":"ServerEndpointConfig.Builder"},{"p":"org.glassfish.tyrus.client.auth","l":"AuthConfig.Builder"},{"p":"org.glassfish.tyrus.core","l":"RequestContext.Builder"},{"p":"org.glassfish.tyrus.core","l":"TyrusServerEndpointConfig.Builder"},{"p":"org.glassfish.tyrus.core.frame","l":"Frame.Builder"},{"p":"org.glassfish.tyrus.core.coder","l":"PrimitiveDecoders.ByteDecoder"},{"p":"org.glassfish.tyrus.gf.cdi","l":"CdiComponentProvider"},{"p":"org.glassfish.tyrus.core.coder","l":"PrimitiveDecoders.CharacterDecoder"},{"p":"org.glassfish.tyrus.core","l":"ReflectionHelper.ClassTypePair"},{"p":"org.glassfish.tyrus.spi","l":"ClientContainer"},{"p":"javax.websocket","l":"ClientEndpoint"},{"p":"javax.websocket","l":"ClientEndpointConfig"},{"p":"org.glassfish.tyrus.spi","l":"ClientEngine"},{"p":"org.glassfish.tyrus.client","l":"TyrusClientEngine.ClientHandshakeListener"},{"p":"org.glassfish.tyrus.client","l":"ClientManager"},{"p":"org.glassfish.tyrus.client","l":"ClientProperties"},{"p":"org.glassfish.tyrus.spi","l":"ClientEngine.ClientUpgradeInfo"},{"p":"org.glassfish.tyrus.spi","l":"ClientEngine.ClientUpgradeStatus"},{"p":"javax.websocket","l":"CloseReason.CloseCode"},{"p":"javax.websocket","l":"CloseReason.CloseCodes"},{"p":"org.glassfish.tyrus.core.frame","l":"CloseFrame"},{"p":"org.glassfish.tyrus.spi","l":"Connection.CloseListener"},{"p":"javax.websocket","l":"CloseReason"},{"p":"org.glassfish.tyrus.core","l":"CloseReasons"},{"p":"org.glassfish.tyrus.core.cluster","l":"ClusterContext"},{"p":"org.glassfish.tyrus.core.coder","l":"CoderAdapter"},{"p":"org.glassfish.tyrus.core.coder","l":"CoderWrapper"},{"p":"org.glassfish.tyrus.spi","l":"CompletionHandler"},{"p":"org.glassfish.tyrus.core","l":"ComponentProvider"},{"p":"org.glassfish.tyrus.core","l":"ComponentProviderService"},{"p":"org.glassfish.tyrus.container.grizzly.client","l":"TaskProcessor.Condition"},{"p":"javax.websocket","l":"ClientEndpointConfig.Configurator"},{"p":"javax.websocket.server","l":"ServerEndpointConfig.Configurator"},{"p":"org.glassfish.tyrus.spi","l":"Connection"},{"p":"javax.websocket","l":"ContainerProvider"},{"p":"org.glassfish.tyrus.client.auth","l":"Credentials"},{"p":"org.glassfish.tyrus.core","l":"DebugContext"},{"p":"org.glassfish.tyrus.core","l":"ReflectionHelper.DeclaringClassInterfacePair"},{"p":"javax.websocket","l":"DecodeException"},{"p":"javax.websocket","l":"Decoder"},{"p":"org.glassfish.tyrus.core","l":"DefaultComponentProvider"},{"p":"org.glassfish.tyrus.core","l":"ServiceFinder.DefaultServiceIteratorProvider"},{"p":"javax.websocket","l":"DeploymentException"},{"p":"org.glassfish.tyrus.core.cluster","l":"RemoteSession.DistributedMapKey"},{"p":"org.glassfish.tyrus.core.cluster","l":"DistributedSession"},{"p":"org.glassfish.tyrus.core.coder","l":"PrimitiveDecoders.DoubleDecoder"},{"p":"org.glassfish.tyrus.gf.ejb","l":"EjbComponentProvider"},{"p":"javax.websocket","l":"EncodeException"},{"p":"javax.websocket","l":"Encoder"},{"p":"javax.websocket","l":"Endpoint"},{"p":"org.glassfish.tyrus.core.wsadl.model","l":"Endpoint"},{"p":"javax.websocket","l":"EndpointConfig"},{"p":"org.glassfish.tyrus.core.monitoring","l":"EndpointEventListener"},{"p":"org.glassfish.tyrus.core","l":"ErrorCollector"},{"p":"org.glassfish.tyrus.core","l":"ExecutorServiceProvider"},{"p":"org.glassfish.tyrus.core.extension","l":"ExtendedExtension"},{"p":"javax.websocket","l":"Extension"},{"p":"org.glassfish.tyrus.core.extension","l":"ExtendedExtension.ExtensionContext"},{"p":"org.glassfish.tyrus.core.coder","l":"PrimitiveDecoders.FloatDecoder"},{"p":"org.glassfish.tyrus.core.frame","l":"Frame"},{"p":"org.glassfish.tyrus.core.frame","l":"TyrusFrame.FrameType"},{"p":"org.glassfish.tyrus.container.grizzly.client","l":"GrizzlyClientContainer"},{"p":"org.glassfish.tyrus.container.grizzly.client","l":"GrizzlyClientProperties"},{"p":"org.glassfish.tyrus.container.grizzly.client","l":"GrizzlyClientSocket"},{"p":"org.glassfish.tyrus.container.grizzly.client","l":"GrizzlyContainerProvider"},{"p":"org.glassfish.tyrus.container.grizzly.server","l":"GrizzlyServerContainer"},{"p":"org.glassfish.tyrus.container.grizzly.client","l":"GrizzlyWriter"},{"p":"org.glassfish.tyrus.core","l":"Handshake"},{"p":"org.glassfish.tyrus.core","l":"HandshakeException"},{"p":"javax.websocket.server","l":"HandshakeRequest"},{"p":"javax.websocket","l":"HandshakeResponse"},{"p":"org.glassfish.tyrus.core.coder","l":"InputStreamDecoder"},{"p":"org.glassfish.tyrus.core.coder","l":"PrimitiveDecoders.IntegerDecoder"},{"p":"org.glassfish.tyrus.core","l":"RequestContext.Builder.IsUserInRoleDelegate"},{"p":"org.glassfish.tyrus.core.collection","l":"LazyValue"},{"p":"org.glassfish.tyrus.core.l10n","l":"Localizable"},{"p":"org.glassfish.tyrus.core.l10n","l":"LocalizableMessage"},{"p":"org.glassfish.tyrus.core.l10n","l":"LocalizableMessageFactory"},{"p":"org.glassfish.tyrus.core.l10n","l":"LocalizationMessages"},{"p":"org.glassfish.tyrus.core.l10n","l":"Localizer"},{"p":"org.glassfish.tyrus.core.coder","l":"PrimitiveDecoders.LongDecoder"},{"p":"org.glassfish.tyrus.core","l":"MaskingKeyGenerator"},{"p":"org.glassfish.tyrus.core.uri","l":"Match"},{"p":"org.glassfish.tyrus.core","l":"MaxSessions"},{"p":"org.glassfish.tyrus.core.monitoring","l":"MessageEventListener"},{"p":"javax.websocket","l":"MessageHandler"},{"p":"org.glassfish.tyrus.core","l":"MessageHandlerManager"},{"p":"org.glassfish.tyrus.spi","l":"WriterInfo.MessageType"},{"p":"org.glassfish.tyrus.core.uri.internal","l":"MultivaluedHashMap"},{"p":"org.glassfish.tyrus.core.uri.internal","l":"MultivaluedMap"},{"p":"org.glassfish.tyrus.core.uri.internal","l":"MultivaluedStringMap"},{"p":"org.glassfish.tyrus.core.coder","l":"NoOpByteArrayCoder"},{"p":"org.glassfish.tyrus.core.coder","l":"NoOpByteBufferCoder"},{"p":"org.glassfish.tyrus.core.coder","l":"NoOpTextCoder"},{"p":"org.glassfish.tyrus.core.wsadl.model","l":"ObjectFactory"},{"p":"javax.websocket","l":"OnClose"},{"p":"javax.websocket","l":"OnError"},{"p":"javax.websocket","l":"OnMessage"},{"p":"javax.websocket","l":"OnOpen"},{"p":"org.glassfish.tyrus.core","l":"TyrusEndpointWrapper.SessionListener.OnOpenResult"},{"p":"org.glassfish.tyrus.core","l":"OsgiRegistry"},{"p":"javax.websocket","l":"Extension.Parameter"},{"p":"org.glassfish.tyrus.core","l":"StrictUtf8.Parser"},{"p":"javax.websocket","l":"MessageHandler.Partial"},{"p":"javax.websocket.server","l":"PathParam"},{"p":"org.glassfish.tyrus.core.uri.internal","l":"PathPattern"},{"p":"org.glassfish.tyrus.core.uri.internal","l":"PathSegment"},{"p":"org.glassfish.tyrus.core.uri.internal","l":"PathTemplate"},{"p":"org.glassfish.tyrus.core.uri.internal","l":"PatternWithGroups"},{"p":"org.glassfish.tyrus.core.frame","l":"PingFrame"},{"p":"org.glassfish.tyrus.core.frame","l":"PongFrame"},{"p":"javax.websocket","l":"PongMessage"},{"p":"org.glassfish.tyrus.core.coder","l":"PrimitiveDecoders"},{"p":"org.glassfish.tyrus.core","l":"ProtocolException"},{"p":"org.glassfish.tyrus.core","l":"ProtocolHandler"},{"p":"org.glassfish.tyrus.core.coder","l":"ReaderDecoder"},{"p":"org.glassfish.tyrus.spi","l":"ReadHandler"},{"p":"org.glassfish.tyrus.client","l":"ClientManager.ReconnectHandler"},{"p":"org.glassfish.tyrus.client","l":"RedirectException"},{"p":"org.glassfish.tyrus.core","l":"ReflectionHelper"},{"p":"javax.websocket","l":"RemoteEndpoint"},{"p":"org.glassfish.tyrus.spi","l":"WriterInfo.RemoteEndpointType"},{"p":"org.glassfish.tyrus.core.cluster","l":"RemoteSession"},{"p":"org.glassfish.tyrus.core","l":"RequestContext"},{"p":"org.glassfish.tyrus.client","l":"RetryAfterException"},{"p":"org.glassfish.tyrus.core.uri.internal","l":"PathPattern.RightHandPath"},{"p":"javax.websocket","l":"SendHandler"},{"p":"javax.websocket","l":"SendResult"},{"p":"org.glassfish.tyrus.server","l":"Server"},{"p":"javax.websocket.server","l":"ServerApplicationConfig"},{"p":"javax.websocket.server","l":"ServerContainer"},{"p":"org.glassfish.tyrus.spi","l":"ServerContainer"},{"p":"org.glassfish.tyrus.spi","l":"ServerContainerFactory"},{"p":"javax.websocket.server","l":"ServerEndpoint"},{"p":"javax.websocket.server","l":"ServerEndpointConfig"},{"p":"org.glassfish.tyrus.core","l":"ServiceConfigurationError"},{"p":"org.glassfish.tyrus.core","l":"ServiceFinder"},{"p":"org.glassfish.tyrus.core","l":"ServiceFinder.ServiceIteratorProvider"},{"p":"javax.websocket","l":"Session"},{"p":"org.glassfish.tyrus.core.cluster","l":"SessionEventListener"},{"p":"javax.websocket","l":"SessionException"},{"p":"org.glassfish.tyrus.core","l":"TyrusEndpointWrapper.SessionListener"},{"p":"org.glassfish.tyrus.core.cluster","l":"SessionListener"},{"p":"org.glassfish.tyrus.core.coder","l":"PrimitiveDecoders.ShortDecoder"},{"p":"org.glassfish.tyrus.core","l":"BaseContainer.ShutDownCondition"},{"p":"org.glassfish.tyrus.client","l":"SslContextConfigurator"},{"p":"org.glassfish.tyrus.client","l":"SslEngineConfigurator"},{"p":"org.glassfish.tyrus.core","l":"StrictUtf8"},{"p":"org.glassfish.tyrus.core","l":"Utils.Stringifier"},{"p":"org.glassfish.tyrus.container.grizzly.client","l":"TaskProcessor.Task"},{"p":"org.glassfish.tyrus.container.grizzly.client","l":"TaskProcessor"},{"p":"javax.websocket","l":"Decoder.Text"},{"p":"javax.websocket","l":"Encoder.Text"},{"p":"org.glassfish.tyrus.core.frame","l":"TextFrame"},{"p":"javax.websocket","l":"Decoder.TextStream"},{"p":"javax.websocket","l":"Encoder.TextStream"},{"p":"org.glassfish.tyrus.client","l":"ThreadPoolConfig"},{"p":"org.glassfish.tyrus.spi","l":"ClientEngine.TimeoutHandler"},{"p":"org.glassfish.tyrus.core.coder","l":"ToStringEncoder"},{"p":"org.glassfish.tyrus.core","l":"DebugContext.TracingThreshold"},{"p":"org.glassfish.tyrus.core","l":"DebugContext.TracingType"},{"p":"org.glassfish.tyrus.core","l":"DebugContext.Type"},{"p":"org.glassfish.tyrus.core.uri.internal","l":"UriComponent.Type"},{"p":"org.glassfish.tyrus.core","l":"ReflectionHelper.TypeClassPair"},{"p":"org.glassfish.tyrus.client","l":"TyrusClientEngine"},{"p":"org.glassfish.tyrus.core","l":"TyrusEndpointWrapper"},{"p":"org.glassfish.tyrus.core","l":"TyrusExtension"},{"p":"org.glassfish.tyrus.core.frame","l":"TyrusFrame"},{"p":"org.glassfish.tyrus.core","l":"TyrusFuture"},{"p":"org.glassfish.tyrus.servlet","l":"TyrusHttpUpgradeHandler"},{"p":"org.glassfish.tyrus.core","l":"TyrusExtension.TyrusParameter"},{"p":"org.glassfish.tyrus.core","l":"TyrusRemoteEndpoint"},{"p":"org.glassfish.tyrus.server","l":"TyrusServerConfiguration"},{"p":"org.glassfish.tyrus.server","l":"TyrusServerContainer"},{"p":"org.glassfish.tyrus.core","l":"TyrusServerEndpointConfig"},{"p":"org.glassfish.tyrus.core","l":"TyrusServerEndpointConfigurator"},{"p":"org.glassfish.tyrus.servlet","l":"TyrusServletContainerInitializer"},{"p":"org.glassfish.tyrus.core","l":"TyrusSession"},{"p":"org.glassfish.tyrus.core","l":"TyrusUpgradeResponse"},{"p":"org.glassfish.tyrus.core","l":"TyrusWebSocket"},{"p":"org.glassfish.tyrus.core","l":"TyrusWebSocketEngine"},{"p":"org.glassfish.tyrus.core","l":"TyrusWebSocketEngine.TyrusWebSocketEngineBuilder"},{"p":"org.glassfish.tyrus.spi","l":"WebSocketEngine.UpgradeInfo"},{"p":"org.glassfish.tyrus.spi","l":"UpgradeRequest"},{"p":"org.glassfish.tyrus.spi","l":"UpgradeResponse"},{"p":"org.glassfish.tyrus.spi","l":"WebSocketEngine.UpgradeStatus"},{"p":"org.glassfish.tyrus.core.uri.internal","l":"UriComponent"},{"p":"org.glassfish.tyrus.core.uri.internal","l":"UriTemplate"},{"p":"org.glassfish.tyrus.core.uri.internal","l":"UriTemplateParser"},{"p":"org.glassfish.tyrus.core","l":"Utf8DecodingException"},{"p":"org.glassfish.tyrus.core","l":"Utils"},{"p":"org.glassfish.tyrus.core.collection","l":"Value"},{"p":"org.glassfish.tyrus.core.collection","l":"Values"},{"p":"org.glassfish.tyrus.core","l":"Version"},{"p":"org.glassfish.tyrus.container.grizzly.server","l":"WebSocketAddOn"},{"p":"javax.websocket","l":"WebSocketContainer"},{"p":"org.glassfish.tyrus.spi","l":"WebSocketEngine"},{"p":"org.glassfish.tyrus.core","l":"WebSocketException"},{"p":"javax.websocket","l":"MessageHandler.Whole"},{"p":"org.glassfish.tyrus.spi","l":"Writer"},{"p":"org.glassfish.tyrus.spi","l":"WriterInfo"}]
\ No newline at end of file
diff --git a/apidocs/1.20/type-search-index.zip b/apidocs/1.20/type-search-index.zip
new file mode 100644
index 00000000..85431f90
Binary files /dev/null and b/apidocs/1.20/type-search-index.zip differ
diff --git a/apidocs/latest1x/allclasses-index.html b/apidocs/latest1x/allclasses-index.html
index e3c882c3..d8460627 100644
--- a/apidocs/latest1x/allclasses-index.html
+++ b/apidocs/latest1x/allclasses-index.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>All Classes (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>All Classes (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="All Classes (Tyrus 1.19 API)";
+            parent.document.title="All Classes (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/allclasses.html b/apidocs/latest1x/allclasses.html
index 760a909b..919877bc 100644
--- a/apidocs/latest1x/allclasses.html
+++ b/apidocs/latest1x/allclasses.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>All Classes (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>All Classes (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
diff --git a/apidocs/latest1x/allpackages-index.html b/apidocs/latest1x/allpackages-index.html
index e823be11..cf37fcb7 100644
--- a/apidocs/latest1x/allpackages-index.html
+++ b/apidocs/latest1x/allpackages-index.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>All Packages (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>All Packages (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="All Packages (Tyrus 1.19 API)";
+            parent.document.title="All Packages (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/constant-values.html b/apidocs/latest1x/constant-values.html
index 835656a4..979753ec 100644
--- a/apidocs/latest1x/constant-values.html
+++ b/apidocs/latest1x/constant-values.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Constant Field Values (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Constant Field Values (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Constant Field Values (Tyrus 1.19 API)";
+            parent.document.title="Constant Field Values (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/deprecated-list.html b/apidocs/latest1x/deprecated-list.html
index 45428577..ac0b8ce9 100644
--- a/apidocs/latest1x/deprecated-list.html
+++ b/apidocs/latest1x/deprecated-list.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Deprecated List (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Deprecated List (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Deprecated List (Tyrus 1.19 API)";
+            parent.document.title="Deprecated List (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/help-doc.html b/apidocs/latest1x/help-doc.html
index 6377fd66..d7a704fc 100644
--- a/apidocs/latest1x/help-doc.html
+++ b/apidocs/latest1x/help-doc.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>API Help (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>API Help (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="API Help (Tyrus 1.19 API)";
+            parent.document.title="API Help (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/index-all.html b/apidocs/latest1x/index-all.html
index ff49cd94..60d247a9 100644
--- a/apidocs/latest1x/index-all.html
+++ b/apidocs/latest1x/index-all.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Index (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Index (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Index (Tyrus 1.19 API)";
+            parent.document.title="Index (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/index.html b/apidocs/latest1x/index.html
index e1a65d5d..51eb953c 100644
--- a/apidocs/latest1x/index.html
+++ b/apidocs/latest1x/index.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Overview (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Overview (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Overview (Tyrus 1.19 API)";
+            parent.document.title="Overview (Tyrus 1.20 API)";
         }
     }
     catch(err) {
@@ -94,7 +94,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
 </nav>
 </header>
 <div class="header">
-<h1 class="title">Tyrus 1.19 API Documentation</h1>
+<h1 class="title">Tyrus 1.20 API Documentation</h1>
 </div>
 <main role="main">
 <div class="contentContainer">
diff --git a/apidocs/latest1x/javax/websocket/ClientEndpoint.html b/apidocs/latest1x/javax/websocket/ClientEndpoint.html
index 610b9a7e..577e1041 100644
--- a/apidocs/latest1x/javax/websocket/ClientEndpoint.html
+++ b/apidocs/latest1x/javax/websocket/ClientEndpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ClientEndpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEndpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClientEndpoint (Tyrus 1.19 API)";
+            parent.document.title="ClientEndpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/ClientEndpointConfig.Builder.html b/apidocs/latest1x/javax/websocket/ClientEndpointConfig.Builder.html
index 671d3e87..c53b7e67 100644
--- a/apidocs/latest1x/javax/websocket/ClientEndpointConfig.Builder.html
+++ b/apidocs/latest1x/javax/websocket/ClientEndpointConfig.Builder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ClientEndpointConfig.Builder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEndpointConfig.Builder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClientEndpointConfig.Builder (Tyrus 1.19 API)";
+            parent.document.title="ClientEndpointConfig.Builder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/ClientEndpointConfig.Configurator.html b/apidocs/latest1x/javax/websocket/ClientEndpointConfig.Configurator.html
index 372d0e80..f6ea90ec 100644
--- a/apidocs/latest1x/javax/websocket/ClientEndpointConfig.Configurator.html
+++ b/apidocs/latest1x/javax/websocket/ClientEndpointConfig.Configurator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ClientEndpointConfig.Configurator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEndpointConfig.Configurator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClientEndpointConfig.Configurator (Tyrus 1.19 API)";
+            parent.document.title="ClientEndpointConfig.Configurator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/ClientEndpointConfig.html b/apidocs/latest1x/javax/websocket/ClientEndpointConfig.html
index 0a3c60fb..4c849f92 100644
--- a/apidocs/latest1x/javax/websocket/ClientEndpointConfig.html
+++ b/apidocs/latest1x/javax/websocket/ClientEndpointConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ClientEndpointConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEndpointConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClientEndpointConfig (Tyrus 1.19 API)";
+            parent.document.title="ClientEndpointConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/CloseReason.CloseCode.html b/apidocs/latest1x/javax/websocket/CloseReason.CloseCode.html
index 56012a14..0a7d5467 100644
--- a/apidocs/latest1x/javax/websocket/CloseReason.CloseCode.html
+++ b/apidocs/latest1x/javax/websocket/CloseReason.CloseCode.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>CloseReason.CloseCode (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CloseReason.CloseCode (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CloseReason.CloseCode (Tyrus 1.19 API)";
+            parent.document.title="CloseReason.CloseCode (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/CloseReason.CloseCodes.html b/apidocs/latest1x/javax/websocket/CloseReason.CloseCodes.html
index 3effd37c..db911279 100644
--- a/apidocs/latest1x/javax/websocket/CloseReason.CloseCodes.html
+++ b/apidocs/latest1x/javax/websocket/CloseReason.CloseCodes.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>CloseReason.CloseCodes (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CloseReason.CloseCodes (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CloseReason.CloseCodes (Tyrus 1.19 API)";
+            parent.document.title="CloseReason.CloseCodes (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/CloseReason.html b/apidocs/latest1x/javax/websocket/CloseReason.html
index 4a957e5c..eae0983a 100644
--- a/apidocs/latest1x/javax/websocket/CloseReason.html
+++ b/apidocs/latest1x/javax/websocket/CloseReason.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>CloseReason (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CloseReason (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CloseReason (Tyrus 1.19 API)";
+            parent.document.title="CloseReason (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/ContainerProvider.html b/apidocs/latest1x/javax/websocket/ContainerProvider.html
index ba4b55f9..75fe44aa 100644
--- a/apidocs/latest1x/javax/websocket/ContainerProvider.html
+++ b/apidocs/latest1x/javax/websocket/ContainerProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ContainerProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ContainerProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ContainerProvider (Tyrus 1.19 API)";
+            parent.document.title="ContainerProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/DecodeException.html b/apidocs/latest1x/javax/websocket/DecodeException.html
index 3cb24b6e..1664a441 100644
--- a/apidocs/latest1x/javax/websocket/DecodeException.html
+++ b/apidocs/latest1x/javax/websocket/DecodeException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>DecodeException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DecodeException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="DecodeException (Tyrus 1.19 API)";
+            parent.document.title="DecodeException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Decoder.Binary.html b/apidocs/latest1x/javax/websocket/Decoder.Binary.html
index 629e4dd2..add79781 100644
--- a/apidocs/latest1x/javax/websocket/Decoder.Binary.html
+++ b/apidocs/latest1x/javax/websocket/Decoder.Binary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Decoder.Binary (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Decoder.Binary (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Decoder.Binary (Tyrus 1.19 API)";
+            parent.document.title="Decoder.Binary (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Decoder.BinaryStream.html b/apidocs/latest1x/javax/websocket/Decoder.BinaryStream.html
index 8f5c5abb..4cc0e958 100644
--- a/apidocs/latest1x/javax/websocket/Decoder.BinaryStream.html
+++ b/apidocs/latest1x/javax/websocket/Decoder.BinaryStream.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Decoder.BinaryStream (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Decoder.BinaryStream (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Decoder.BinaryStream (Tyrus 1.19 API)";
+            parent.document.title="Decoder.BinaryStream (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Decoder.Text.html b/apidocs/latest1x/javax/websocket/Decoder.Text.html
index 53c9f8cd..7bec226b 100644
--- a/apidocs/latest1x/javax/websocket/Decoder.Text.html
+++ b/apidocs/latest1x/javax/websocket/Decoder.Text.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Decoder.Text (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Decoder.Text (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Decoder.Text (Tyrus 1.19 API)";
+            parent.document.title="Decoder.Text (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Decoder.TextStream.html b/apidocs/latest1x/javax/websocket/Decoder.TextStream.html
index 175a9914..5456f001 100644
--- a/apidocs/latest1x/javax/websocket/Decoder.TextStream.html
+++ b/apidocs/latest1x/javax/websocket/Decoder.TextStream.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Decoder.TextStream (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Decoder.TextStream (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Decoder.TextStream (Tyrus 1.19 API)";
+            parent.document.title="Decoder.TextStream (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Decoder.html b/apidocs/latest1x/javax/websocket/Decoder.html
index f8dc1fcd..563b9ee0 100644
--- a/apidocs/latest1x/javax/websocket/Decoder.html
+++ b/apidocs/latest1x/javax/websocket/Decoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Decoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Decoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Decoder (Tyrus 1.19 API)";
+            parent.document.title="Decoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/DeploymentException.html b/apidocs/latest1x/javax/websocket/DeploymentException.html
index 0f35814b..4bb3cb90 100644
--- a/apidocs/latest1x/javax/websocket/DeploymentException.html
+++ b/apidocs/latest1x/javax/websocket/DeploymentException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>DeploymentException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DeploymentException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="DeploymentException (Tyrus 1.19 API)";
+            parent.document.title="DeploymentException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/EncodeException.html b/apidocs/latest1x/javax/websocket/EncodeException.html
index 14aa56c9..f3fbfc4d 100644
--- a/apidocs/latest1x/javax/websocket/EncodeException.html
+++ b/apidocs/latest1x/javax/websocket/EncodeException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>EncodeException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>EncodeException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="EncodeException (Tyrus 1.19 API)";
+            parent.document.title="EncodeException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Encoder.Binary.html b/apidocs/latest1x/javax/websocket/Encoder.Binary.html
index bb2a35cd..8e454b85 100644
--- a/apidocs/latest1x/javax/websocket/Encoder.Binary.html
+++ b/apidocs/latest1x/javax/websocket/Encoder.Binary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Encoder.Binary (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Encoder.Binary (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Encoder.Binary (Tyrus 1.19 API)";
+            parent.document.title="Encoder.Binary (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Encoder.BinaryStream.html b/apidocs/latest1x/javax/websocket/Encoder.BinaryStream.html
index 26eef1e2..e153b91c 100644
--- a/apidocs/latest1x/javax/websocket/Encoder.BinaryStream.html
+++ b/apidocs/latest1x/javax/websocket/Encoder.BinaryStream.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Encoder.BinaryStream (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Encoder.BinaryStream (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Encoder.BinaryStream (Tyrus 1.19 API)";
+            parent.document.title="Encoder.BinaryStream (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Encoder.Text.html b/apidocs/latest1x/javax/websocket/Encoder.Text.html
index 00ae1779..57c136ad 100644
--- a/apidocs/latest1x/javax/websocket/Encoder.Text.html
+++ b/apidocs/latest1x/javax/websocket/Encoder.Text.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Encoder.Text (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Encoder.Text (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Encoder.Text (Tyrus 1.19 API)";
+            parent.document.title="Encoder.Text (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Encoder.TextStream.html b/apidocs/latest1x/javax/websocket/Encoder.TextStream.html
index a33d8ff8..5e4bda9f 100644
--- a/apidocs/latest1x/javax/websocket/Encoder.TextStream.html
+++ b/apidocs/latest1x/javax/websocket/Encoder.TextStream.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Encoder.TextStream (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Encoder.TextStream (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Encoder.TextStream (Tyrus 1.19 API)";
+            parent.document.title="Encoder.TextStream (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Encoder.html b/apidocs/latest1x/javax/websocket/Encoder.html
index b9848d1b..152a2d94 100644
--- a/apidocs/latest1x/javax/websocket/Encoder.html
+++ b/apidocs/latest1x/javax/websocket/Encoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Encoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Encoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Encoder (Tyrus 1.19 API)";
+            parent.document.title="Encoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Endpoint.html b/apidocs/latest1x/javax/websocket/Endpoint.html
index a723125b..be7f7849 100644
--- a/apidocs/latest1x/javax/websocket/Endpoint.html
+++ b/apidocs/latest1x/javax/websocket/Endpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Endpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Endpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Endpoint (Tyrus 1.19 API)";
+            parent.document.title="Endpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/EndpointConfig.html b/apidocs/latest1x/javax/websocket/EndpointConfig.html
index a6d9faa3..74dda499 100644
--- a/apidocs/latest1x/javax/websocket/EndpointConfig.html
+++ b/apidocs/latest1x/javax/websocket/EndpointConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>EndpointConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>EndpointConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="EndpointConfig (Tyrus 1.19 API)";
+            parent.document.title="EndpointConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Extension.Parameter.html b/apidocs/latest1x/javax/websocket/Extension.Parameter.html
index 7857d51f..4def262e 100644
--- a/apidocs/latest1x/javax/websocket/Extension.Parameter.html
+++ b/apidocs/latest1x/javax/websocket/Extension.Parameter.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Extension.Parameter (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Extension.Parameter (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Extension.Parameter (Tyrus 1.19 API)";
+            parent.document.title="Extension.Parameter (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Extension.html b/apidocs/latest1x/javax/websocket/Extension.html
index 982d803b..f6e16eae 100644
--- a/apidocs/latest1x/javax/websocket/Extension.html
+++ b/apidocs/latest1x/javax/websocket/Extension.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Extension (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Extension (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Extension (Tyrus 1.19 API)";
+            parent.document.title="Extension (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/HandshakeResponse.html b/apidocs/latest1x/javax/websocket/HandshakeResponse.html
index 1f2aab5b..42833554 100644
--- a/apidocs/latest1x/javax/websocket/HandshakeResponse.html
+++ b/apidocs/latest1x/javax/websocket/HandshakeResponse.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>HandshakeResponse (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>HandshakeResponse (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="HandshakeResponse (Tyrus 1.19 API)";
+            parent.document.title="HandshakeResponse (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/MessageHandler.Partial.html b/apidocs/latest1x/javax/websocket/MessageHandler.Partial.html
index dacd0c49..02a4bf67 100644
--- a/apidocs/latest1x/javax/websocket/MessageHandler.Partial.html
+++ b/apidocs/latest1x/javax/websocket/MessageHandler.Partial.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>MessageHandler.Partial (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MessageHandler.Partial (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="MessageHandler.Partial (Tyrus 1.19 API)";
+            parent.document.title="MessageHandler.Partial (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/MessageHandler.Whole.html b/apidocs/latest1x/javax/websocket/MessageHandler.Whole.html
index 96eecb87..d6dc80b3 100644
--- a/apidocs/latest1x/javax/websocket/MessageHandler.Whole.html
+++ b/apidocs/latest1x/javax/websocket/MessageHandler.Whole.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>MessageHandler.Whole (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MessageHandler.Whole (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="MessageHandler.Whole (Tyrus 1.19 API)";
+            parent.document.title="MessageHandler.Whole (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/MessageHandler.html b/apidocs/latest1x/javax/websocket/MessageHandler.html
index 12a9fe9c..d0aaaf1d 100644
--- a/apidocs/latest1x/javax/websocket/MessageHandler.html
+++ b/apidocs/latest1x/javax/websocket/MessageHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>MessageHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MessageHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="MessageHandler (Tyrus 1.19 API)";
+            parent.document.title="MessageHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/OnClose.html b/apidocs/latest1x/javax/websocket/OnClose.html
index 3ef10ad0..94030889 100644
--- a/apidocs/latest1x/javax/websocket/OnClose.html
+++ b/apidocs/latest1x/javax/websocket/OnClose.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>OnClose (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>OnClose (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="OnClose (Tyrus 1.19 API)";
+            parent.document.title="OnClose (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/OnError.html b/apidocs/latest1x/javax/websocket/OnError.html
index 5b67e8d6..0b52093d 100644
--- a/apidocs/latest1x/javax/websocket/OnError.html
+++ b/apidocs/latest1x/javax/websocket/OnError.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>OnError (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>OnError (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="OnError (Tyrus 1.19 API)";
+            parent.document.title="OnError (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/OnMessage.html b/apidocs/latest1x/javax/websocket/OnMessage.html
index 7194ce57..48e0942f 100644
--- a/apidocs/latest1x/javax/websocket/OnMessage.html
+++ b/apidocs/latest1x/javax/websocket/OnMessage.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>OnMessage (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>OnMessage (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="OnMessage (Tyrus 1.19 API)";
+            parent.document.title="OnMessage (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/OnOpen.html b/apidocs/latest1x/javax/websocket/OnOpen.html
index ad4ca61a..d9063681 100644
--- a/apidocs/latest1x/javax/websocket/OnOpen.html
+++ b/apidocs/latest1x/javax/websocket/OnOpen.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>OnOpen (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>OnOpen (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="OnOpen (Tyrus 1.19 API)";
+            parent.document.title="OnOpen (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/PongMessage.html b/apidocs/latest1x/javax/websocket/PongMessage.html
index 45503ec9..124062ed 100644
--- a/apidocs/latest1x/javax/websocket/PongMessage.html
+++ b/apidocs/latest1x/javax/websocket/PongMessage.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PongMessage (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PongMessage (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PongMessage (Tyrus 1.19 API)";
+            parent.document.title="PongMessage (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/RemoteEndpoint.Async.html b/apidocs/latest1x/javax/websocket/RemoteEndpoint.Async.html
index d5b51f42..2e90e01b 100644
--- a/apidocs/latest1x/javax/websocket/RemoteEndpoint.Async.html
+++ b/apidocs/latest1x/javax/websocket/RemoteEndpoint.Async.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>RemoteEndpoint.Async (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RemoteEndpoint.Async (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="RemoteEndpoint.Async (Tyrus 1.19 API)";
+            parent.document.title="RemoteEndpoint.Async (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/RemoteEndpoint.Basic.html b/apidocs/latest1x/javax/websocket/RemoteEndpoint.Basic.html
index ea183d7a..3d3e6ae8 100644
--- a/apidocs/latest1x/javax/websocket/RemoteEndpoint.Basic.html
+++ b/apidocs/latest1x/javax/websocket/RemoteEndpoint.Basic.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>RemoteEndpoint.Basic (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RemoteEndpoint.Basic (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="RemoteEndpoint.Basic (Tyrus 1.19 API)";
+            parent.document.title="RemoteEndpoint.Basic (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/RemoteEndpoint.html b/apidocs/latest1x/javax/websocket/RemoteEndpoint.html
index 80cb8ca4..58740679 100644
--- a/apidocs/latest1x/javax/websocket/RemoteEndpoint.html
+++ b/apidocs/latest1x/javax/websocket/RemoteEndpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>RemoteEndpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RemoteEndpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="RemoteEndpoint (Tyrus 1.19 API)";
+            parent.document.title="RemoteEndpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/SendHandler.html b/apidocs/latest1x/javax/websocket/SendHandler.html
index cda967f8..03c10d3c 100644
--- a/apidocs/latest1x/javax/websocket/SendHandler.html
+++ b/apidocs/latest1x/javax/websocket/SendHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>SendHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SendHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="SendHandler (Tyrus 1.19 API)";
+            parent.document.title="SendHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/SendResult.html b/apidocs/latest1x/javax/websocket/SendResult.html
index b8b8fa6e..fc867d15 100644
--- a/apidocs/latest1x/javax/websocket/SendResult.html
+++ b/apidocs/latest1x/javax/websocket/SendResult.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>SendResult (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SendResult (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="SendResult (Tyrus 1.19 API)";
+            parent.document.title="SendResult (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/Session.html b/apidocs/latest1x/javax/websocket/Session.html
index cc8d777f..2de499f7 100644
--- a/apidocs/latest1x/javax/websocket/Session.html
+++ b/apidocs/latest1x/javax/websocket/Session.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Session (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Session (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Session (Tyrus 1.19 API)";
+            parent.document.title="Session (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/SessionException.html b/apidocs/latest1x/javax/websocket/SessionException.html
index f65b4e83..c60d239f 100644
--- a/apidocs/latest1x/javax/websocket/SessionException.html
+++ b/apidocs/latest1x/javax/websocket/SessionException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>SessionException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SessionException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="SessionException (Tyrus 1.19 API)";
+            parent.document.title="SessionException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/WebSocketContainer.html b/apidocs/latest1x/javax/websocket/WebSocketContainer.html
index f173544a..6aea5d9c 100644
--- a/apidocs/latest1x/javax/websocket/WebSocketContainer.html
+++ b/apidocs/latest1x/javax/websocket/WebSocketContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>WebSocketContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WebSocketContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="WebSocketContainer (Tyrus 1.19 API)";
+            parent.document.title="WebSocketContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/ClientEndpoint.html b/apidocs/latest1x/javax/websocket/class-use/ClientEndpoint.html
index a9635920..a8c1285c 100644
--- a/apidocs/latest1x/javax/websocket/class-use/ClientEndpoint.html
+++ b/apidocs/latest1x/javax/websocket/class-use/ClientEndpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.ClientEndpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.ClientEndpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.ClientEndpoint (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.ClientEndpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/ClientEndpointConfig.Builder.html b/apidocs/latest1x/javax/websocket/class-use/ClientEndpointConfig.Builder.html
index d5176e09..cfc74d3b 100644
--- a/apidocs/latest1x/javax/websocket/class-use/ClientEndpointConfig.Builder.html
+++ b/apidocs/latest1x/javax/websocket/class-use/ClientEndpointConfig.Builder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.ClientEndpointConfig.Builder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.ClientEndpointConfig.Builder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.ClientEndpointConfig.Builder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.ClientEndpointConfig.Builder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/ClientEndpointConfig.Configurator.html b/apidocs/latest1x/javax/websocket/class-use/ClientEndpointConfig.Configurator.html
index 69ef9448..e2d731e9 100644
--- a/apidocs/latest1x/javax/websocket/class-use/ClientEndpointConfig.Configurator.html
+++ b/apidocs/latest1x/javax/websocket/class-use/ClientEndpointConfig.Configurator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.ClientEndpointConfig.Configurator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.ClientEndpointConfig.Configurator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.ClientEndpointConfig.Configurator (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.ClientEndpointConfig.Configurator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/ClientEndpointConfig.html b/apidocs/latest1x/javax/websocket/class-use/ClientEndpointConfig.html
index 5bbc61e4..aae0c30a 100644
--- a/apidocs/latest1x/javax/websocket/class-use/ClientEndpointConfig.html
+++ b/apidocs/latest1x/javax/websocket/class-use/ClientEndpointConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.ClientEndpointConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.ClientEndpointConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.ClientEndpointConfig (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.ClientEndpointConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/CloseReason.CloseCode.html b/apidocs/latest1x/javax/websocket/class-use/CloseReason.CloseCode.html
index b4e63def..e8b54cfc 100644
--- a/apidocs/latest1x/javax/websocket/class-use/CloseReason.CloseCode.html
+++ b/apidocs/latest1x/javax/websocket/class-use/CloseReason.CloseCode.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.CloseReason.CloseCode (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.CloseReason.CloseCode (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.CloseReason.CloseCode (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.CloseReason.CloseCode (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/CloseReason.CloseCodes.html b/apidocs/latest1x/javax/websocket/class-use/CloseReason.CloseCodes.html
index 3ea9d763..fe61be77 100644
--- a/apidocs/latest1x/javax/websocket/class-use/CloseReason.CloseCodes.html
+++ b/apidocs/latest1x/javax/websocket/class-use/CloseReason.CloseCodes.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.CloseReason.CloseCodes (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.CloseReason.CloseCodes (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.CloseReason.CloseCodes (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.CloseReason.CloseCodes (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/CloseReason.html b/apidocs/latest1x/javax/websocket/class-use/CloseReason.html
index 97c9e9c0..f98a9c2c 100644
--- a/apidocs/latest1x/javax/websocket/class-use/CloseReason.html
+++ b/apidocs/latest1x/javax/websocket/class-use/CloseReason.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.CloseReason (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.CloseReason (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.CloseReason (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.CloseReason (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/ContainerProvider.html b/apidocs/latest1x/javax/websocket/class-use/ContainerProvider.html
index f3a42561..9ce7a5af 100644
--- a/apidocs/latest1x/javax/websocket/class-use/ContainerProvider.html
+++ b/apidocs/latest1x/javax/websocket/class-use/ContainerProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.ContainerProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.ContainerProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.ContainerProvider (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.ContainerProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/DecodeException.html b/apidocs/latest1x/javax/websocket/class-use/DecodeException.html
index 071679d0..a73a36e2 100644
--- a/apidocs/latest1x/javax/websocket/class-use/DecodeException.html
+++ b/apidocs/latest1x/javax/websocket/class-use/DecodeException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.DecodeException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.DecodeException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.DecodeException (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.DecodeException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Decoder.Binary.html b/apidocs/latest1x/javax/websocket/class-use/Decoder.Binary.html
index 41095763..51250b6b 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Decoder.Binary.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Decoder.Binary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.Decoder.Binary (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Decoder.Binary (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.Decoder.Binary (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.Decoder.Binary (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Decoder.BinaryStream.html b/apidocs/latest1x/javax/websocket/class-use/Decoder.BinaryStream.html
index 43be948f..8c43e01f 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Decoder.BinaryStream.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Decoder.BinaryStream.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.Decoder.BinaryStream (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Decoder.BinaryStream (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.Decoder.BinaryStream (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.Decoder.BinaryStream (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Decoder.Text.html b/apidocs/latest1x/javax/websocket/class-use/Decoder.Text.html
index c1b653d4..cc4af992 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Decoder.Text.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Decoder.Text.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.Decoder.Text (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Decoder.Text (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.Decoder.Text (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.Decoder.Text (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Decoder.TextStream.html b/apidocs/latest1x/javax/websocket/class-use/Decoder.TextStream.html
index 895b7e55..37279209 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Decoder.TextStream.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Decoder.TextStream.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.Decoder.TextStream (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Decoder.TextStream (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.Decoder.TextStream (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.Decoder.TextStream (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Decoder.html b/apidocs/latest1x/javax/websocket/class-use/Decoder.html
index a8d5ddc0..3757612f 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Decoder.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Decoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.Decoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Decoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.Decoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.Decoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/DeploymentException.html b/apidocs/latest1x/javax/websocket/class-use/DeploymentException.html
index eba38633..40b9ec25 100644
--- a/apidocs/latest1x/javax/websocket/class-use/DeploymentException.html
+++ b/apidocs/latest1x/javax/websocket/class-use/DeploymentException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.DeploymentException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.DeploymentException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.DeploymentException (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.DeploymentException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/EncodeException.html b/apidocs/latest1x/javax/websocket/class-use/EncodeException.html
index 41fa0484..2d031c6c 100644
--- a/apidocs/latest1x/javax/websocket/class-use/EncodeException.html
+++ b/apidocs/latest1x/javax/websocket/class-use/EncodeException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.EncodeException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.EncodeException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.EncodeException (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.EncodeException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Encoder.Binary.html b/apidocs/latest1x/javax/websocket/class-use/Encoder.Binary.html
index 1562a38c..351e0750 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Encoder.Binary.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Encoder.Binary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.Encoder.Binary (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Encoder.Binary (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.Encoder.Binary (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.Encoder.Binary (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Encoder.BinaryStream.html b/apidocs/latest1x/javax/websocket/class-use/Encoder.BinaryStream.html
index 605086b8..33a0356a 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Encoder.BinaryStream.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Encoder.BinaryStream.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.Encoder.BinaryStream (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Encoder.BinaryStream (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.Encoder.BinaryStream (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.Encoder.BinaryStream (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Encoder.Text.html b/apidocs/latest1x/javax/websocket/class-use/Encoder.Text.html
index e4a3dfb0..a87b5015 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Encoder.Text.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Encoder.Text.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.Encoder.Text (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Encoder.Text (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.Encoder.Text (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.Encoder.Text (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Encoder.TextStream.html b/apidocs/latest1x/javax/websocket/class-use/Encoder.TextStream.html
index 1fe617ed..31fbf1a4 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Encoder.TextStream.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Encoder.TextStream.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.Encoder.TextStream (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Encoder.TextStream (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.Encoder.TextStream (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.Encoder.TextStream (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Encoder.html b/apidocs/latest1x/javax/websocket/class-use/Encoder.html
index c2f2c024..40822c22 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Encoder.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Encoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.Encoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Encoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.Encoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.Encoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Endpoint.html b/apidocs/latest1x/javax/websocket/class-use/Endpoint.html
index 2462c61e..8f3618b3 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Endpoint.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Endpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.Endpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.Endpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.Endpoint (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.Endpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/EndpointConfig.html b/apidocs/latest1x/javax/websocket/class-use/EndpointConfig.html
index 3293260d..81f421b1 100644
--- a/apidocs/latest1x/javax/websocket/class-use/EndpointConfig.html
+++ b/apidocs/latest1x/javax/websocket/class-use/EndpointConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.EndpointConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.EndpointConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.EndpointConfig (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.EndpointConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Extension.Parameter.html b/apidocs/latest1x/javax/websocket/class-use/Extension.Parameter.html
index bdc8c809..68ceff5e 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Extension.Parameter.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Extension.Parameter.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.Extension.Parameter (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Extension.Parameter (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.Extension.Parameter (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.Extension.Parameter (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Extension.html b/apidocs/latest1x/javax/websocket/class-use/Extension.html
index c44536a6..8cacbff0 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Extension.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Extension.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.Extension (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Extension (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.Extension (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.Extension (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/HandshakeResponse.html b/apidocs/latest1x/javax/websocket/class-use/HandshakeResponse.html
index 5f889cd6..4e6bbab6 100644
--- a/apidocs/latest1x/javax/websocket/class-use/HandshakeResponse.html
+++ b/apidocs/latest1x/javax/websocket/class-use/HandshakeResponse.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.HandshakeResponse (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.HandshakeResponse (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.HandshakeResponse (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.HandshakeResponse (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/MessageHandler.Partial.html b/apidocs/latest1x/javax/websocket/class-use/MessageHandler.Partial.html
index bd54102a..21c7b615 100644
--- a/apidocs/latest1x/javax/websocket/class-use/MessageHandler.Partial.html
+++ b/apidocs/latest1x/javax/websocket/class-use/MessageHandler.Partial.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.MessageHandler.Partial (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.MessageHandler.Partial (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.MessageHandler.Partial (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.MessageHandler.Partial (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/MessageHandler.Whole.html b/apidocs/latest1x/javax/websocket/class-use/MessageHandler.Whole.html
index c2d0042e..2f879351 100644
--- a/apidocs/latest1x/javax/websocket/class-use/MessageHandler.Whole.html
+++ b/apidocs/latest1x/javax/websocket/class-use/MessageHandler.Whole.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.MessageHandler.Whole (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.MessageHandler.Whole (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.MessageHandler.Whole (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.MessageHandler.Whole (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/MessageHandler.html b/apidocs/latest1x/javax/websocket/class-use/MessageHandler.html
index ce225b4d..ddbca1dc 100644
--- a/apidocs/latest1x/javax/websocket/class-use/MessageHandler.html
+++ b/apidocs/latest1x/javax/websocket/class-use/MessageHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.MessageHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.MessageHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.MessageHandler (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.MessageHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/OnClose.html b/apidocs/latest1x/javax/websocket/class-use/OnClose.html
index b25f44d5..e7002b5c 100644
--- a/apidocs/latest1x/javax/websocket/class-use/OnClose.html
+++ b/apidocs/latest1x/javax/websocket/class-use/OnClose.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.OnClose (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.OnClose (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.OnClose (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.OnClose (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/OnError.html b/apidocs/latest1x/javax/websocket/class-use/OnError.html
index 0dba5c8f..f230fc75 100644
--- a/apidocs/latest1x/javax/websocket/class-use/OnError.html
+++ b/apidocs/latest1x/javax/websocket/class-use/OnError.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.OnError (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.OnError (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.OnError (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.OnError (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/OnMessage.html b/apidocs/latest1x/javax/websocket/class-use/OnMessage.html
index e72c7941..b543b7db 100644
--- a/apidocs/latest1x/javax/websocket/class-use/OnMessage.html
+++ b/apidocs/latest1x/javax/websocket/class-use/OnMessage.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.OnMessage (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.OnMessage (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.OnMessage (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.OnMessage (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/OnOpen.html b/apidocs/latest1x/javax/websocket/class-use/OnOpen.html
index ed94d569..13f7f7d2 100644
--- a/apidocs/latest1x/javax/websocket/class-use/OnOpen.html
+++ b/apidocs/latest1x/javax/websocket/class-use/OnOpen.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.OnOpen (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.OnOpen (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.OnOpen (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.OnOpen (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/PongMessage.html b/apidocs/latest1x/javax/websocket/class-use/PongMessage.html
index f87e672b..d7799c93 100644
--- a/apidocs/latest1x/javax/websocket/class-use/PongMessage.html
+++ b/apidocs/latest1x/javax/websocket/class-use/PongMessage.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.PongMessage (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.PongMessage (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.PongMessage (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.PongMessage (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/RemoteEndpoint.Async.html b/apidocs/latest1x/javax/websocket/class-use/RemoteEndpoint.Async.html
index 55b0f3e4..5a31b49d 100644
--- a/apidocs/latest1x/javax/websocket/class-use/RemoteEndpoint.Async.html
+++ b/apidocs/latest1x/javax/websocket/class-use/RemoteEndpoint.Async.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.RemoteEndpoint.Async (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.RemoteEndpoint.Async (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.RemoteEndpoint.Async (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.RemoteEndpoint.Async (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/RemoteEndpoint.Basic.html b/apidocs/latest1x/javax/websocket/class-use/RemoteEndpoint.Basic.html
index c8b73ac9..b6141e95 100644
--- a/apidocs/latest1x/javax/websocket/class-use/RemoteEndpoint.Basic.html
+++ b/apidocs/latest1x/javax/websocket/class-use/RemoteEndpoint.Basic.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.RemoteEndpoint.Basic (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.RemoteEndpoint.Basic (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.RemoteEndpoint.Basic (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.RemoteEndpoint.Basic (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/RemoteEndpoint.html b/apidocs/latest1x/javax/websocket/class-use/RemoteEndpoint.html
index 918b01f4..64f1b2b0 100644
--- a/apidocs/latest1x/javax/websocket/class-use/RemoteEndpoint.html
+++ b/apidocs/latest1x/javax/websocket/class-use/RemoteEndpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.RemoteEndpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.RemoteEndpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.RemoteEndpoint (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.RemoteEndpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/SendHandler.html b/apidocs/latest1x/javax/websocket/class-use/SendHandler.html
index bebefcdd..a2dc0a89 100644
--- a/apidocs/latest1x/javax/websocket/class-use/SendHandler.html
+++ b/apidocs/latest1x/javax/websocket/class-use/SendHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.SendHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.SendHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.SendHandler (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.SendHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/SendResult.html b/apidocs/latest1x/javax/websocket/class-use/SendResult.html
index 454950bd..eab13c17 100644
--- a/apidocs/latest1x/javax/websocket/class-use/SendResult.html
+++ b/apidocs/latest1x/javax/websocket/class-use/SendResult.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.SendResult (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.SendResult (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.SendResult (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.SendResult (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/Session.html b/apidocs/latest1x/javax/websocket/class-use/Session.html
index e85a046c..b6a5d1bb 100644
--- a/apidocs/latest1x/javax/websocket/class-use/Session.html
+++ b/apidocs/latest1x/javax/websocket/class-use/Session.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.Session (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.Session (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.Session (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.Session (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/SessionException.html b/apidocs/latest1x/javax/websocket/class-use/SessionException.html
index 9c74e540..2ec37af2 100644
--- a/apidocs/latest1x/javax/websocket/class-use/SessionException.html
+++ b/apidocs/latest1x/javax/websocket/class-use/SessionException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.SessionException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.SessionException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.SessionException (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.SessionException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/class-use/WebSocketContainer.html b/apidocs/latest1x/javax/websocket/class-use/WebSocketContainer.html
index 11cb92e3..6f5a160d 100644
--- a/apidocs/latest1x/javax/websocket/class-use/WebSocketContainer.html
+++ b/apidocs/latest1x/javax/websocket/class-use/WebSocketContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.WebSocketContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.WebSocketContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.WebSocketContainer (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.WebSocketContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/package-summary.html b/apidocs/latest1x/javax/websocket/package-summary.html
index 5599d28b..f5e181d5 100644
--- a/apidocs/latest1x/javax/websocket/package-summary.html
+++ b/apidocs/latest1x/javax/websocket/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>javax.websocket (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>javax.websocket (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="javax.websocket (Tyrus 1.19 API)";
+            parent.document.title="javax.websocket (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/package-tree.html b/apidocs/latest1x/javax/websocket/package-tree.html
index c53c1389..d06ce200 100644
--- a/apidocs/latest1x/javax/websocket/package-tree.html
+++ b/apidocs/latest1x/javax/websocket/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>javax.websocket Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>javax.websocket Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="javax.websocket Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="javax.websocket Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/package-use.html b/apidocs/latest1x/javax/websocket/package-use.html
index 2fd622ff..a256ed73 100644
--- a/apidocs/latest1x/javax/websocket/package-use.html
+++ b/apidocs/latest1x/javax/websocket/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package javax.websocket (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package javax.websocket (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package javax.websocket (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package javax.websocket (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/HandshakeRequest.html b/apidocs/latest1x/javax/websocket/server/HandshakeRequest.html
index 5f4f7587..f7e837a8 100644
--- a/apidocs/latest1x/javax/websocket/server/HandshakeRequest.html
+++ b/apidocs/latest1x/javax/websocket/server/HandshakeRequest.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>HandshakeRequest (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>HandshakeRequest (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="HandshakeRequest (Tyrus 1.19 API)";
+            parent.document.title="HandshakeRequest (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/PathParam.html b/apidocs/latest1x/javax/websocket/server/PathParam.html
index 737c1916..dc7a498e 100644
--- a/apidocs/latest1x/javax/websocket/server/PathParam.html
+++ b/apidocs/latest1x/javax/websocket/server/PathParam.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PathParam (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PathParam (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PathParam (Tyrus 1.19 API)";
+            parent.document.title="PathParam (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/ServerApplicationConfig.html b/apidocs/latest1x/javax/websocket/server/ServerApplicationConfig.html
index 7df2364b..28c330a2 100644
--- a/apidocs/latest1x/javax/websocket/server/ServerApplicationConfig.html
+++ b/apidocs/latest1x/javax/websocket/server/ServerApplicationConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ServerApplicationConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerApplicationConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServerApplicationConfig (Tyrus 1.19 API)";
+            parent.document.title="ServerApplicationConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/ServerContainer.html b/apidocs/latest1x/javax/websocket/server/ServerContainer.html
index 73cc73d5..72614b7b 100644
--- a/apidocs/latest1x/javax/websocket/server/ServerContainer.html
+++ b/apidocs/latest1x/javax/websocket/server/ServerContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ServerContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServerContainer (Tyrus 1.19 API)";
+            parent.document.title="ServerContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/ServerEndpoint.html b/apidocs/latest1x/javax/websocket/server/ServerEndpoint.html
index 0e887a92..ac6591cb 100644
--- a/apidocs/latest1x/javax/websocket/server/ServerEndpoint.html
+++ b/apidocs/latest1x/javax/websocket/server/ServerEndpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ServerEndpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerEndpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServerEndpoint (Tyrus 1.19 API)";
+            parent.document.title="ServerEndpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/ServerEndpointConfig.Builder.html b/apidocs/latest1x/javax/websocket/server/ServerEndpointConfig.Builder.html
index 52300b72..8d5ddee5 100644
--- a/apidocs/latest1x/javax/websocket/server/ServerEndpointConfig.Builder.html
+++ b/apidocs/latest1x/javax/websocket/server/ServerEndpointConfig.Builder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ServerEndpointConfig.Builder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerEndpointConfig.Builder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServerEndpointConfig.Builder (Tyrus 1.19 API)";
+            parent.document.title="ServerEndpointConfig.Builder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/ServerEndpointConfig.Configurator.html b/apidocs/latest1x/javax/websocket/server/ServerEndpointConfig.Configurator.html
index 2a34398d..de70118e 100644
--- a/apidocs/latest1x/javax/websocket/server/ServerEndpointConfig.Configurator.html
+++ b/apidocs/latest1x/javax/websocket/server/ServerEndpointConfig.Configurator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ServerEndpointConfig.Configurator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerEndpointConfig.Configurator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServerEndpointConfig.Configurator (Tyrus 1.19 API)";
+            parent.document.title="ServerEndpointConfig.Configurator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/ServerEndpointConfig.html b/apidocs/latest1x/javax/websocket/server/ServerEndpointConfig.html
index f1a3539e..c5165600 100644
--- a/apidocs/latest1x/javax/websocket/server/ServerEndpointConfig.html
+++ b/apidocs/latest1x/javax/websocket/server/ServerEndpointConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ServerEndpointConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerEndpointConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServerEndpointConfig (Tyrus 1.19 API)";
+            parent.document.title="ServerEndpointConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/class-use/HandshakeRequest.html b/apidocs/latest1x/javax/websocket/server/class-use/HandshakeRequest.html
index da73d732..bc0a2172 100644
--- a/apidocs/latest1x/javax/websocket/server/class-use/HandshakeRequest.html
+++ b/apidocs/latest1x/javax/websocket/server/class-use/HandshakeRequest.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.server.HandshakeRequest (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.server.HandshakeRequest (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.server.HandshakeRequest (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.server.HandshakeRequest (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/class-use/PathParam.html b/apidocs/latest1x/javax/websocket/server/class-use/PathParam.html
index 04ca16c6..07644bd6 100644
--- a/apidocs/latest1x/javax/websocket/server/class-use/PathParam.html
+++ b/apidocs/latest1x/javax/websocket/server/class-use/PathParam.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.server.PathParam (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.server.PathParam (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.server.PathParam (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.server.PathParam (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/class-use/ServerApplicationConfig.html b/apidocs/latest1x/javax/websocket/server/class-use/ServerApplicationConfig.html
index 91f93787..64e2bda4 100644
--- a/apidocs/latest1x/javax/websocket/server/class-use/ServerApplicationConfig.html
+++ b/apidocs/latest1x/javax/websocket/server/class-use/ServerApplicationConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.server.ServerApplicationConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.server.ServerApplicationConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.server.ServerApplicationConfig (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.server.ServerApplicationConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/class-use/ServerContainer.html b/apidocs/latest1x/javax/websocket/server/class-use/ServerContainer.html
index 51800b2b..4c645175 100644
--- a/apidocs/latest1x/javax/websocket/server/class-use/ServerContainer.html
+++ b/apidocs/latest1x/javax/websocket/server/class-use/ServerContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.server.ServerContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.server.ServerContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.server.ServerContainer (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.server.ServerContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpoint.html b/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpoint.html
index c93be3e1..066a05b1 100644
--- a/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpoint.html
+++ b/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.server.ServerEndpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.server.ServerEndpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.server.ServerEndpoint (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.server.ServerEndpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpointConfig.Builder.html b/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpointConfig.Builder.html
index d3062cef..580b1bcf 100644
--- a/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpointConfig.Builder.html
+++ b/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpointConfig.Builder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.server.ServerEndpointConfig.Builder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.server.ServerEndpointConfig.Builder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.server.ServerEndpointConfig.Builder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.server.ServerEndpointConfig.Builder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpointConfig.Configurator.html b/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpointConfig.Configurator.html
index 3d0f403b..d4f892ed 100644
--- a/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpointConfig.Configurator.html
+++ b/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpointConfig.Configurator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class javax.websocket.server.ServerEndpointConfig.Configurator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class javax.websocket.server.ServerEndpointConfig.Configurator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class javax.websocket.server.ServerEndpointConfig.Configurator (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class javax.websocket.server.ServerEndpointConfig.Configurator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpointConfig.html b/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpointConfig.html
index f7d2afcb..949e5aa0 100644
--- a/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpointConfig.html
+++ b/apidocs/latest1x/javax/websocket/server/class-use/ServerEndpointConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface javax.websocket.server.ServerEndpointConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface javax.websocket.server.ServerEndpointConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface javax.websocket.server.ServerEndpointConfig (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface javax.websocket.server.ServerEndpointConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/package-summary.html b/apidocs/latest1x/javax/websocket/server/package-summary.html
index 75fd7dce..257fbf72 100644
--- a/apidocs/latest1x/javax/websocket/server/package-summary.html
+++ b/apidocs/latest1x/javax/websocket/server/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>javax.websocket.server (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>javax.websocket.server (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="javax.websocket.server (Tyrus 1.19 API)";
+            parent.document.title="javax.websocket.server (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/package-tree.html b/apidocs/latest1x/javax/websocket/server/package-tree.html
index 195e96b2..aeef7035 100644
--- a/apidocs/latest1x/javax/websocket/server/package-tree.html
+++ b/apidocs/latest1x/javax/websocket/server/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>javax.websocket.server Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>javax.websocket.server Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="javax.websocket.server Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="javax.websocket.server Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/javax/websocket/server/package-use.html b/apidocs/latest1x/javax/websocket/server/package-use.html
index cedd5646..19d73043 100644
--- a/apidocs/latest1x/javax/websocket/server/package-use.html
+++ b/apidocs/latest1x/javax/websocket/server/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package javax.websocket.server (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package javax.websocket.server (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package javax.websocket.server (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package javax.websocket.server (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/member-search-index.zip b/apidocs/latest1x/member-search-index.zip
index f9c0259e..be34252e 100644
Binary files a/apidocs/latest1x/member-search-index.zip and b/apidocs/latest1x/member-search-index.zip differ
diff --git a/apidocs/latest1x/options b/apidocs/latest1x/options
index 2a97ff8a..22697340 100644
--- a/apidocs/latest1x/options
+++ b/apidocs/latest1x/options
@@ -1,5 +1,5 @@
 -classpath
-'/home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/ejb/target/tyrus-container-glassfish-ejb-1.19.jar:/home/jenkins/.m2/repository/javax/websocket/javax.websocket-api/1.1/javax.websocket-api-1.1.jar:/home/jenkins/.m2/repository/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar:/home/jenkins/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar:/home/jenkins/agent/workspace/documentation-update-after-release/spi/target/tyrus-spi-1.19.jar:/home/jenkins/.m2/repository/org/glassfish/grizzly/grizzly-http/2.4.4/grizzly-http-2.4.4.jar:/home/jenkins/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/home/jenkins/.m2/repository/javax/ejb/javax.ejb-api/3.2/javax.ejb-api-3.2.jar:/home/jenkins/agent/workspace/documentation-update-after-release/core/target/tyrus-core-1.19.jar:/home/jenkins/.m2/repository/javax/el/javax.el-api/3.0.0/javax.el-api-3.0.0.jar:/home/jenkins/.m2/repository/javax/transaction/javax.transaction-api/1.2/javax.transaction-api-1.2.jar:/home/jenkins/.m2/repository/javax/enterprise/cdi-api/1.2/cdi-api-1.2.jar:/home/jenkins/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.4.4/grizzly-http-server-2.4.4.jar:/home/jenkins/.m2/repository/javax/interceptor/javax.interceptor-api/1.2/javax.interceptor-api-1.2.jar:/home/jenkins/.m2/repository/org/osgi/org.osgi.core/4.2.0/org.osgi.core-4.2.0.jar:/home/jenkins/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.4.4/grizzly-framework-2.4.4.jar:/home/jenkins/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar'
+'/home/jenkins/agent/workspace/documentation-update-after-release/containers/glassfish/ejb/target/tyrus-container-glassfish-ejb-1.20.jar:/home/jenkins/.m2/repository/javax/websocket/javax.websocket-api/1.1/javax.websocket-api-1.1.jar:/home/jenkins/.m2/repository/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar:/home/jenkins/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar:/home/jenkins/agent/workspace/documentation-update-after-release/spi/target/tyrus-spi-1.20.jar:/home/jenkins/.m2/repository/org/glassfish/grizzly/grizzly-http/2.4.4/grizzly-http-2.4.4.jar:/home/jenkins/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/home/jenkins/.m2/repository/javax/ejb/javax.ejb-api/3.2/javax.ejb-api-3.2.jar:/home/jenkins/agent/workspace/documentation-update-after-release/core/target/tyrus-core-1.20.jar:/home/jenkins/.m2/repository/javax/el/javax.el-api/3.0.0/javax.el-api-3.0.0.jar:/home/jenkins/.m2/repository/javax/transaction/javax.transaction-api/1.2/javax.transaction-api-1.2.jar:/home/jenkins/.m2/repository/javax/enterprise/cdi-api/1.2/cdi-api-1.2.jar:/home/jenkins/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.4.4/grizzly-http-server-2.4.4.jar:/home/jenkins/.m2/repository/javax/interceptor/javax.interceptor-api/1.2/javax.interceptor-api-1.2.jar:/home/jenkins/.m2/repository/org/osgi/org.osgi.core/4.2.0/org.osgi.core-4.2.0.jar:/home/jenkins/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.4.4/grizzly-framework-2.4.4.jar:/home/jenkins/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar'
 -encoding
 'UTF-8'
 -protected
@@ -15,8 +15,8 @@
 -docencoding
 'UTF-8'
 -doctitle
-'Tyrus 1.19 API Documentation'
+'Tyrus 1.20 API Documentation'
 -use
 -version
 -windowtitle
-'Tyrus 1.19 API'
\ No newline at end of file
+'Tyrus 1.20 API'
\ No newline at end of file
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html b/apidocs/latest1x/org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html
index 38a5c0ae..ef006df0 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ClientManager.ReconnectHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientManager.ReconnectHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClientManager.ReconnectHandler (Tyrus 1.19 API)";
+            parent.document.title="ClientManager.ReconnectHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/ClientManager.html b/apidocs/latest1x/org/glassfish/tyrus/client/ClientManager.html
index ac34193e..1a99babb 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/ClientManager.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/ClientManager.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ClientManager (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientManager (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClientManager (Tyrus 1.19 API)";
+            parent.document.title="ClientManager (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/ClientProperties.html b/apidocs/latest1x/org/glassfish/tyrus/client/ClientProperties.html
index ab7424f7..02dfbd65 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/ClientProperties.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/ClientProperties.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ClientProperties (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientProperties (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClientProperties (Tyrus 1.19 API)";
+            parent.document.title="ClientProperties (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/RedirectException.html b/apidocs/latest1x/org/glassfish/tyrus/client/RedirectException.html
index 8d6dbf80..3de9f10b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/RedirectException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/RedirectException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>RedirectException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RedirectException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="RedirectException (Tyrus 1.19 API)";
+            parent.document.title="RedirectException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/RetryAfterException.html b/apidocs/latest1x/org/glassfish/tyrus/client/RetryAfterException.html
index 7a13040a..a401d5ac 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/RetryAfterException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/RetryAfterException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>RetryAfterException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RetryAfterException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="RetryAfterException (Tyrus 1.19 API)";
+            parent.document.title="RetryAfterException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/SslContextConfigurator.html b/apidocs/latest1x/org/glassfish/tyrus/client/SslContextConfigurator.html
index f437b53c..13f38de5 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/SslContextConfigurator.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/SslContextConfigurator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>SslContextConfigurator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SslContextConfigurator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="SslContextConfigurator (Tyrus 1.19 API)";
+            parent.document.title="SslContextConfigurator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/SslEngineConfigurator.html b/apidocs/latest1x/org/glassfish/tyrus/client/SslEngineConfigurator.html
index b14c49c9..3c49c404 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/SslEngineConfigurator.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/SslEngineConfigurator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>SslEngineConfigurator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SslEngineConfigurator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="SslEngineConfigurator (Tyrus 1.19 API)";
+            parent.document.title="SslEngineConfigurator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/ThreadPoolConfig.html b/apidocs/latest1x/org/glassfish/tyrus/client/ThreadPoolConfig.html
index ee4ce2f1..d066eb19 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/ThreadPoolConfig.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/ThreadPoolConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ThreadPoolConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ThreadPoolConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ThreadPoolConfig (Tyrus 1.19 API)";
+            parent.document.title="ThreadPoolConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html b/apidocs/latest1x/org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html
index 6514e585..367d03af 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusClientEngine.ClientHandshakeListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusClientEngine.ClientHandshakeListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusClientEngine.ClientHandshakeListener (Tyrus 1.19 API)";
+            parent.document.title="TyrusClientEngine.ClientHandshakeListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/TyrusClientEngine.html b/apidocs/latest1x/org/glassfish/tyrus/client/TyrusClientEngine.html
index b97cb027..796d06d8 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/TyrusClientEngine.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/TyrusClientEngine.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusClientEngine (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusClientEngine (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusClientEngine (Tyrus 1.19 API)";
+            parent.document.title="TyrusClientEngine (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/auth/AuthConfig.Builder.html b/apidocs/latest1x/org/glassfish/tyrus/client/auth/AuthConfig.Builder.html
index b9fb87d0..fd8ce635 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/auth/AuthConfig.Builder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/auth/AuthConfig.Builder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>AuthConfig.Builder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>AuthConfig.Builder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="AuthConfig.Builder (Tyrus 1.19 API)";
+            parent.document.title="AuthConfig.Builder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/auth/AuthConfig.html b/apidocs/latest1x/org/glassfish/tyrus/client/auth/AuthConfig.html
index cda6fa15..b88a6d4b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/auth/AuthConfig.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/auth/AuthConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>AuthConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>AuthConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="AuthConfig (Tyrus 1.19 API)";
+            parent.document.title="AuthConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/auth/AuthenticationException.html b/apidocs/latest1x/org/glassfish/tyrus/client/auth/AuthenticationException.html
index 09928e76..b6a5221a 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/auth/AuthenticationException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/auth/AuthenticationException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>AuthenticationException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>AuthenticationException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="AuthenticationException (Tyrus 1.19 API)";
+            parent.document.title="AuthenticationException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/auth/Authenticator.html b/apidocs/latest1x/org/glassfish/tyrus/client/auth/Authenticator.html
index 48519197..a848ff27 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/auth/Authenticator.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/auth/Authenticator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Authenticator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Authenticator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Authenticator (Tyrus 1.19 API)";
+            parent.document.title="Authenticator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/auth/Credentials.html b/apidocs/latest1x/org/glassfish/tyrus/client/auth/Credentials.html
index 1db33726..ea5153c9 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/auth/Credentials.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/auth/Credentials.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Credentials (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Credentials (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Credentials (Tyrus 1.19 API)";
+            parent.document.title="Credentials (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/AuthConfig.Builder.html b/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/AuthConfig.Builder.html
index bd21ef8c..dff6dd1b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/AuthConfig.Builder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/AuthConfig.Builder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.auth.AuthConfig.Builder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.auth.AuthConfig.Builder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.AuthConfig.Builder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.AuthConfig.Builder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/AuthConfig.html b/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/AuthConfig.html
index 0da5d5b8..54db8a78 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/AuthConfig.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/AuthConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.auth.AuthConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.auth.AuthConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.AuthConfig (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.AuthConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/AuthenticationException.html b/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/AuthenticationException.html
index 7adb4b6c..0be8f847 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/AuthenticationException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/AuthenticationException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.auth.AuthenticationException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.auth.AuthenticationException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.AuthenticationException (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.AuthenticationException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/Authenticator.html b/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/Authenticator.html
index 9867e42d..f231aaa4 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/Authenticator.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/Authenticator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.auth.Authenticator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.auth.Authenticator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.Authenticator (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.Authenticator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/Credentials.html b/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/Credentials.html
index b08e83fe..8461ded5 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/Credentials.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/auth/class-use/Credentials.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.auth.Credentials (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.auth.Credentials (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.Credentials (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.auth.Credentials (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/auth/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/client/auth/package-summary.html
index 52e086ec..69f93f97 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/auth/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/auth/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.client.auth (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.client.auth (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.client.auth (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.client.auth (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/auth/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/client/auth/package-tree.html
index c9ecc7f1..77521f4b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/auth/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/auth/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.client.auth Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.client.auth Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.client.auth Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.client.auth Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/auth/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/client/auth/package-use.html
index b77a72cd..6a96ac13 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/auth/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/auth/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.client.auth (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.client.auth (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.client.auth (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.client.auth (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ClientManager.ReconnectHandler.html b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ClientManager.ReconnectHandler.html
index 5cbf9602..051dafd4 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ClientManager.ReconnectHandler.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ClientManager.ReconnectHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.ClientManager.ReconnectHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.ClientManager.ReconnectHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.ClientManager.ReconnectHandler (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.ClientManager.ReconnectHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ClientManager.html b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ClientManager.html
index 7f1f6996..a3e4c9e7 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ClientManager.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ClientManager.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.ClientManager (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.ClientManager (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.ClientManager (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.ClientManager (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ClientProperties.html b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ClientProperties.html
index a117c84d..6aca543a 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ClientProperties.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ClientProperties.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.ClientProperties (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.ClientProperties (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.ClientProperties (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.ClientProperties (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/RedirectException.html b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/RedirectException.html
index bccac088..6d79d5d1 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/RedirectException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/RedirectException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.RedirectException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.RedirectException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.RedirectException (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.RedirectException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/RetryAfterException.html b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/RetryAfterException.html
index 701726b8..c465de0b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/RetryAfterException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/RetryAfterException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.RetryAfterException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.RetryAfterException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.RetryAfterException (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.RetryAfterException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/SslContextConfigurator.html b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/SslContextConfigurator.html
index 891857a0..6feb8a03 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/SslContextConfigurator.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/SslContextConfigurator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.SslContextConfigurator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.SslContextConfigurator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.SslContextConfigurator (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.SslContextConfigurator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/SslEngineConfigurator.html b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/SslEngineConfigurator.html
index 9eb547d8..e2e8a126 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/SslEngineConfigurator.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/SslEngineConfigurator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.SslEngineConfigurator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.SslEngineConfigurator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.SslEngineConfigurator (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.SslEngineConfigurator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ThreadPoolConfig.html b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ThreadPoolConfig.html
index 8e58f8d9..b3870623 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ThreadPoolConfig.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/ThreadPoolConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.ThreadPoolConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.ThreadPoolConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.ThreadPoolConfig (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.ThreadPoolConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/TyrusClientEngine.ClientHandshakeListener.html b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/TyrusClientEngine.ClientHandshakeListener.html
index c7ee0e83..d598de12 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/TyrusClientEngine.ClientHandshakeListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/TyrusClientEngine.ClientHandshakeListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.client.TyrusClientEngine.ClientHandshakeListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.client.TyrusClientEngine.ClientHandshakeListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.client.TyrusClientEngine.ClientHandshakeListener (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.client.TyrusClientEngine.ClientHandshakeListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/TyrusClientEngine.html b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/TyrusClientEngine.html
index ae263c86..857a1a44 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/class-use/TyrusClientEngine.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/class-use/TyrusClientEngine.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.client.TyrusClientEngine (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.client.TyrusClientEngine (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.client.TyrusClientEngine (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.client.TyrusClientEngine (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/client/package-summary.html
index 4d61f808..9eff6429 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.client (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.client (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.client (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.client (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/client/package-tree.html
index 0f1e8ecc..954ef2c5 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.client Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.client Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.client Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.client Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/client/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/client/package-use.html
index 85a32862..88bef269 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/client/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/client/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.client (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.client (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.client (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.client (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html
index 6bad1653..6881bb21 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>GrizzlyClientContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>GrizzlyClientContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="GrizzlyClientContainer (Tyrus 1.19 API)";
+            parent.document.title="GrizzlyClientContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html
index 93e6f832..b6cc2b7a 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>GrizzlyClientProperties (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>GrizzlyClientProperties (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="GrizzlyClientProperties (Tyrus 1.19 API)";
+            parent.document.title="GrizzlyClientProperties (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html
index eb6f2ba0..deddb3c4 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>GrizzlyClientSocket (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>GrizzlyClientSocket (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="GrizzlyClientSocket (Tyrus 1.19 API)";
+            parent.document.title="GrizzlyClientSocket (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html
index 3334ad99..f28a235f 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>GrizzlyContainerProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>GrizzlyContainerProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="GrizzlyContainerProvider (Tyrus 1.19 API)";
+            parent.document.title="GrizzlyContainerProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html
index 431f0caa..9d05dcc5 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>GrizzlyWriter (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>GrizzlyWriter (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="GrizzlyWriter (Tyrus 1.19 API)";
+            parent.document.title="GrizzlyWriter (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html
index 81b93020..f97bcfb8 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TaskProcessor.Condition (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TaskProcessor.Condition (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TaskProcessor.Condition (Tyrus 1.19 API)";
+            parent.document.title="TaskProcessor.Condition (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html
index ec3c263b..721f2a79 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TaskProcessor.Task (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TaskProcessor.Task (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TaskProcessor.Task (Tyrus 1.19 API)";
+            parent.document.title="TaskProcessor.Task (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html
index 40a2078c..c60af142 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TaskProcessor (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TaskProcessor (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TaskProcessor (Tyrus 1.19 API)";
+            parent.document.title="TaskProcessor (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientContainer.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientContainer.html
index 1ce9f668..0c961e23 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientContainer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientProperties.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientProperties.html
index cdeaffc2..fda7c6ff 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientProperties.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientProperties.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientProperties (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientSocket.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientSocket.html
index 65814114..118193df 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientSocket.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientSocket.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyContainerProvider.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyContainerProvider.html
index 84062a7a..6e907280 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyContainerProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyContainerProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyContainerProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyContainerProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyContainerProvider (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyContainerProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyWriter.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyWriter.html
index d3258edd..69551c6d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyWriter.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyWriter.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyWriter (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyWriter (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyWriter (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.GrizzlyWriter (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Condition.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Condition.html
index 2ec5c857..8093fe24 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Condition.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Condition.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Condition (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Condition (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Condition (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Condition (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Task.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Task.html
index 5cc1de7a..62a577b1 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Task.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Task.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor.Task (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.html
index 421c1590..75592e75 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.client.TaskProcessor (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/package-summary.html
index 11e1ea01..2515f708 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.container.grizzly.client (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.container.grizzly.client (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.container.grizzly.client (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.container.grizzly.client (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/package-tree.html
index 1a0c524a..e2fa6a3f 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.container.grizzly.client Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.container.grizzly.client Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.container.grizzly.client Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.container.grizzly.client Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/package-use.html
index 89f1ba52..be6ade96 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/client/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.container.grizzly.client (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.container.grizzly.client (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.container.grizzly.client (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.container.grizzly.client (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html
index b73d58f6..dfefbcdb 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>GrizzlyServerContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>GrizzlyServerContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="GrizzlyServerContainer (Tyrus 1.19 API)";
+            parent.document.title="GrizzlyServerContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html
index 3402ab09..04ff8a47 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>WebSocketAddOn (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WebSocketAddOn (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="WebSocketAddOn (Tyrus 1.19 API)";
+            parent.document.title="WebSocketAddOn (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/class-use/GrizzlyServerContainer.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/class-use/GrizzlyServerContainer.html
index fa38dc07..29788144 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/class-use/GrizzlyServerContainer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/class-use/GrizzlyServerContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.server.GrizzlyServerContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/class-use/WebSocketAddOn.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/class-use/WebSocketAddOn.html
index b14bc851..6716435f 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/class-use/WebSocketAddOn.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/class-use/WebSocketAddOn.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.container.grizzly.server.WebSocketAddOn (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.container.grizzly.server.WebSocketAddOn (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.server.WebSocketAddOn (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.container.grizzly.server.WebSocketAddOn (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/package-summary.html
index b3840ad7..1314c417 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.container.grizzly.server (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.container.grizzly.server (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.container.grizzly.server (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.container.grizzly.server (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/package-tree.html
index 82633388..bcaedb9f 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.container.grizzly.server Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.container.grizzly.server Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.container.grizzly.server Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.container.grizzly.server Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/package-use.html
index 501de5c0..06768826 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/container/grizzly/server/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.container.grizzly.server (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.container.grizzly.server (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.container.grizzly.server (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.container.grizzly.server (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/AnnotatedEndpoint.html b/apidocs/latest1x/org/glassfish/tyrus/core/AnnotatedEndpoint.html
index 55f3039a..b740dbca 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/AnnotatedEndpoint.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/AnnotatedEndpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>AnnotatedEndpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>AnnotatedEndpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="AnnotatedEndpoint (Tyrus 1.19 API)";
+            parent.document.title="AnnotatedEndpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html b/apidocs/latest1x/org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html
index 24063e7b..43e57082 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>BaseContainer.ShutDownCondition (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>BaseContainer.ShutDownCondition (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="BaseContainer.ShutDownCondition (Tyrus 1.19 API)";
+            parent.document.title="BaseContainer.ShutDownCondition (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/BaseContainer.html b/apidocs/latest1x/org/glassfish/tyrus/core/BaseContainer.html
index 2141c6eb..0f539f4a 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/BaseContainer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/BaseContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>BaseContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>BaseContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="BaseContainer (Tyrus 1.19 API)";
+            parent.document.title="BaseContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/Beta.html b/apidocs/latest1x/org/glassfish/tyrus/core/Beta.html
index 6b547151..b7538ad7 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/Beta.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/Beta.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Beta (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Beta (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Beta (Tyrus 1.19 API)";
+            parent.document.title="Beta (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/CloseReasons.html b/apidocs/latest1x/org/glassfish/tyrus/core/CloseReasons.html
index 8a5ebba1..42028295 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/CloseReasons.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/CloseReasons.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>CloseReasons (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CloseReasons (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CloseReasons (Tyrus 1.19 API)";
+            parent.document.title="CloseReasons (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ComponentProvider.html b/apidocs/latest1x/org/glassfish/tyrus/core/ComponentProvider.html
index 103e25eb..dce8ed2e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ComponentProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ComponentProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ComponentProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ComponentProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ComponentProvider (Tyrus 1.19 API)";
+            parent.document.title="ComponentProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ComponentProviderService.html b/apidocs/latest1x/org/glassfish/tyrus/core/ComponentProviderService.html
index 751c47e7..016d8ee1 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ComponentProviderService.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ComponentProviderService.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ComponentProviderService (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ComponentProviderService (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ComponentProviderService (Tyrus 1.19 API)";
+            parent.document.title="ComponentProviderService (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.TracingThreshold.html b/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.TracingThreshold.html
index 5288f020..b65a427c 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.TracingThreshold.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.TracingThreshold.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>DebugContext.TracingThreshold (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DebugContext.TracingThreshold (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="DebugContext.TracingThreshold (Tyrus 1.19 API)";
+            parent.document.title="DebugContext.TracingThreshold (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.TracingType.html b/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.TracingType.html
index b4d8ba13..a263100f 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.TracingType.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.TracingType.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>DebugContext.TracingType (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DebugContext.TracingType (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="DebugContext.TracingType (Tyrus 1.19 API)";
+            parent.document.title="DebugContext.TracingType (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.Type.html b/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.Type.html
index 8f4eb48d..116a964f 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.Type.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.Type.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>DebugContext.Type (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DebugContext.Type (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="DebugContext.Type (Tyrus 1.19 API)";
+            parent.document.title="DebugContext.Type (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.html b/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.html
index 018723ab..8a706536 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/DebugContext.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>DebugContext (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DebugContext (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="DebugContext (Tyrus 1.19 API)";
+            parent.document.title="DebugContext (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/DefaultComponentProvider.html b/apidocs/latest1x/org/glassfish/tyrus/core/DefaultComponentProvider.html
index 6a850bb0..8e43bb14 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/DefaultComponentProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/DefaultComponentProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>DefaultComponentProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DefaultComponentProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="DefaultComponentProvider (Tyrus 1.19 API)";
+            parent.document.title="DefaultComponentProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ErrorCollector.html b/apidocs/latest1x/org/glassfish/tyrus/core/ErrorCollector.html
index e9e250b6..02b13c30 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ErrorCollector.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ErrorCollector.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ErrorCollector (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ErrorCollector (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ErrorCollector (Tyrus 1.19 API)";
+            parent.document.title="ErrorCollector (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ExecutorServiceProvider.html b/apidocs/latest1x/org/glassfish/tyrus/core/ExecutorServiceProvider.html
index 84485658..4a0ac993 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ExecutorServiceProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ExecutorServiceProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ExecutorServiceProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ExecutorServiceProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ExecutorServiceProvider (Tyrus 1.19 API)";
+            parent.document.title="ExecutorServiceProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/Handshake.html b/apidocs/latest1x/org/glassfish/tyrus/core/Handshake.html
index 51a9e1b4..e284132e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/Handshake.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/Handshake.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Handshake (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Handshake (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Handshake (Tyrus 1.19 API)";
+            parent.document.title="Handshake (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/HandshakeException.html b/apidocs/latest1x/org/glassfish/tyrus/core/HandshakeException.html
index fd5e4c59..4540b972 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/HandshakeException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/HandshakeException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>HandshakeException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>HandshakeException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="HandshakeException (Tyrus 1.19 API)";
+            parent.document.title="HandshakeException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/MaskingKeyGenerator.html b/apidocs/latest1x/org/glassfish/tyrus/core/MaskingKeyGenerator.html
index 3271da10..7fccd3f8 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/MaskingKeyGenerator.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/MaskingKeyGenerator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>MaskingKeyGenerator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MaskingKeyGenerator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="MaskingKeyGenerator (Tyrus 1.19 API)";
+            parent.document.title="MaskingKeyGenerator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/MaxSessions.html b/apidocs/latest1x/org/glassfish/tyrus/core/MaxSessions.html
index c58c67d5..850fdbd2 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/MaxSessions.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/MaxSessions.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>MaxSessions (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MaxSessions (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="MaxSessions (Tyrus 1.19 API)";
+            parent.document.title="MaxSessions (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/MessageHandlerManager.html b/apidocs/latest1x/org/glassfish/tyrus/core/MessageHandlerManager.html
index cbd5aeca..6f775fea 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/MessageHandlerManager.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/MessageHandlerManager.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>MessageHandlerManager (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MessageHandlerManager (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="MessageHandlerManager (Tyrus 1.19 API)";
+            parent.document.title="MessageHandlerManager (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/OsgiRegistry.html b/apidocs/latest1x/org/glassfish/tyrus/core/OsgiRegistry.html
index 7f4ea19f..0336e258 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/OsgiRegistry.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/OsgiRegistry.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>OsgiRegistry (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>OsgiRegistry (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="OsgiRegistry (Tyrus 1.19 API)";
+            parent.document.title="OsgiRegistry (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ProtocolException.html b/apidocs/latest1x/org/glassfish/tyrus/core/ProtocolException.html
index 11eca4cb..749110f5 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ProtocolException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ProtocolException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ProtocolException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ProtocolException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ProtocolException (Tyrus 1.19 API)";
+            parent.document.title="ProtocolException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ProtocolHandler.html b/apidocs/latest1x/org/glassfish/tyrus/core/ProtocolHandler.html
index ff180396..5390c29d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ProtocolHandler.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ProtocolHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ProtocolHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ProtocolHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ProtocolHandler (Tyrus 1.19 API)";
+            parent.document.title="ProtocolHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html b/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html
index c99918d4..b88a713d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ReflectionHelper.ClassTypePair (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ReflectionHelper.ClassTypePair (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ReflectionHelper.ClassTypePair (Tyrus 1.19 API)";
+            parent.document.title="ReflectionHelper.ClassTypePair (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html b/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html
index 81416b10..45fa650e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ReflectionHelper.DeclaringClassInterfacePair (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ReflectionHelper.DeclaringClassInterfacePair (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ReflectionHelper.DeclaringClassInterfacePair (Tyrus 1.19 API)";
+            parent.document.title="ReflectionHelper.DeclaringClassInterfacePair (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html b/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html
index c9ffbffa..1025f946 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ReflectionHelper.TypeClassPair (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ReflectionHelper.TypeClassPair (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ReflectionHelper.TypeClassPair (Tyrus 1.19 API)";
+            parent.document.title="ReflectionHelper.TypeClassPair (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.html b/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.html
index 9f28db7e..b5ed7b04 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ReflectionHelper.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ReflectionHelper (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ReflectionHelper (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ReflectionHelper (Tyrus 1.19 API)";
+            parent.document.title="ReflectionHelper (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html b/apidocs/latest1x/org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html
index 2fab7222..99364c1a 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>RequestContext.Builder.IsUserInRoleDelegate (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RequestContext.Builder.IsUserInRoleDelegate (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="RequestContext.Builder.IsUserInRoleDelegate (Tyrus 1.19 API)";
+            parent.document.title="RequestContext.Builder.IsUserInRoleDelegate (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/RequestContext.Builder.html b/apidocs/latest1x/org/glassfish/tyrus/core/RequestContext.Builder.html
index d2bfd1ac..4f585a55 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/RequestContext.Builder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/RequestContext.Builder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>RequestContext.Builder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RequestContext.Builder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="RequestContext.Builder (Tyrus 1.19 API)";
+            parent.document.title="RequestContext.Builder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/RequestContext.html b/apidocs/latest1x/org/glassfish/tyrus/core/RequestContext.html
index 88a5efdb..82eb99f2 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/RequestContext.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/RequestContext.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>RequestContext (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RequestContext (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="RequestContext (Tyrus 1.19 API)";
+            parent.document.title="RequestContext (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ServiceConfigurationError.html b/apidocs/latest1x/org/glassfish/tyrus/core/ServiceConfigurationError.html
index eccea14f..518006ce 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ServiceConfigurationError.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ServiceConfigurationError.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ServiceConfigurationError (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServiceConfigurationError (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServiceConfigurationError (Tyrus 1.19 API)";
+            parent.document.title="ServiceConfigurationError (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html b/apidocs/latest1x/org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html
index 6e7e0c48..9c86efef 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ServiceFinder.DefaultServiceIteratorProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServiceFinder.DefaultServiceIteratorProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServiceFinder.DefaultServiceIteratorProvider (Tyrus 1.19 API)";
+            parent.document.title="ServiceFinder.DefaultServiceIteratorProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html b/apidocs/latest1x/org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html
index 91c9ac91..44ff1c3a 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ServiceFinder.ServiceIteratorProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServiceFinder.ServiceIteratorProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServiceFinder.ServiceIteratorProvider (Tyrus 1.19 API)";
+            parent.document.title="ServiceFinder.ServiceIteratorProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/ServiceFinder.html b/apidocs/latest1x/org/glassfish/tyrus/core/ServiceFinder.html
index 9b3d478a..fd606111 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/ServiceFinder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/ServiceFinder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ServiceFinder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServiceFinder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServiceFinder (Tyrus 1.19 API)";
+            parent.document.title="ServiceFinder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/StrictUtf8.Parser.html b/apidocs/latest1x/org/glassfish/tyrus/core/StrictUtf8.Parser.html
index 3fb715e9..04a94b44 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/StrictUtf8.Parser.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/StrictUtf8.Parser.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>StrictUtf8.Parser (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>StrictUtf8.Parser (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="StrictUtf8.Parser (Tyrus 1.19 API)";
+            parent.document.title="StrictUtf8.Parser (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/StrictUtf8.html b/apidocs/latest1x/org/glassfish/tyrus/core/StrictUtf8.html
index 87e37a58..2e4af7f8 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/StrictUtf8.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/StrictUtf8.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>StrictUtf8 (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>StrictUtf8 (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="StrictUtf8 (Tyrus 1.19 API)";
+            parent.document.title="StrictUtf8 (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html
index 772dfb2e..9515e6ad 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusEndpointWrapper.SessionListener.OnOpenResult (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusEndpointWrapper.SessionListener.OnOpenResult (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusEndpointWrapper.SessionListener.OnOpenResult (Tyrus 1.19 API)";
+            parent.document.title="TyrusEndpointWrapper.SessionListener.OnOpenResult (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html
index b55fc6d9..d5de310d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusEndpointWrapper.SessionListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusEndpointWrapper.SessionListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusEndpointWrapper.SessionListener (Tyrus 1.19 API)";
+            parent.document.title="TyrusEndpointWrapper.SessionListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusEndpointWrapper.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusEndpointWrapper.html
index 73730572..55490fd9 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusEndpointWrapper.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusEndpointWrapper.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusEndpointWrapper (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusEndpointWrapper (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusEndpointWrapper (Tyrus 1.19 API)";
+            parent.document.title="TyrusEndpointWrapper (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html
index 1aaa946d..6d396bc5 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusExtension.TyrusParameter (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusExtension.TyrusParameter (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusExtension.TyrusParameter (Tyrus 1.19 API)";
+            parent.document.title="TyrusExtension.TyrusParameter (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusExtension.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusExtension.html
index aab3f946..20bceed2 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusExtension.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusExtension.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusExtension (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusExtension (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusExtension (Tyrus 1.19 API)";
+            parent.document.title="TyrusExtension (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusFuture.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusFuture.html
index 2a859b86..1d791b13 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusFuture.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusFuture.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusFuture (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusFuture (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusFuture (Tyrus 1.19 API)";
+            parent.document.title="TyrusFuture (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusRemoteEndpoint.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusRemoteEndpoint.html
index 670959fc..c8aa3d4d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusRemoteEndpoint.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusRemoteEndpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusRemoteEndpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusRemoteEndpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusRemoteEndpoint (Tyrus 1.19 API)";
+            parent.document.title="TyrusRemoteEndpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html
index 01745cb6..c6526705 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusServerEndpointConfig.Builder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusServerEndpointConfig.Builder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusServerEndpointConfig.Builder (Tyrus 1.19 API)";
+            parent.document.title="TyrusServerEndpointConfig.Builder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusServerEndpointConfig.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusServerEndpointConfig.html
index a4c0409a..5baf3e7a 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusServerEndpointConfig.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusServerEndpointConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusServerEndpointConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusServerEndpointConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusServerEndpointConfig (Tyrus 1.19 API)";
+            parent.document.title="TyrusServerEndpointConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html
index b9eacbf5..84b267cc 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusServerEndpointConfigurator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusServerEndpointConfigurator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusServerEndpointConfigurator (Tyrus 1.19 API)";
+            parent.document.title="TyrusServerEndpointConfigurator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusSession.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusSession.html
index 2c64023b..01b99063 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusSession.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusSession.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusSession (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusSession (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusSession (Tyrus 1.19 API)";
+            parent.document.title="TyrusSession (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusUpgradeResponse.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusUpgradeResponse.html
index 5522122d..f55d9e93 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusUpgradeResponse.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusUpgradeResponse.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusUpgradeResponse (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusUpgradeResponse (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusUpgradeResponse (Tyrus 1.19 API)";
+            parent.document.title="TyrusUpgradeResponse (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusWebSocket.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusWebSocket.html
index 529c08c9..3125066b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusWebSocket.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusWebSocket.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusWebSocket (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusWebSocket (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusWebSocket (Tyrus 1.19 API)";
+            parent.document.title="TyrusWebSocket (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html
index 75b3f150..e4963051 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusWebSocketEngine.TyrusWebSocketEngineBuilder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusWebSocketEngine.TyrusWebSocketEngineBuilder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder (Tyrus 1.19 API)";
+            parent.document.title="TyrusWebSocketEngine.TyrusWebSocketEngineBuilder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusWebSocketEngine.html b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusWebSocketEngine.html
index cbea5505..7f0ac694 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/TyrusWebSocketEngine.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/TyrusWebSocketEngine.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusWebSocketEngine (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusWebSocketEngine (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusWebSocketEngine (Tyrus 1.19 API)";
+            parent.document.title="TyrusWebSocketEngine (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/Utf8DecodingException.html b/apidocs/latest1x/org/glassfish/tyrus/core/Utf8DecodingException.html
index 8a65aa61..b4069ffd 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/Utf8DecodingException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/Utf8DecodingException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Utf8DecodingException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Utf8DecodingException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Utf8DecodingException (Tyrus 1.19 API)";
+            parent.document.title="Utf8DecodingException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/Utils.Stringifier.html b/apidocs/latest1x/org/glassfish/tyrus/core/Utils.Stringifier.html
index 72773793..4f480b38 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/Utils.Stringifier.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/Utils.Stringifier.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Utils.Stringifier (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Utils.Stringifier (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Utils.Stringifier (Tyrus 1.19 API)";
+            parent.document.title="Utils.Stringifier (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/Utils.html b/apidocs/latest1x/org/glassfish/tyrus/core/Utils.html
index a5ee909b..ec3c8a85 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/Utils.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/Utils.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Utils (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Utils (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Utils (Tyrus 1.19 API)";
+            parent.document.title="Utils (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/Version.html b/apidocs/latest1x/org/glassfish/tyrus/core/Version.html
index 0f0138e7..3499a3d6 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/Version.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/Version.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Version (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Version (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Version (Tyrus 1.19 API)";
+            parent.document.title="Version (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/WebSocketException.html b/apidocs/latest1x/org/glassfish/tyrus/core/WebSocketException.html
index e175fb31..bde3b6ce 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/WebSocketException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/WebSocketException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>WebSocketException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WebSocketException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="WebSocketException (Tyrus 1.19 API)";
+            parent.document.title="WebSocketException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/AnnotatedEndpoint.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/AnnotatedEndpoint.html
index bc833739..d2309678 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/AnnotatedEndpoint.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/AnnotatedEndpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.AnnotatedEndpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.AnnotatedEndpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.AnnotatedEndpoint (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.AnnotatedEndpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/BaseContainer.ShutDownCondition.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/BaseContainer.ShutDownCondition.html
index 62522816..1d27913d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/BaseContainer.ShutDownCondition.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/BaseContainer.ShutDownCondition.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.BaseContainer.ShutDownCondition (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.BaseContainer.ShutDownCondition (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.BaseContainer.ShutDownCondition (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.BaseContainer.ShutDownCondition (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/BaseContainer.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/BaseContainer.html
index 5f2a7a72..67b40950 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/BaseContainer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/BaseContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.BaseContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.BaseContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.BaseContainer (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.BaseContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Beta.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Beta.html
index e6614cb0..8ce4a1bf 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Beta.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Beta.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.Beta (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.Beta (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.Beta (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.Beta (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/CloseReasons.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/CloseReasons.html
index 498d24ff..8e613f4e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/CloseReasons.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/CloseReasons.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.CloseReasons (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.CloseReasons (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.CloseReasons (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.CloseReasons (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ComponentProvider.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ComponentProvider.html
index 9d3a708f..ab52a526 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ComponentProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ComponentProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ComponentProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ComponentProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ComponentProvider (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ComponentProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ComponentProviderService.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ComponentProviderService.html
index 5de6cb69..e7912c18 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ComponentProviderService.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ComponentProviderService.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ComponentProviderService (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ComponentProviderService (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ComponentProviderService (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ComponentProviderService (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.TracingThreshold.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.TracingThreshold.html
index bafe8008..05a51ae3 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.TracingThreshold.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.TracingThreshold.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.DebugContext.TracingThreshold (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.DebugContext.TracingThreshold (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.DebugContext.TracingThreshold (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.DebugContext.TracingThreshold (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.TracingType.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.TracingType.html
index 6a4f94f0..b8f59817 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.TracingType.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.TracingType.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.DebugContext.TracingType (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.DebugContext.TracingType (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.DebugContext.TracingType (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.DebugContext.TracingType (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.Type.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.Type.html
index c9f09e12..fb8a9869 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.Type.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.Type.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.DebugContext.Type (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.DebugContext.Type (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.DebugContext.Type (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.DebugContext.Type (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.html
index cb9942ac..06089ddb 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DebugContext.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.DebugContext (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.DebugContext (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.DebugContext (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.DebugContext (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DefaultComponentProvider.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DefaultComponentProvider.html
index 6bdace78..5919f4d8 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DefaultComponentProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/DefaultComponentProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.DefaultComponentProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.DefaultComponentProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.DefaultComponentProvider (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.DefaultComponentProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ErrorCollector.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ErrorCollector.html
index 89647415..47602bcd 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ErrorCollector.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ErrorCollector.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ErrorCollector (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ErrorCollector (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ErrorCollector (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ErrorCollector (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ExecutorServiceProvider.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ExecutorServiceProvider.html
index 63b719fa..07120f2c 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ExecutorServiceProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ExecutorServiceProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ExecutorServiceProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ExecutorServiceProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ExecutorServiceProvider (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ExecutorServiceProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Handshake.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Handshake.html
index 115002fe..c81e8507 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Handshake.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Handshake.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.Handshake (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.Handshake (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.Handshake (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.Handshake (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/HandshakeException.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/HandshakeException.html
index 8318d58b..8019c63e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/HandshakeException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/HandshakeException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.HandshakeException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.HandshakeException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.HandshakeException (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.HandshakeException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/MaskingKeyGenerator.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/MaskingKeyGenerator.html
index 7962add3..7d9bacab 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/MaskingKeyGenerator.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/MaskingKeyGenerator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.MaskingKeyGenerator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.MaskingKeyGenerator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.MaskingKeyGenerator (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.MaskingKeyGenerator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/MaxSessions.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/MaxSessions.html
index 8ec39fc4..9915ceb0 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/MaxSessions.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/MaxSessions.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.MaxSessions (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.MaxSessions (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.MaxSessions (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.MaxSessions (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/MessageHandlerManager.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/MessageHandlerManager.html
index dcbd4df6..224271d4 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/MessageHandlerManager.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/MessageHandlerManager.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.MessageHandlerManager (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.MessageHandlerManager (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.MessageHandlerManager (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.MessageHandlerManager (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/OsgiRegistry.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/OsgiRegistry.html
index a93b04db..bc02d454 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/OsgiRegistry.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/OsgiRegistry.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.OsgiRegistry (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.OsgiRegistry (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.OsgiRegistry (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.OsgiRegistry (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ProtocolException.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ProtocolException.html
index 481942fd..330391e4 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ProtocolException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ProtocolException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ProtocolException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ProtocolException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ProtocolException (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ProtocolException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ProtocolHandler.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ProtocolHandler.html
index 37206eb0..2e628e8f 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ProtocolHandler.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ProtocolHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ProtocolHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ProtocolHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ProtocolHandler (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ProtocolHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.ClassTypePair.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.ClassTypePair.html
index 6ff45237..77bb3ad1 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.ClassTypePair.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.ClassTypePair.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ReflectionHelper.ClassTypePair (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ReflectionHelper.ClassTypePair (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper.ClassTypePair (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper.ClassTypePair (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.DeclaringClassInterfacePair.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.DeclaringClassInterfacePair.html
index 98cfee78..10903998 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.DeclaringClassInterfacePair.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.DeclaringClassInterfacePair.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper.DeclaringClassInterfacePair (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.TypeClassPair.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.TypeClassPair.html
index 65690c07..bc90761e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.TypeClassPair.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.TypeClassPair.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ReflectionHelper.TypeClassPair (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ReflectionHelper.TypeClassPair (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper.TypeClassPair (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper.TypeClassPair (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.html
index 1c18e0b4..f8fff484 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ReflectionHelper.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ReflectionHelper (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ReflectionHelper (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ReflectionHelper (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/RequestContext.Builder.IsUserInRoleDelegate.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/RequestContext.Builder.IsUserInRoleDelegate.html
index 25267b46..24bf6167 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/RequestContext.Builder.IsUserInRoleDelegate.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/RequestContext.Builder.IsUserInRoleDelegate.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.RequestContext.Builder.IsUserInRoleDelegate (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/RequestContext.Builder.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/RequestContext.Builder.html
index 8eb9d530..c30bb091 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/RequestContext.Builder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/RequestContext.Builder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.RequestContext.Builder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.RequestContext.Builder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.RequestContext.Builder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.RequestContext.Builder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/RequestContext.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/RequestContext.html
index 7ec9db1e..0e298d07 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/RequestContext.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/RequestContext.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.RequestContext (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.RequestContext (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.RequestContext (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.RequestContext (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceConfigurationError.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceConfigurationError.html
index d0b593e6..529a30ef 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceConfigurationError.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceConfigurationError.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ServiceConfigurationError (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ServiceConfigurationError (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ServiceConfigurationError (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ServiceConfigurationError (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceFinder.DefaultServiceIteratorProvider.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceFinder.DefaultServiceIteratorProvider.html
index 91e1756f..16d98df8 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceFinder.DefaultServiceIteratorProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceFinder.DefaultServiceIteratorProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ServiceFinder.DefaultServiceIteratorProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ServiceFinder.DefaultServiceIteratorProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ServiceFinder.DefaultServiceIteratorProvider (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ServiceFinder.DefaultServiceIteratorProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceFinder.ServiceIteratorProvider.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceFinder.ServiceIteratorProvider.html
index fd445478..fd3ea1f9 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceFinder.ServiceIteratorProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceFinder.ServiceIteratorProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ServiceFinder.ServiceIteratorProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceFinder.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceFinder.html
index f7dbe533..a2cfc871 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceFinder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/ServiceFinder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.ServiceFinder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.ServiceFinder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.ServiceFinder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.ServiceFinder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/StrictUtf8.Parser.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/StrictUtf8.Parser.html
index 72e6b676..16fa1748 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/StrictUtf8.Parser.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/StrictUtf8.Parser.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.StrictUtf8.Parser (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.StrictUtf8.Parser (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.StrictUtf8.Parser (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.StrictUtf8.Parser (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/StrictUtf8.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/StrictUtf8.html
index 68c0b5b7..4b243d5b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/StrictUtf8.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/StrictUtf8.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.StrictUtf8 (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.StrictUtf8 (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.StrictUtf8 (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.StrictUtf8 (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.OnOpenResult.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.OnOpenResult.html
index 06f492ed..46cd516c 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.OnOpenResult.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.OnOpenResult.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener.OnOpenResult (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener.OnOpenResult (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener.OnOpenResult (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener.OnOpenResult (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.html
index 3f6fcbc7..e062ed27 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper.SessionListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.html
index eb30dcbb..22df7ce7 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusEndpointWrapper (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusExtension.TyrusParameter.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusExtension.TyrusParameter.html
index 97d6edd1..ea8943f3 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusExtension.TyrusParameter.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusExtension.TyrusParameter.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusExtension.TyrusParameter (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusExtension.TyrusParameter (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusExtension.TyrusParameter (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusExtension.TyrusParameter (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusExtension.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusExtension.html
index b3834732..1f813e11 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusExtension.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusExtension.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusExtension (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusExtension (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusExtension (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusExtension (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusFuture.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusFuture.html
index 6e98d8ae..1b6a0a30 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusFuture.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusFuture.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusFuture (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusFuture (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusFuture (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusFuture (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusRemoteEndpoint.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusRemoteEndpoint.html
index 023c043a..cd6d9688 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusRemoteEndpoint.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusRemoteEndpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusRemoteEndpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusRemoteEndpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusRemoteEndpoint (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusRemoteEndpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.Builder.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.Builder.html
index 4aa23ed9..c19196c6 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.Builder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.Builder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfig.Builder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfig.Builder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfig.Builder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfig.Builder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.html
index bce32df1..916401aa 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.TyrusServerEndpointConfig (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.TyrusServerEndpointConfig (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.TyrusServerEndpointConfig (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.TyrusServerEndpointConfig (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfigurator.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfigurator.html
index a66823c3..e2cb0946 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfigurator.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfigurator.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfigurator (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfigurator (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfigurator (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusServerEndpointConfigurator (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusSession.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusSession.html
index fdb1f1be..e8456255 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusSession.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusSession.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusSession (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusSession (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusSession (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusSession (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusUpgradeResponse.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusUpgradeResponse.html
index 4e413ce3..941a6975 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusUpgradeResponse.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusUpgradeResponse.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusUpgradeResponse (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusUpgradeResponse (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusUpgradeResponse (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusUpgradeResponse (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusWebSocket.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusWebSocket.html
index 4de117ba..22469503 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusWebSocket.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusWebSocket.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusWebSocket (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusWebSocket (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusWebSocket (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusWebSocket (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html
index bda250b0..662e0cc2 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine.TyrusWebSocketEngineBuilder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine.TyrusWebSocketEngineBuilder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine.TyrusWebSocketEngineBuilder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine.TyrusWebSocketEngineBuilder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.html
index da318adb..21383aeb 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.TyrusWebSocketEngine (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Utf8DecodingException.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Utf8DecodingException.html
index ea3c6b88..8a31eb98 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Utf8DecodingException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Utf8DecodingException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.Utf8DecodingException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.Utf8DecodingException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.Utf8DecodingException (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.Utf8DecodingException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Utils.Stringifier.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Utils.Stringifier.html
index a19fdc72..c6fa6523 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Utils.Stringifier.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Utils.Stringifier.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.Utils.Stringifier (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.Utils.Stringifier (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.Utils.Stringifier (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.Utils.Stringifier (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Utils.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Utils.html
index e30b6931..78a78076 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Utils.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Utils.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.Utils (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.Utils (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.Utils (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.Utils (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Version.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Version.html
index be1474b3..5586a441 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Version.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/Version.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.Version (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.Version (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.Version (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.Version (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/WebSocketException.html b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/WebSocketException.html
index 69180cfd..b326314e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/class-use/WebSocketException.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/class-use/WebSocketException.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.WebSocketException (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.WebSocketException (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.WebSocketException (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.WebSocketException (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/BroadcastListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/BroadcastListener.html
index 0a109fb9..15e7a4ae 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/BroadcastListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/BroadcastListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>BroadcastListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>BroadcastListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="BroadcastListener (Tyrus 1.19 API)";
+            parent.document.title="BroadcastListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/ClusterContext.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/ClusterContext.html
index 0171992d..40e798e8 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/ClusterContext.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/ClusterContext.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ClusterContext (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClusterContext (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClusterContext (Tyrus 1.19 API)";
+            parent.document.title="ClusterContext (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/DistributedSession.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/DistributedSession.html
index c0e8606f..1bd1930a 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/DistributedSession.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/DistributedSession.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>DistributedSession (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>DistributedSession (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="DistributedSession (Tyrus 1.19 API)";
+            parent.document.title="DistributedSession (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html
index 0350251a..c24aa3b4 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>RemoteSession.DistributedMapKey (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RemoteSession.DistributedMapKey (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="RemoteSession.DistributedMapKey (Tyrus 1.19 API)";
+            parent.document.title="RemoteSession.DistributedMapKey (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/RemoteSession.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/RemoteSession.html
index aec9855f..241ff808 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/RemoteSession.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/RemoteSession.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>RemoteSession (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>RemoteSession (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="RemoteSession (Tyrus 1.19 API)";
+            parent.document.title="RemoteSession (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/SessionEventListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/SessionEventListener.html
index a9aab311..3824a69e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/SessionEventListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/SessionEventListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>SessionEventListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SessionEventListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="SessionEventListener (Tyrus 1.19 API)";
+            parent.document.title="SessionEventListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/SessionListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/SessionListener.html
index 5092ae82..3abf6e05 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/SessionListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/SessionListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>SessionListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>SessionListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="SessionListener (Tyrus 1.19 API)";
+            parent.document.title="SessionListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/BroadcastListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/BroadcastListener.html
index aac73629..3b3adc06 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/BroadcastListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/BroadcastListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.cluster.BroadcastListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.cluster.BroadcastListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.cluster.BroadcastListener (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.cluster.BroadcastListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/ClusterContext.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/ClusterContext.html
index 9b9406c9..d9ad9755 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/ClusterContext.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/ClusterContext.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.cluster.ClusterContext (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.cluster.ClusterContext (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.cluster.ClusterContext (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.cluster.ClusterContext (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/DistributedSession.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/DistributedSession.html
index 0909dde4..70512f72 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/DistributedSession.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/DistributedSession.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.cluster.DistributedSession (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.cluster.DistributedSession (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.cluster.DistributedSession (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.cluster.DistributedSession (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.DistributedMapKey.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.DistributedMapKey.html
index 367ba693..b5f5c230 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.DistributedMapKey.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.DistributedMapKey.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession.DistributedMapKey (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession.DistributedMapKey (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession.DistributedMapKey (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession.DistributedMapKey (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.html
index b9cba79a..b71413e4 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.cluster.RemoteSession (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/SessionEventListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/SessionEventListener.html
index d0c8def6..b54b2215 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/SessionEventListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/SessionEventListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.cluster.SessionEventListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.cluster.SessionEventListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.cluster.SessionEventListener (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.cluster.SessionEventListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/SessionListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/SessionListener.html
index 903b95a0..2e337296 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/SessionListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/class-use/SessionListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.cluster.SessionListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.cluster.SessionListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.cluster.SessionListener (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.cluster.SessionListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/package-summary.html
index 679735fa..3e2a869e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.cluster (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.cluster (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.cluster (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.cluster (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/package-tree.html
index f36e87cb..ac4ff704 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.cluster Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.cluster Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.cluster Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.cluster Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/package-use.html
index 056ec328..7afe4779 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/cluster/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/cluster/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.core.cluster (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.cluster (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.core.cluster (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.cluster (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/CoderAdapter.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/CoderAdapter.html
index 7023bdb6..7da3d2a0 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/CoderAdapter.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/CoderAdapter.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>CoderAdapter (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CoderAdapter (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CoderAdapter (Tyrus 1.19 API)";
+            parent.document.title="CoderAdapter (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/CoderWrapper.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/CoderWrapper.html
index ea044ec5..d6e55a4e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/CoderWrapper.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/CoderWrapper.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>CoderWrapper (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CoderWrapper (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CoderWrapper (Tyrus 1.19 API)";
+            parent.document.title="CoderWrapper (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/InputStreamDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/InputStreamDecoder.html
index e8e68bcf..0f288847 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/InputStreamDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/InputStreamDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>InputStreamDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>InputStreamDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="InputStreamDecoder (Tyrus 1.19 API)";
+            parent.document.title="InputStreamDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html
index 71340c84..93aa3f54 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>NoOpByteArrayCoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>NoOpByteArrayCoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="NoOpByteArrayCoder (Tyrus 1.19 API)";
+            parent.document.title="NoOpByteArrayCoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html
index 03f48205..9a2662dc 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>NoOpByteBufferCoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>NoOpByteBufferCoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="NoOpByteBufferCoder (Tyrus 1.19 API)";
+            parent.document.title="NoOpByteBufferCoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/NoOpTextCoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/NoOpTextCoder.html
index ce730ed8..923eee22 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/NoOpTextCoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/NoOpTextCoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>NoOpTextCoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>NoOpTextCoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="NoOpTextCoder (Tyrus 1.19 API)";
+            parent.document.title="NoOpTextCoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html
index 78402656..65743bea 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PrimitiveDecoders.BooleanDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.BooleanDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PrimitiveDecoders.BooleanDecoder (Tyrus 1.19 API)";
+            parent.document.title="PrimitiveDecoders.BooleanDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html
index bf37e20f..6b13ed24 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PrimitiveDecoders.ByteDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.ByteDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PrimitiveDecoders.ByteDecoder (Tyrus 1.19 API)";
+            parent.document.title="PrimitiveDecoders.ByteDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html
index 84360811..f897b827 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PrimitiveDecoders.CharacterDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.CharacterDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PrimitiveDecoders.CharacterDecoder (Tyrus 1.19 API)";
+            parent.document.title="PrimitiveDecoders.CharacterDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html
index f4cf8b4b..714f1161 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PrimitiveDecoders.DoubleDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.DoubleDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PrimitiveDecoders.DoubleDecoder (Tyrus 1.19 API)";
+            parent.document.title="PrimitiveDecoders.DoubleDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html
index 4026975d..4b15d1ca 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PrimitiveDecoders.FloatDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.FloatDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PrimitiveDecoders.FloatDecoder (Tyrus 1.19 API)";
+            parent.document.title="PrimitiveDecoders.FloatDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html
index a9665809..d2bb97a9 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PrimitiveDecoders.IntegerDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.IntegerDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PrimitiveDecoders.IntegerDecoder (Tyrus 1.19 API)";
+            parent.document.title="PrimitiveDecoders.IntegerDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html
index f13a4ee7..126aebc1 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PrimitiveDecoders.LongDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.LongDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PrimitiveDecoders.LongDecoder (Tyrus 1.19 API)";
+            parent.document.title="PrimitiveDecoders.LongDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html
index 6bf8ba1f..299bd83c 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PrimitiveDecoders.ShortDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders.ShortDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PrimitiveDecoders.ShortDecoder (Tyrus 1.19 API)";
+            parent.document.title="PrimitiveDecoders.ShortDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.html
index 4d34c63c..1426ae82 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/PrimitiveDecoders.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PrimitiveDecoders (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PrimitiveDecoders (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PrimitiveDecoders (Tyrus 1.19 API)";
+            parent.document.title="PrimitiveDecoders (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/ReaderDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/ReaderDecoder.html
index c728b79d..16cdf262 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/ReaderDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/ReaderDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ReaderDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ReaderDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ReaderDecoder (Tyrus 1.19 API)";
+            parent.document.title="ReaderDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/ToStringEncoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/ToStringEncoder.html
index 701035dd..a04157a3 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/ToStringEncoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/ToStringEncoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ToStringEncoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ToStringEncoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ToStringEncoder (Tyrus 1.19 API)";
+            parent.document.title="ToStringEncoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/CoderAdapter.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/CoderAdapter.html
index 1f13a971..9ba022d7 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/CoderAdapter.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/CoderAdapter.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.CoderAdapter (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.CoderAdapter (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.CoderAdapter (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.CoderAdapter (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/CoderWrapper.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/CoderWrapper.html
index 112f393e..3d5cb29b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/CoderWrapper.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/CoderWrapper.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.CoderWrapper (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.CoderWrapper (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.CoderWrapper (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.CoderWrapper (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/InputStreamDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/InputStreamDecoder.html
index 6adc6f9d..f91b4196 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/InputStreamDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/InputStreamDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.InputStreamDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.InputStreamDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.InputStreamDecoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.InputStreamDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/NoOpByteArrayCoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/NoOpByteArrayCoder.html
index 24349d9b..39555839 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/NoOpByteArrayCoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/NoOpByteArrayCoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.NoOpByteArrayCoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.NoOpByteArrayCoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.NoOpByteArrayCoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.NoOpByteArrayCoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/NoOpByteBufferCoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/NoOpByteBufferCoder.html
index 24838085..d749a75c 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/NoOpByteBufferCoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/NoOpByteBufferCoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.NoOpByteBufferCoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.NoOpByteBufferCoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.NoOpByteBufferCoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.NoOpByteBufferCoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/NoOpTextCoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/NoOpTextCoder.html
index 9afcc2fd..e8fd7abb 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/NoOpTextCoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/NoOpTextCoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.NoOpTextCoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.NoOpTextCoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.NoOpTextCoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.NoOpTextCoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.BooleanDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.BooleanDecoder.html
index ca3a6a8e..0f636ece 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.BooleanDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.BooleanDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.BooleanDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.BooleanDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.BooleanDecoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.BooleanDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ByteDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ByteDecoder.html
index aaa9c5b2..21f580dc 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ByteDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ByteDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ByteDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ByteDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ByteDecoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ByteDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.CharacterDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.CharacterDecoder.html
index bb20d7d2..22b7fea8 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.CharacterDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.CharacterDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.CharacterDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.CharacterDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.CharacterDecoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.CharacterDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.DoubleDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.DoubleDecoder.html
index 636f0e23..514f5ae4 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.DoubleDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.DoubleDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.DoubleDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.DoubleDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.DoubleDecoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.DoubleDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.FloatDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.FloatDecoder.html
index c687ed23..bd9910b8 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.FloatDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.FloatDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.FloatDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.FloatDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.FloatDecoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.FloatDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.IntegerDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.IntegerDecoder.html
index 8b7eb9ae..0170b828 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.IntegerDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.IntegerDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.IntegerDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.IntegerDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.IntegerDecoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.IntegerDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.LongDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.LongDecoder.html
index 5c42a5c1..80354cf4 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.LongDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.LongDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.LongDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.LongDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.LongDecoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.LongDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ShortDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ShortDecoder.html
index 1699ac6c..f87e6364 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ShortDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ShortDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ShortDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ShortDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ShortDecoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders.ShortDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.html
index c4413f4b..bfcd804e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.PrimitiveDecoders (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/ReaderDecoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/ReaderDecoder.html
index 86b3c29f..6f22ff73 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/ReaderDecoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/ReaderDecoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.ReaderDecoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.ReaderDecoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.ReaderDecoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.ReaderDecoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/ToStringEncoder.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/ToStringEncoder.html
index 03f3b749..4a0255c8 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/ToStringEncoder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/class-use/ToStringEncoder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.coder.ToStringEncoder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.coder.ToStringEncoder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.ToStringEncoder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.coder.ToStringEncoder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/package-summary.html
index 203d9bce..4ce73e48 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.coder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.coder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.coder (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.coder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/package-tree.html
index 49c88d83..dc1e5edd 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.coder Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.coder Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.coder Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.coder Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/coder/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/core/coder/package-use.html
index 936db888..c0e3446b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/coder/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/coder/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.core.coder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.coder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.core.coder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.coder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/collection/LazyValue.html b/apidocs/latest1x/org/glassfish/tyrus/core/collection/LazyValue.html
index e8da522d..87925a12 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/collection/LazyValue.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/collection/LazyValue.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>LazyValue (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>LazyValue (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="LazyValue (Tyrus 1.19 API)";
+            parent.document.title="LazyValue (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/collection/Value.html b/apidocs/latest1x/org/glassfish/tyrus/core/collection/Value.html
index d59c135c..f0e9b5c3 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/collection/Value.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/collection/Value.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Value (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Value (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Value (Tyrus 1.19 API)";
+            parent.document.title="Value (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/collection/Values.html b/apidocs/latest1x/org/glassfish/tyrus/core/collection/Values.html
index a184fb7a..fe969d8c 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/collection/Values.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/collection/Values.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Values (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Values (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Values (Tyrus 1.19 API)";
+            parent.document.title="Values (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/collection/class-use/LazyValue.html b/apidocs/latest1x/org/glassfish/tyrus/core/collection/class-use/LazyValue.html
index b66dd3a3..355ba06c 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/collection/class-use/LazyValue.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/collection/class-use/LazyValue.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.collection.LazyValue (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.collection.LazyValue (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.collection.LazyValue (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.collection.LazyValue (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/collection/class-use/Value.html b/apidocs/latest1x/org/glassfish/tyrus/core/collection/class-use/Value.html
index 0f33bcbe..d308e359 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/collection/class-use/Value.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/collection/class-use/Value.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.collection.Value (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.collection.Value (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.collection.Value (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.collection.Value (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/collection/class-use/Values.html b/apidocs/latest1x/org/glassfish/tyrus/core/collection/class-use/Values.html
index af9ca954..81c1fe46 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/collection/class-use/Values.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/collection/class-use/Values.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.collection.Values (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.collection.Values (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.collection.Values (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.collection.Values (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/collection/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/core/collection/package-summary.html
index caa38ecb..d329efbe 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/collection/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/collection/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.collection (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.collection (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.collection (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.collection (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/collection/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/core/collection/package-tree.html
index 0ee4be89..561f6f18 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/collection/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/collection/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.collection Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.collection Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.collection Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.collection Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/collection/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/core/collection/package-use.html
index 352924dc..f63ead3a 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/collection/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/collection/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.core.collection (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.collection (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.core.collection (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.collection (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html b/apidocs/latest1x/org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html
index 03bebb97..2f54b787 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ExtendedExtension.ExtensionContext (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ExtendedExtension.ExtensionContext (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ExtendedExtension.ExtensionContext (Tyrus 1.19 API)";
+            parent.document.title="ExtendedExtension.ExtensionContext (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/extension/ExtendedExtension.html b/apidocs/latest1x/org/glassfish/tyrus/core/extension/ExtendedExtension.html
index 096f292c..cb2bb4ce 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/extension/ExtendedExtension.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/extension/ExtendedExtension.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ExtendedExtension (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ExtendedExtension (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ExtendedExtension (Tyrus 1.19 API)";
+            parent.document.title="ExtendedExtension (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.ExtensionContext.html b/apidocs/latest1x/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.ExtensionContext.html
index 17ffd5eb..03bd01d3 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.ExtensionContext.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.ExtensionContext.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension.ExtensionContext (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.html b/apidocs/latest1x/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.html
index 5fa4b51d..fc195d72 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.extension.ExtendedExtension (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/extension/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/core/extension/package-summary.html
index 87250f8b..3fcdddeb 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/extension/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/extension/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.extension (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.extension (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.extension (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.extension (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/extension/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/core/extension/package-tree.html
index 96eecc13..ba520853 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/extension/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/extension/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.extension Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.extension Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.extension Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.extension Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/extension/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/core/extension/package-use.html
index cdc902dc..bf188376 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/extension/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/extension/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.core.extension (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.extension (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.core.extension (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.extension (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/BinaryFrame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/BinaryFrame.html
index 52b0c553..71ac06b2 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/BinaryFrame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/BinaryFrame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>BinaryFrame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>BinaryFrame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="BinaryFrame (Tyrus 1.19 API)";
+            parent.document.title="BinaryFrame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/CloseFrame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/CloseFrame.html
index cf52df68..ccdc01a7 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/CloseFrame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/CloseFrame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>CloseFrame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CloseFrame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CloseFrame (Tyrus 1.19 API)";
+            parent.document.title="CloseFrame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/Frame.Builder.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/Frame.Builder.html
index 5a823e2d..993d212b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/Frame.Builder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/Frame.Builder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Frame.Builder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Frame.Builder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Frame.Builder (Tyrus 1.19 API)";
+            parent.document.title="Frame.Builder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/Frame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/Frame.html
index b42c32c9..f05c5078 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/Frame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/Frame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Frame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Frame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Frame (Tyrus 1.19 API)";
+            parent.document.title="Frame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/PingFrame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/PingFrame.html
index c2b5800d..a50ef620 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/PingFrame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/PingFrame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PingFrame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PingFrame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PingFrame (Tyrus 1.19 API)";
+            parent.document.title="PingFrame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/PongFrame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/PongFrame.html
index 51215485..9ba0f75f 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/PongFrame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/PongFrame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PongFrame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PongFrame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PongFrame (Tyrus 1.19 API)";
+            parent.document.title="PongFrame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/TextFrame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/TextFrame.html
index db5ea4c2..55b49cfa 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/TextFrame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/TextFrame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TextFrame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TextFrame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TextFrame (Tyrus 1.19 API)";
+            parent.document.title="TextFrame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html
index 57be14c9..cb546d0b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusFrame.FrameType (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusFrame.FrameType (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusFrame.FrameType (Tyrus 1.19 API)";
+            parent.document.title="TyrusFrame.FrameType (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/TyrusFrame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/TyrusFrame.html
index 9090e347..5120a941 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/TyrusFrame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/TyrusFrame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusFrame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusFrame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusFrame (Tyrus 1.19 API)";
+            parent.document.title="TyrusFrame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/BinaryFrame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/BinaryFrame.html
index 2f3d0ae1..169df1aa 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/BinaryFrame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/BinaryFrame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.frame.BinaryFrame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.BinaryFrame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.BinaryFrame (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.BinaryFrame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/CloseFrame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/CloseFrame.html
index 2035c205..927f89bd 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/CloseFrame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/CloseFrame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.frame.CloseFrame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.CloseFrame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.CloseFrame (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.CloseFrame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/Frame.Builder.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/Frame.Builder.html
index 1a92125f..37e7845a 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/Frame.Builder.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/Frame.Builder.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.frame.Frame.Builder (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.Frame.Builder (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.Frame.Builder (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.Frame.Builder (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/Frame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/Frame.html
index a16b2609..cf932ee3 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/Frame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/Frame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.frame.Frame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.Frame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.Frame (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.Frame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/PingFrame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/PingFrame.html
index 81aa0aa2..36455f96 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/PingFrame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/PingFrame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.frame.PingFrame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.PingFrame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.PingFrame (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.PingFrame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/PongFrame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/PongFrame.html
index b0c775b5..f4c2edb6 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/PongFrame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/PongFrame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.frame.PongFrame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.PongFrame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.PongFrame (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.PongFrame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/TextFrame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/TextFrame.html
index 2ba2d439..7a7cb150 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/TextFrame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/TextFrame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.frame.TextFrame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.TextFrame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.TextFrame (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.TextFrame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.FrameType.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.FrameType.html
index ad742d08..e961b7c1 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.FrameType.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.FrameType.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame.FrameType (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame.FrameType (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame.FrameType (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame.FrameType (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.html
index 89240289..9f2f87a9 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.frame.TyrusFrame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/package-summary.html
index b2d3e6d3..f9634b4b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.frame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.frame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.frame (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.frame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/package-tree.html
index d3270345..642e7bd2 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.frame Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.frame Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.frame Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.frame Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/frame/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/core/frame/package-use.html
index f4826f60..44f58fc5 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/frame/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/frame/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.core.frame (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.frame (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.core.frame (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.frame (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/Localizable.html b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/Localizable.html
index 8688f5a0..cafa9283 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/Localizable.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/Localizable.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Localizable (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Localizable (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Localizable (Tyrus 1.19 API)";
+            parent.document.title="Localizable (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/LocalizableMessage.html b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/LocalizableMessage.html
index e9d441a6..5c3926fc 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/LocalizableMessage.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/LocalizableMessage.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>LocalizableMessage (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>LocalizableMessage (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="LocalizableMessage (Tyrus 1.19 API)";
+            parent.document.title="LocalizableMessage (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html
index 3d85e626..0c27e06f 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>LocalizableMessageFactory (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>LocalizableMessageFactory (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="LocalizableMessageFactory (Tyrus 1.19 API)";
+            parent.document.title="LocalizableMessageFactory (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/LocalizationMessages.html b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/LocalizationMessages.html
index 4de82a1c..d416ecf8 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/LocalizationMessages.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/LocalizationMessages.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>LocalizationMessages (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>LocalizationMessages (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="LocalizationMessages (Tyrus 1.19 API)";
+            parent.document.title="LocalizationMessages (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/Localizer.html b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/Localizer.html
index c745e1c1..e73b398d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/Localizer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/Localizer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Localizer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Localizer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Localizer (Tyrus 1.19 API)";
+            parent.document.title="Localizer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/Localizable.html b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/Localizable.html
index 0850f21d..d611bf80 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/Localizable.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/Localizable.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.l10n.Localizable (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.l10n.Localizable (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.l10n.Localizable (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.l10n.Localizable (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessage.html b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessage.html
index 07fa6e0a..c3402087 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessage.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessage.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessage (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessage (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessage (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessage (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessageFactory.html b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessageFactory.html
index cfa1fbf4..02f357cd 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessageFactory.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessageFactory.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessageFactory (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessageFactory (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessageFactory (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.l10n.LocalizableMessageFactory (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/LocalizationMessages.html b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/LocalizationMessages.html
index 1e0425a0..2e34078a 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/LocalizationMessages.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/LocalizationMessages.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.l10n.LocalizationMessages (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.l10n.LocalizationMessages (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.l10n.LocalizationMessages (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.l10n.LocalizationMessages (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/Localizer.html b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/Localizer.html
index 2194b463..ed0283a9 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/Localizer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/class-use/Localizer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.l10n.Localizer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.l10n.Localizer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.l10n.Localizer (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.l10n.Localizer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/package-summary.html
index b15b0d13..d0c80cf5 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.l10n (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.l10n (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.l10n (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.l10n (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/package-tree.html
index da5fd32f..3d6b00a4 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.l10n Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.l10n Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.l10n Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.l10n Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/package-use.html
index 0e11d3b8..48f78260 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/l10n/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/l10n/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.core.l10n (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.l10n (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.core.l10n (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.l10n (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html
index b7c4da92..27bb0b7e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ApplicationEventListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ApplicationEventListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ApplicationEventListener (Tyrus 1.19 API)";
+            parent.document.title="ApplicationEventListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/EndpointEventListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/EndpointEventListener.html
index 8251b394..dd11d936 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/EndpointEventListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/EndpointEventListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>EndpointEventListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>EndpointEventListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="EndpointEventListener (Tyrus 1.19 API)";
+            parent.document.title="EndpointEventListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/MessageEventListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/MessageEventListener.html
index 9914c5ac..fdc27e68 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/MessageEventListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/MessageEventListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>MessageEventListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MessageEventListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="MessageEventListener (Tyrus 1.19 API)";
+            parent.document.title="MessageEventListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/class-use/ApplicationEventListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/class-use/ApplicationEventListener.html
index 07b5cc89..f486caf0 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/class-use/ApplicationEventListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/class-use/ApplicationEventListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.monitoring.ApplicationEventListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.monitoring.ApplicationEventListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.monitoring.ApplicationEventListener (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.monitoring.ApplicationEventListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/class-use/EndpointEventListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/class-use/EndpointEventListener.html
index b5de8f92..e9550fe0 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/class-use/EndpointEventListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/class-use/EndpointEventListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.monitoring.EndpointEventListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.monitoring.EndpointEventListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.monitoring.EndpointEventListener (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.monitoring.EndpointEventListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/class-use/MessageEventListener.html b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/class-use/MessageEventListener.html
index a511a7c4..d9bb57fd 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/class-use/MessageEventListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/class-use/MessageEventListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.monitoring.MessageEventListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.monitoring.MessageEventListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.monitoring.MessageEventListener (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.monitoring.MessageEventListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/package-summary.html
index 1da9e094..ab8c38df 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.monitoring (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.monitoring (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.monitoring (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.monitoring (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/package-tree.html
index 0dfb2593..4b5b8abe 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.monitoring Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.monitoring Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.monitoring Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.monitoring Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/package-use.html
index 3b018564..4dd6a14c 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/monitoring/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.core.monitoring (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.monitoring (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.core.monitoring (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.monitoring (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/core/package-summary.html
index 1eef8b59..8a4ee985 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/core/package-tree.html
index 23d85db1..a14a909d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/core/package-use.html
index 8c80ad80..3c4172c8 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.core (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.core (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.core (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/Match.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/Match.html
index c732b653..2e68ec38 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/Match.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/Match.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Match (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Match (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Match (Tyrus 1.19 API)";
+            parent.document.title="Match (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/class-use/Match.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/class-use/Match.html
index 06d49e80..ee049665 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/class-use/Match.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/class-use/Match.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.uri.Match (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.Match (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.Match (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.Match (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html
index 3c162fa4..04dad459 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>AbstractMultivaluedMap (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>AbstractMultivaluedMap (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="AbstractMultivaluedMap (Tyrus 1.19 API)";
+            parent.document.title="AbstractMultivaluedMap (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html
index 1e667b1f..a7ea455d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>MultivaluedHashMap (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MultivaluedHashMap (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="MultivaluedHashMap (Tyrus 1.19 API)";
+            parent.document.title="MultivaluedHashMap (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html
index f82b857b..18e7f377 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>MultivaluedMap (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MultivaluedMap (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="MultivaluedMap (Tyrus 1.19 API)";
+            parent.document.title="MultivaluedMap (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html
index fc747f9c..d604ecfb 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>MultivaluedStringMap (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>MultivaluedStringMap (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="MultivaluedStringMap (Tyrus 1.19 API)";
+            parent.document.title="MultivaluedStringMap (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html
index 4a58aeab..12881fa9 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PathPattern.RightHandPath (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PathPattern.RightHandPath (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PathPattern.RightHandPath (Tyrus 1.19 API)";
+            parent.document.title="PathPattern.RightHandPath (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathPattern.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathPattern.html
index dc20b98b..ade9619f 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathPattern.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathPattern.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PathPattern (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PathPattern (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PathPattern (Tyrus 1.19 API)";
+            parent.document.title="PathPattern (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathSegment.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathSegment.html
index 4c2c9592..39443eb9 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathSegment.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathSegment.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PathSegment (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PathSegment (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PathSegment (Tyrus 1.19 API)";
+            parent.document.title="PathSegment (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathTemplate.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathTemplate.html
index e436c518..9e4a60bb 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathTemplate.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PathTemplate.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PathTemplate (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PathTemplate (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PathTemplate (Tyrus 1.19 API)";
+            parent.document.title="PathTemplate (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html
index 1de5a5bb..be9d51e2 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>PatternWithGroups (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>PatternWithGroups (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="PatternWithGroups (Tyrus 1.19 API)";
+            parent.document.title="PatternWithGroups (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html
index b5eacb66..30141e29 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>UriComponent.Type (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>UriComponent.Type (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="UriComponent.Type (Tyrus 1.19 API)";
+            parent.document.title="UriComponent.Type (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriComponent.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriComponent.html
index 5ffd21fd..06f2e2dd 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriComponent.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriComponent.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>UriComponent (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>UriComponent (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="UriComponent (Tyrus 1.19 API)";
+            parent.document.title="UriComponent (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriTemplate.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriTemplate.html
index 8272cfeb..9c1cd702 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriTemplate.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriTemplate.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>UriTemplate (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>UriTemplate (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="UriTemplate (Tyrus 1.19 API)";
+            parent.document.title="UriTemplate (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html
index bcd44b60..908281b5 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>UriTemplateParser (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>UriTemplateParser (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="UriTemplateParser (Tyrus 1.19 API)";
+            parent.document.title="UriTemplateParser (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/AbstractMultivaluedMap.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/AbstractMultivaluedMap.html
index d5ec2e42..77e7cbf3 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/AbstractMultivaluedMap.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/AbstractMultivaluedMap.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.AbstractMultivaluedMap (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedHashMap.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedHashMap.html
index 19423ed6..4b156dbf 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedHashMap.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedHashMap.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedHashMap (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedHashMap (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedHashMap (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedHashMap (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedMap.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedMap.html
index 44723713..21aeff12 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedMap.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedMap.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.uri.internal.MultivaluedMap (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.uri.internal.MultivaluedMap (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.uri.internal.MultivaluedMap (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.uri.internal.MultivaluedMap (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedStringMap.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedStringMap.html
index 386ef0be..e1edbd94 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedStringMap.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedStringMap.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedStringMap (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedStringMap (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedStringMap (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.MultivaluedStringMap (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.RightHandPath.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.RightHandPath.html
index 5bf5f6c9..1af57187 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.RightHandPath.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.RightHandPath.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern.RightHandPath (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.html
index a18cfdc7..a36d7fa6 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.PathPattern (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathSegment.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathSegment.html
index f8800cf9..8299b980 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathSegment.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathSegment.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.core.uri.internal.PathSegment (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.core.uri.internal.PathSegment (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.core.uri.internal.PathSegment (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.core.uri.internal.PathSegment (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathTemplate.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathTemplate.html
index 6504181b..a16913f3 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathTemplate.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PathTemplate.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.uri.internal.PathTemplate (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.PathTemplate (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.PathTemplate (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.PathTemplate (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PatternWithGroups.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PatternWithGroups.html
index 8ef82945..ac3e01ee 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PatternWithGroups.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/PatternWithGroups.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.uri.internal.PatternWithGroups (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.PatternWithGroups (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.PatternWithGroups (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.PatternWithGroups (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.Type.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.Type.html
index 16f724bb..5a19a4c0 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.Type.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.Type.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent.Type (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent.Type (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent.Type (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent.Type (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.html
index 62199ce3..042e7622 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriComponent (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplate.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplate.html
index 756f98be..9491b898 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplate.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplate.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplate (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplate (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplate (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplate (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplateParser.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplateParser.html
index 16d6ceb7..1eb21008 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplateParser.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplateParser.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplateParser (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplateParser (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplateParser (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.uri.internal.UriTemplateParser (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/package-summary.html
index ad6387ee..281c1454 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.uri.internal (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.uri.internal (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.uri.internal (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.uri.internal (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/package-tree.html
index 0be74d93..b5a41a33 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.uri.internal Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.uri.internal Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.uri.internal Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.uri.internal Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/package-use.html
index cce17f29..6dbb72b1 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/internal/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.core.uri.internal (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.uri.internal (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.core.uri.internal (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.uri.internal (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/package-summary.html
index c84abc2e..919e6078 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.uri (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.uri (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.uri (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.uri (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/package-tree.html
index 3a3e601c..4b894458 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.uri Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.uri Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.uri Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.uri Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/uri/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/core/uri/package-use.html
index 075167f6..c4ec6ccb 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/uri/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/uri/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.core.uri (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.uri (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.core.uri (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.uri (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/Application.html b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/Application.html
index 13a8d702..45004fe5 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/Application.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/Application.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Application (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Application (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Application (Tyrus 1.19 API)";
+            parent.document.title="Application (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/Endpoint.html b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/Endpoint.html
index d2399e78..f3c33276 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/Endpoint.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/Endpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Endpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Endpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Endpoint (Tyrus 1.19 API)";
+            parent.document.title="Endpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html
index 844444ae..a53682af 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ObjectFactory (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ObjectFactory (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ObjectFactory (Tyrus 1.19 API)";
+            parent.document.title="ObjectFactory (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/class-use/Application.html b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/class-use/Application.html
index 805503d4..9869de7c 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/class-use/Application.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/class-use/Application.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.wsadl.model.Application (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.wsadl.model.Application (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.wsadl.model.Application (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.wsadl.model.Application (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/class-use/Endpoint.html b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/class-use/Endpoint.html
index 5ca6653f..e97eda42 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/class-use/Endpoint.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/class-use/Endpoint.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.wsadl.model.Endpoint (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.wsadl.model.Endpoint (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.wsadl.model.Endpoint (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.wsadl.model.Endpoint (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/class-use/ObjectFactory.html b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/class-use/ObjectFactory.html
index 9b179759..36040a46 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/class-use/ObjectFactory.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/class-use/ObjectFactory.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.core.wsadl.model.ObjectFactory (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.core.wsadl.model.ObjectFactory (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.core.wsadl.model.ObjectFactory (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.core.wsadl.model.ObjectFactory (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/package-summary.html
index e84d7373..85ea003f 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.wsadl.model (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.wsadl.model (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.wsadl.model (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.wsadl.model (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/package-tree.html
index 4dc97591..48031148 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.core.wsadl.model Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.core.wsadl.model Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.core.wsadl.model Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.core.wsadl.model Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/package-use.html
index cd79cf51..e2b8b1ea 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/core/wsadl/model/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.core.wsadl.model (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.core.wsadl.model (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.core.wsadl.model (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.core.wsadl.model (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html b/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html
index 59a1b62c..ba219dc0 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>CdiComponentProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CdiComponentProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CdiComponentProvider (Tyrus 1.19 API)";
+            parent.document.title="CdiComponentProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/class-use/CdiComponentProvider.html b/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/class-use/CdiComponentProvider.html
index e560b56e..b13ed76d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/class-use/CdiComponentProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/class-use/CdiComponentProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.gf.cdi.CdiComponentProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.gf.cdi.CdiComponentProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.gf.cdi.CdiComponentProvider (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.gf.cdi.CdiComponentProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/package-summary.html
index bd49f52c..48283d5d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.gf.cdi (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.gf.cdi (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.gf.cdi (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.gf.cdi (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/package-tree.html
index 41367cb9..c5abeaf4 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.gf.cdi Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.gf.cdi Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.gf.cdi Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.gf.cdi Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/package-use.html
index 92e7f353..253138f5 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/gf/cdi/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.gf.cdi (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.gf.cdi (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.gf.cdi (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.gf.cdi (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html b/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html
index 60789724..c481941b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>EjbComponentProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>EjbComponentProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="EjbComponentProvider (Tyrus 1.19 API)";
+            parent.document.title="EjbComponentProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/class-use/EjbComponentProvider.html b/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/class-use/EjbComponentProvider.html
index 2a72f606..7b8c76d8 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/class-use/EjbComponentProvider.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/class-use/EjbComponentProvider.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.gf.ejb.EjbComponentProvider (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.gf.ejb.EjbComponentProvider (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.gf.ejb.EjbComponentProvider (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.gf.ejb.EjbComponentProvider (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/package-summary.html
index a177e938..687aba8a 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.gf.ejb (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.gf.ejb (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.gf.ejb (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.gf.ejb (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/package-tree.html
index 909bf33f..6f3367fe 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.gf.ejb Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.gf.ejb Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.gf.ejb Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.gf.ejb Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/package-use.html
index ee1d92da..8d185dfc 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/gf/ejb/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.gf.ejb (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.gf.ejb (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.gf.ejb (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.gf.ejb (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/server/Server.html b/apidocs/latest1x/org/glassfish/tyrus/server/Server.html
index f9d0ba65..885729ff 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/server/Server.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/server/Server.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Server (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Server (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Server (Tyrus 1.19 API)";
+            parent.document.title="Server (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/server/TyrusServerConfiguration.html b/apidocs/latest1x/org/glassfish/tyrus/server/TyrusServerConfiguration.html
index 9254e637..7b1889cb 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/server/TyrusServerConfiguration.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/server/TyrusServerConfiguration.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusServerConfiguration (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusServerConfiguration (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusServerConfiguration (Tyrus 1.19 API)";
+            parent.document.title="TyrusServerConfiguration (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/server/TyrusServerContainer.html b/apidocs/latest1x/org/glassfish/tyrus/server/TyrusServerContainer.html
index 335c541b..9a289609 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/server/TyrusServerContainer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/server/TyrusServerContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusServerContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusServerContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusServerContainer (Tyrus 1.19 API)";
+            parent.document.title="TyrusServerContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/server/class-use/Server.html b/apidocs/latest1x/org/glassfish/tyrus/server/class-use/Server.html
index 4c9aa97d..f3944fc5 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/server/class-use/Server.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/server/class-use/Server.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.server.Server (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.server.Server (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.server.Server (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.server.Server (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/server/class-use/TyrusServerConfiguration.html b/apidocs/latest1x/org/glassfish/tyrus/server/class-use/TyrusServerConfiguration.html
index 462a1a12..ddd4b025 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/server/class-use/TyrusServerConfiguration.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/server/class-use/TyrusServerConfiguration.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.server.TyrusServerConfiguration (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.server.TyrusServerConfiguration (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.server.TyrusServerConfiguration (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.server.TyrusServerConfiguration (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/server/class-use/TyrusServerContainer.html b/apidocs/latest1x/org/glassfish/tyrus/server/class-use/TyrusServerContainer.html
index 95c65a75..5bbe1d9e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/server/class-use/TyrusServerContainer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/server/class-use/TyrusServerContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.server.TyrusServerContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.server.TyrusServerContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.server.TyrusServerContainer (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.server.TyrusServerContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/server/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/server/package-summary.html
index 68f2b068..897fa838 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/server/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/server/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.server (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.server (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.server (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.server (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/server/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/server/package-tree.html
index cda237bd..83c0509c 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/server/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/server/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.server Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.server Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.server Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.server Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/server/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/server/package-use.html
index a7996732..d77efe1c 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/server/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/server/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.server (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.server (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.server (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.server (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html b/apidocs/latest1x/org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html
index af552202..1595ae85 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusHttpUpgradeHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusHttpUpgradeHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusHttpUpgradeHandler (Tyrus 1.19 API)";
+            parent.document.title="TyrusHttpUpgradeHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html b/apidocs/latest1x/org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html
index 933095f1..c99d98fa 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>TyrusServletContainerInitializer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>TyrusServletContainerInitializer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TyrusServletContainerInitializer (Tyrus 1.19 API)";
+            parent.document.title="TyrusServletContainerInitializer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/servlet/class-use/TyrusHttpUpgradeHandler.html b/apidocs/latest1x/org/glassfish/tyrus/servlet/class-use/TyrusHttpUpgradeHandler.html
index 3f071a33..6b176bf6 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/servlet/class-use/TyrusHttpUpgradeHandler.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/servlet/class-use/TyrusHttpUpgradeHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/servlet/class-use/TyrusServletContainerInitializer.html b/apidocs/latest1x/org/glassfish/tyrus/servlet/class-use/TyrusServletContainerInitializer.html
index 6e491119..2e7f4677 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/servlet/class-use/TyrusServletContainerInitializer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/servlet/class-use/TyrusServletContainerInitializer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.servlet.TyrusServletContainerInitializer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.servlet.TyrusServletContainerInitializer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.servlet.TyrusServletContainerInitializer (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.servlet.TyrusServletContainerInitializer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/servlet/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/servlet/package-summary.html
index 9274d97b..42af88e4 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/servlet/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/servlet/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.servlet (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.servlet (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.servlet (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.servlet (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/servlet/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/servlet/package-tree.html
index 942242ac..96ea66ef 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/servlet/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/servlet/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.servlet Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.servlet Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.servlet Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.servlet Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/servlet/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/servlet/package-use.html
index 66a2cf75..b2e8d6de 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/servlet/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/servlet/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.servlet (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.servlet (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.servlet (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.servlet (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/ClientContainer.html b/apidocs/latest1x/org/glassfish/tyrus/spi/ClientContainer.html
index 5409e6e1..ab8caa5b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/ClientContainer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/ClientContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ClientContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClientContainer (Tyrus 1.19 API)";
+            parent.document.title="ClientContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html b/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html
index 020bddb3..4c1b0245 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ClientEngine.ClientUpgradeInfo (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEngine.ClientUpgradeInfo (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClientEngine.ClientUpgradeInfo (Tyrus 1.19 API)";
+            parent.document.title="ClientEngine.ClientUpgradeInfo (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html b/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html
index 17cafba4..f909bb34 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ClientEngine.ClientUpgradeStatus (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEngine.ClientUpgradeStatus (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClientEngine.ClientUpgradeStatus (Tyrus 1.19 API)";
+            parent.document.title="ClientEngine.ClientUpgradeStatus (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html b/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html
index 4d0b5c25..2d70f745 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ClientEngine.TimeoutHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEngine.TimeoutHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClientEngine.TimeoutHandler (Tyrus 1.19 API)";
+            parent.document.title="ClientEngine.TimeoutHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.html b/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.html
index ee3f13d5..ae62b674 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/ClientEngine.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ClientEngine (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ClientEngine (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClientEngine (Tyrus 1.19 API)";
+            parent.document.title="ClientEngine (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/CompletionHandler.html b/apidocs/latest1x/org/glassfish/tyrus/spi/CompletionHandler.html
index f4dfc73b..eefd41f9 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/CompletionHandler.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/CompletionHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>CompletionHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>CompletionHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CompletionHandler (Tyrus 1.19 API)";
+            parent.document.title="CompletionHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/Connection.CloseListener.html b/apidocs/latest1x/org/glassfish/tyrus/spi/Connection.CloseListener.html
index 637b060a..a40ac034 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/Connection.CloseListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/Connection.CloseListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Connection.CloseListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Connection.CloseListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Connection.CloseListener (Tyrus 1.19 API)";
+            parent.document.title="Connection.CloseListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/Connection.html b/apidocs/latest1x/org/glassfish/tyrus/spi/Connection.html
index a487da8e..a4723c8b 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/Connection.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/Connection.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Connection (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Connection (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Connection (Tyrus 1.19 API)";
+            parent.document.title="Connection (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/ReadHandler.html b/apidocs/latest1x/org/glassfish/tyrus/spi/ReadHandler.html
index 58242f0b..78cbb45d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/ReadHandler.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/ReadHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ReadHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ReadHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ReadHandler (Tyrus 1.19 API)";
+            parent.document.title="ReadHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/ServerContainer.html b/apidocs/latest1x/org/glassfish/tyrus/spi/ServerContainer.html
index d9e2fc2d..02e7daf1 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/ServerContainer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/ServerContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ServerContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServerContainer (Tyrus 1.19 API)";
+            parent.document.title="ServerContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/ServerContainerFactory.html b/apidocs/latest1x/org/glassfish/tyrus/spi/ServerContainerFactory.html
index dadd66bc..9ee459c4 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/ServerContainerFactory.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/ServerContainerFactory.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>ServerContainerFactory (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>ServerContainerFactory (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ServerContainerFactory (Tyrus 1.19 API)";
+            parent.document.title="ServerContainerFactory (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/UpgradeRequest.html b/apidocs/latest1x/org/glassfish/tyrus/spi/UpgradeRequest.html
index d52f87d4..a4fa3442 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/UpgradeRequest.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/UpgradeRequest.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>UpgradeRequest (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>UpgradeRequest (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="UpgradeRequest (Tyrus 1.19 API)";
+            parent.document.title="UpgradeRequest (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/UpgradeResponse.html b/apidocs/latest1x/org/glassfish/tyrus/spi/UpgradeResponse.html
index 1a3258c9..4edd845d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/UpgradeResponse.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/UpgradeResponse.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>UpgradeResponse (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>UpgradeResponse (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="UpgradeResponse (Tyrus 1.19 API)";
+            parent.document.title="UpgradeResponse (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html b/apidocs/latest1x/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html
index 8ad81863..72791ca3 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>WebSocketEngine.UpgradeInfo (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WebSocketEngine.UpgradeInfo (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="WebSocketEngine.UpgradeInfo (Tyrus 1.19 API)";
+            parent.document.title="WebSocketEngine.UpgradeInfo (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html b/apidocs/latest1x/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html
index 1741e043..a576ae57 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>WebSocketEngine.UpgradeStatus (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WebSocketEngine.UpgradeStatus (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="WebSocketEngine.UpgradeStatus (Tyrus 1.19 API)";
+            parent.document.title="WebSocketEngine.UpgradeStatus (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/WebSocketEngine.html b/apidocs/latest1x/org/glassfish/tyrus/spi/WebSocketEngine.html
index d7194868..8db5f1b3 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/WebSocketEngine.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/WebSocketEngine.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>WebSocketEngine (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WebSocketEngine (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="WebSocketEngine (Tyrus 1.19 API)";
+            parent.document.title="WebSocketEngine (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/Writer.html b/apidocs/latest1x/org/glassfish/tyrus/spi/Writer.html
index c9905c67..19a2994d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/Writer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/Writer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Writer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Writer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Writer (Tyrus 1.19 API)";
+            parent.document.title="Writer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/WriterInfo.MessageType.html b/apidocs/latest1x/org/glassfish/tyrus/spi/WriterInfo.MessageType.html
index 21887300..c54f4901 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/WriterInfo.MessageType.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/WriterInfo.MessageType.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>WriterInfo.MessageType (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WriterInfo.MessageType (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="WriterInfo.MessageType (Tyrus 1.19 API)";
+            parent.document.title="WriterInfo.MessageType (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html b/apidocs/latest1x/org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html
index 4938a265..731f54f1 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>WriterInfo.RemoteEndpointType (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WriterInfo.RemoteEndpointType (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="WriterInfo.RemoteEndpointType (Tyrus 1.19 API)";
+            parent.document.title="WriterInfo.RemoteEndpointType (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/WriterInfo.html b/apidocs/latest1x/org/glassfish/tyrus/spi/WriterInfo.html
index d7e5d619..5cfc9577 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/WriterInfo.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/WriterInfo.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>WriterInfo (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>WriterInfo (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="WriterInfo (Tyrus 1.19 API)";
+            parent.document.title="WriterInfo (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientContainer.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientContainer.html
index 14e66faa..8650b1e9 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientContainer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.spi.ClientContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.ClientContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ClientContainer (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ClientContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeInfo.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeInfo.html
index 09f20d0f..064c325d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeInfo.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeInfo.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeInfo (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeInfo (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeInfo (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeInfo (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeStatus.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeStatus.html
index 7378c0fd..6ad11871 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeStatus.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeStatus.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeStatus (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeStatus (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeStatus (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.ClientEngine.ClientUpgradeStatus (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.TimeoutHandler.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.TimeoutHandler.html
index 7ed3b2cc..7cfce80e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.TimeoutHandler.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.TimeoutHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ClientEngine.TimeoutHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.html
index 5008d840..a2e47270 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ClientEngine.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.spi.ClientEngine (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.ClientEngine (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ClientEngine (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ClientEngine (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/CompletionHandler.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/CompletionHandler.html
index 4694282c..9a588edb 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/CompletionHandler.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/CompletionHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.spi.CompletionHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.CompletionHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.spi.CompletionHandler (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.CompletionHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/Connection.CloseListener.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/Connection.CloseListener.html
index 38daaec4..55c886b6 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/Connection.CloseListener.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/Connection.CloseListener.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.spi.Connection.CloseListener (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.Connection.CloseListener (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.Connection.CloseListener (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.Connection.CloseListener (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/Connection.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/Connection.html
index 23f09eb5..aa773966 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/Connection.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/Connection.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.spi.Connection (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.Connection (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.Connection (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.Connection (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ReadHandler.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ReadHandler.html
index 530c4ae9..375eb123 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ReadHandler.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ReadHandler.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.spi.ReadHandler (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.ReadHandler (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ReadHandler (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ReadHandler (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ServerContainer.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ServerContainer.html
index 921380f8..b9f783f5 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ServerContainer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ServerContainer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.spi.ServerContainer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.ServerContainer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ServerContainer (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.ServerContainer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ServerContainerFactory.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ServerContainerFactory.html
index 41ff04dd..c6c2aef3 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ServerContainerFactory.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/ServerContainerFactory.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.spi.ServerContainerFactory (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.ServerContainerFactory (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.spi.ServerContainerFactory (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.ServerContainerFactory (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/UpgradeRequest.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/UpgradeRequest.html
index 8ab26690..5628e459 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/UpgradeRequest.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/UpgradeRequest.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.spi.UpgradeRequest (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.UpgradeRequest (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.spi.UpgradeRequest (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.UpgradeRequest (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/UpgradeResponse.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/UpgradeResponse.html
index 819ee848..8e10c851 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/UpgradeResponse.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/UpgradeResponse.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.spi.UpgradeResponse (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.UpgradeResponse (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.spi.UpgradeResponse (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.UpgradeResponse (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeInfo.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeInfo.html
index 3efa5d98..af312a53 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeInfo.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeInfo.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine.UpgradeInfo (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeStatus.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeStatus.html
index c9700698..ad037da6 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeStatus.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeStatus.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.spi.WebSocketEngine.UpgradeStatus (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.WebSocketEngine.UpgradeStatus (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.spi.WebSocketEngine.UpgradeStatus (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.WebSocketEngine.UpgradeStatus (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WebSocketEngine.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WebSocketEngine.html
index 908dc327..c4caa9b2 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WebSocketEngine.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WebSocketEngine.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine (Tyrus 1.19 API)";
+            parent.document.title="Uses of Interface org.glassfish.tyrus.spi.WebSocketEngine (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/Writer.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/Writer.html
index 803c0ac6..db2e0e35 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/Writer.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/Writer.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.spi.Writer (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.Writer (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.spi.Writer (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.Writer (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WriterInfo.MessageType.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WriterInfo.MessageType.html
index 91468ab1..edd7976e 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WriterInfo.MessageType.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WriterInfo.MessageType.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.spi.WriterInfo.MessageType (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.WriterInfo.MessageType (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.spi.WriterInfo.MessageType (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.WriterInfo.MessageType (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WriterInfo.RemoteEndpointType.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WriterInfo.RemoteEndpointType.html
index c73357c5..a8b281bc 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WriterInfo.RemoteEndpointType.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WriterInfo.RemoteEndpointType.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.WriterInfo.RemoteEndpointType (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WriterInfo.html b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WriterInfo.html
index a982ee8e..540ad34d 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WriterInfo.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/class-use/WriterInfo.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Class org.glassfish.tyrus.spi.WriterInfo (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Class org.glassfish.tyrus.spi.WriterInfo (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.glassfish.tyrus.spi.WriterInfo (Tyrus 1.19 API)";
+            parent.document.title="Uses of Class org.glassfish.tyrus.spi.WriterInfo (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/package-summary.html b/apidocs/latest1x/org/glassfish/tyrus/spi/package-summary.html
index 8148c42f..90387669 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/package-summary.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/package-summary.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.spi (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.spi (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.spi (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.spi (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/package-tree.html b/apidocs/latest1x/org/glassfish/tyrus/spi/package-tree.html
index a324f60f..d921f283 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/package-tree.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/package-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>org.glassfish.tyrus.spi Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>org.glassfish.tyrus.spi Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="org.glassfish.tyrus.spi Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="org.glassfish.tyrus.spi Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/org/glassfish/tyrus/spi/package-use.html b/apidocs/latest1x/org/glassfish/tyrus/spi/package-use.html
index 2009889d..d2fd00a1 100644
--- a/apidocs/latest1x/org/glassfish/tyrus/spi/package-use.html
+++ b/apidocs/latest1x/org/glassfish/tyrus/spi/package-use.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Uses of Package org.glassfish.tyrus.spi (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Uses of Package org.glassfish.tyrus.spi (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="../../../../script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Package org.glassfish.tyrus.spi (Tyrus 1.19 API)";
+            parent.document.title="Uses of Package org.glassfish.tyrus.spi (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/overview-summary.html b/apidocs/latest1x/overview-summary.html
index 9faf7fc7..dad8c55c 100644
--- a/apidocs/latest1x/overview-summary.html
+++ b/apidocs/latest1x/overview-summary.html
@@ -2,8 +2,8 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Tyrus 1.19 API</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Tyrus 1.20 API</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script type="text/javascript">window.location.replace('index.html')</script>
 <noscript>
diff --git a/apidocs/latest1x/overview-tree.html b/apidocs/latest1x/overview-tree.html
index 3e8a2522..f8aeb89e 100644
--- a/apidocs/latest1x/overview-tree.html
+++ b/apidocs/latest1x/overview-tree.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Class Hierarchy (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Class Hierarchy (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Class Hierarchy (Tyrus 1.19 API)";
+            parent.document.title="Class Hierarchy (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/package-search-index.zip b/apidocs/latest1x/package-search-index.zip
index 7bf5808a..8f77beeb 100644
Binary files a/apidocs/latest1x/package-search-index.zip and b/apidocs/latest1x/package-search-index.zip differ
diff --git a/apidocs/latest1x/serialized-form.html b/apidocs/latest1x/serialized-form.html
index 43a40c4b..2f9566d6 100644
--- a/apidocs/latest1x/serialized-form.html
+++ b/apidocs/latest1x/serialized-form.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.2) on Mon Jun 20 12:57:17 UTC 2022 -->
-<title>Serialized Form (Tyrus 1.19 API)</title>
+<!-- Generated by javadoc (11.0.2) on Tue Oct 11 10:16:32 UTC 2022 -->
+<title>Serialized Form (Tyrus 1.20 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-06-20">
+<meta name="dc.created" content="2022-10-11">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -22,7 +22,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Serialized Form (Tyrus 1.19 API)";
+            parent.document.title="Serialized Form (Tyrus 1.20 API)";
         }
     }
     catch(err) {
diff --git a/apidocs/latest1x/type-search-index.zip b/apidocs/latest1x/type-search-index.zip
index 29e280e6..85431f90 100644
Binary files a/apidocs/latest1x/type-search-index.zip and b/apidocs/latest1x/type-search-index.zip differ
+ git commit -m '[jenkins] automatic apidocs update [1.20]'
[master 90801278] [jenkins] automatic apidocs update [1.20]
 1081 files changed, 219326 insertions(+), 2069 deletions(-)
 create mode 100644 apidocs/1.20/allclasses-index.html
 create mode 100644 apidocs/1.20/allclasses.html
 create mode 100644 apidocs/1.20/allpackages-index.html
 create mode 100644 apidocs/1.20/constant-values.html
 create mode 100644 apidocs/1.20/deprecated-list.html
 create mode 100644 apidocs/1.20/element-list
 create mode 100644 apidocs/1.20/help-doc.html
 create mode 100644 apidocs/1.20/index-all.html
 create mode 100644 apidocs/1.20/index.html
 create mode 100755 apidocs/1.20/javadoc.sh
 create mode 100644 apidocs/1.20/javax/websocket/ClientEndpoint.html
 create mode 100644 apidocs/1.20/javax/websocket/ClientEndpointConfig.Builder.html
 create mode 100644 apidocs/1.20/javax/websocket/ClientEndpointConfig.Configurator.html
 create mode 100644 apidocs/1.20/javax/websocket/ClientEndpointConfig.html
 create mode 100644 apidocs/1.20/javax/websocket/CloseReason.CloseCode.html
 create mode 100644 apidocs/1.20/javax/websocket/CloseReason.CloseCodes.html
 create mode 100644 apidocs/1.20/javax/websocket/CloseReason.html
 create mode 100644 apidocs/1.20/javax/websocket/ContainerProvider.html
 create mode 100644 apidocs/1.20/javax/websocket/DecodeException.html
 create mode 100644 apidocs/1.20/javax/websocket/Decoder.Binary.html
 create mode 100644 apidocs/1.20/javax/websocket/Decoder.BinaryStream.html
 create mode 100644 apidocs/1.20/javax/websocket/Decoder.Text.html
 create mode 100644 apidocs/1.20/javax/websocket/Decoder.TextStream.html
 create mode 100644 apidocs/1.20/javax/websocket/Decoder.html
 create mode 100644 apidocs/1.20/javax/websocket/DeploymentException.html
 create mode 100644 apidocs/1.20/javax/websocket/EncodeException.html
 create mode 100644 apidocs/1.20/javax/websocket/Encoder.Binary.html
 create mode 100644 apidocs/1.20/javax/websocket/Encoder.BinaryStream.html
 create mode 100644 apidocs/1.20/javax/websocket/Encoder.Text.html
 create mode 100644 apidocs/1.20/javax/websocket/Encoder.TextStream.html
 create mode 100644 apidocs/1.20/javax/websocket/Encoder.html
 create mode 100644 apidocs/1.20/javax/websocket/Endpoint.html
 create mode 100644 apidocs/1.20/javax/websocket/EndpointConfig.html
 create mode 100644 apidocs/1.20/javax/websocket/Extension.Parameter.html
 create mode 100644 apidocs/1.20/javax/websocket/Extension.html
 create mode 100644 apidocs/1.20/javax/websocket/HandshakeResponse.html
 create mode 100644 apidocs/1.20/javax/websocket/MessageHandler.Partial.html
 create mode 100644 apidocs/1.20/javax/websocket/MessageHandler.Whole.html
 create mode 100644 apidocs/1.20/javax/websocket/MessageHandler.html
 create mode 100644 apidocs/1.20/javax/websocket/OnClose.html
 create mode 100644 apidocs/1.20/javax/websocket/OnError.html
 create mode 100644 apidocs/1.20/javax/websocket/OnMessage.html
 create mode 100644 apidocs/1.20/javax/websocket/OnOpen.html
 create mode 100644 apidocs/1.20/javax/websocket/PongMessage.html
 create mode 100644 apidocs/1.20/javax/websocket/RemoteEndpoint.Async.html
 create mode 100644 apidocs/1.20/javax/websocket/RemoteEndpoint.Basic.html
 create mode 100644 apidocs/1.20/javax/websocket/RemoteEndpoint.html
 create mode 100644 apidocs/1.20/javax/websocket/SendHandler.html
 create mode 100644 apidocs/1.20/javax/websocket/SendResult.html
 create mode 100644 apidocs/1.20/javax/websocket/Session.html
 create mode 100644 apidocs/1.20/javax/websocket/SessionException.html
 create mode 100644 apidocs/1.20/javax/websocket/WebSocketContainer.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/ClientEndpoint.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/ClientEndpointConfig.Builder.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/ClientEndpointConfig.Configurator.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/ClientEndpointConfig.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/CloseReason.CloseCode.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/CloseReason.CloseCodes.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/CloseReason.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/ContainerProvider.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/DecodeException.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Decoder.Binary.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Decoder.BinaryStream.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Decoder.Text.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Decoder.TextStream.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Decoder.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/DeploymentException.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/EncodeException.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Encoder.Binary.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Encoder.BinaryStream.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Encoder.Text.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Encoder.TextStream.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Encoder.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Endpoint.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/EndpointConfig.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Extension.Parameter.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Extension.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/HandshakeResponse.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/MessageHandler.Partial.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/MessageHandler.Whole.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/MessageHandler.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/OnClose.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/OnError.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/OnMessage.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/OnOpen.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/PongMessage.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/RemoteEndpoint.Async.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/RemoteEndpoint.Basic.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/RemoteEndpoint.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/SendHandler.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/SendResult.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/Session.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/SessionException.html
 create mode 100644 apidocs/1.20/javax/websocket/class-use/WebSocketContainer.html
 create mode 100644 apidocs/1.20/javax/websocket/package-summary.html
 create mode 100644 apidocs/1.20/javax/websocket/package-tree.html
 create mode 100644 apidocs/1.20/javax/websocket/package-use.html
 create mode 100644 apidocs/1.20/javax/websocket/server/HandshakeRequest.html
 create mode 100644 apidocs/1.20/javax/websocket/server/PathParam.html
 create mode 100644 apidocs/1.20/javax/websocket/server/ServerApplicationConfig.html
 create mode 100644 apidocs/1.20/javax/websocket/server/ServerContainer.html
 create mode 100644 apidocs/1.20/javax/websocket/server/ServerEndpoint.html
 create mode 100644 apidocs/1.20/javax/websocket/server/ServerEndpointConfig.Builder.html
 create mode 100644 apidocs/1.20/javax/websocket/server/ServerEndpointConfig.Configurator.html
 create mode 100644 apidocs/1.20/javax/websocket/server/ServerEndpointConfig.html
 create mode 100644 apidocs/1.20/javax/websocket/server/class-use/HandshakeRequest.html
 create mode 100644 apidocs/1.20/javax/websocket/server/class-use/PathParam.html
 create mode 100644 apidocs/1.20/javax/websocket/server/class-use/ServerApplicationConfig.html
 create mode 100644 apidocs/1.20/javax/websocket/server/class-use/ServerContainer.html
 create mode 100644 apidocs/1.20/javax/websocket/server/class-use/ServerEndpoint.html
 create mode 100644 apidocs/1.20/javax/websocket/server/class-use/ServerEndpointConfig.Builder.html
 create mode 100644 apidocs/1.20/javax/websocket/server/class-use/ServerEndpointConfig.Configurator.html
 create mode 100644 apidocs/1.20/javax/websocket/server/class-use/ServerEndpointConfig.html
 create mode 100644 apidocs/1.20/javax/websocket/server/package-summary.html
 create mode 100644 apidocs/1.20/javax/websocket/server/package-tree.html
 create mode 100644 apidocs/1.20/javax/websocket/server/package-use.html
 create mode 100644 apidocs/1.20/jquery/external/jquery/jquery.js
 create mode 100644 apidocs/1.20/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png
 create mode 100644 apidocs/1.20/jquery/images/ui-bg_flat_75_ffffff_40x100.png
 create mode 100644 apidocs/1.20/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png
 create mode 100644 apidocs/1.20/jquery/images/ui-bg_glass_65_ffffff_1x400.png
 create mode 100644 apidocs/1.20/jquery/images/ui-bg_glass_75_dadada_1x400.png
 create mode 100644 apidocs/1.20/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png
 create mode 100644 apidocs/1.20/jquery/images/ui-bg_glass_95_fef1ec_1x400.png
 create mode 100644 apidocs/1.20/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png
 create mode 100644 apidocs/1.20/jquery/images/ui-icons_222222_256x240.png
 create mode 100644 apidocs/1.20/jquery/images/ui-icons_2e83ff_256x240.png
 create mode 100644 apidocs/1.20/jquery/images/ui-icons_454545_256x240.png
 create mode 100644 apidocs/1.20/jquery/images/ui-icons_888888_256x240.png
 create mode 100644 apidocs/1.20/jquery/images/ui-icons_cd0a0a_256x240.png
 create mode 100644 apidocs/1.20/jquery/jquery-3.3.1.js
 create mode 100644 apidocs/1.20/jquery/jquery-migrate-3.0.1.js
 create mode 100644 apidocs/1.20/jquery/jquery-ui.css
 create mode 100644 apidocs/1.20/jquery/jquery-ui.js
 create mode 100644 apidocs/1.20/jquery/jquery-ui.min.css
 create mode 100644 apidocs/1.20/jquery/jquery-ui.min.js
 create mode 100644 apidocs/1.20/jquery/jquery-ui.structure.css
 create mode 100644 apidocs/1.20/jquery/jquery-ui.structure.min.css
 create mode 100644 apidocs/1.20/jquery/jszip-utils/dist/jszip-utils-ie.js
 create mode 100644 apidocs/1.20/jquery/jszip-utils/dist/jszip-utils-ie.min.js
 create mode 100644 apidocs/1.20/jquery/jszip-utils/dist/jszip-utils.js
 create mode 100644 apidocs/1.20/jquery/jszip-utils/dist/jszip-utils.min.js
 create mode 100644 apidocs/1.20/jquery/jszip/dist/jszip.js
 create mode 100644 apidocs/1.20/jquery/jszip/dist/jszip.min.js
 create mode 100644 apidocs/1.20/member-search-index.js
 create mode 100644 apidocs/1.20/member-search-index.zip
 create mode 100644 apidocs/1.20/options
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/ClientManager.ReconnectHandler.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/ClientManager.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/ClientProperties.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/RedirectException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/RetryAfterException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/SslContextConfigurator.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/ThreadPoolConfig.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/TyrusClientEngine.ClientHandshakeListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/TyrusClientEngine.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/auth/AuthConfig.Builder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/auth/AuthConfig.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/auth/AuthenticationException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/auth/Authenticator.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/auth/Credentials.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/AuthConfig.Builder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/AuthConfig.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/AuthenticationException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/Authenticator.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/auth/class-use/Credentials.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/auth/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/auth/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/auth/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/class-use/ClientManager.ReconnectHandler.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/class-use/ClientManager.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/class-use/ClientProperties.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/class-use/RedirectException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/class-use/RetryAfterException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/class-use/SslContextConfigurator.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/class-use/SslEngineConfigurator.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/class-use/ThreadPoolConfig.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/class-use/TyrusClientEngine.ClientHandshakeListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/class-use/TyrusClientEngine.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/client/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientContainer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientProperties.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyClientSocket.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyContainerProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/GrizzlyWriter.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Condition.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.Task.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/TaskProcessor.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientContainer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientProperties.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyClientSocket.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyContainerProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/GrizzlyWriter.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Condition.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.Task.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/class-use/TaskProcessor.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/client/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/GrizzlyServerContainer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/WebSocketAddOn.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/class-use/GrizzlyServerContainer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/class-use/WebSocketAddOn.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/container/grizzly/server/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/AnnotatedEndpoint.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/BaseContainer.ShutDownCondition.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/BaseContainer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/Beta.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/CloseReasons.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ComponentProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ComponentProviderService.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/DebugContext.TracingThreshold.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/DebugContext.TracingType.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/DebugContext.Type.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/DebugContext.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/DefaultComponentProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ErrorCollector.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ExecutorServiceProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/Handshake.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/HandshakeException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/MaskingKeyGenerator.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/MaxSessions.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/MessageHandlerManager.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/OsgiRegistry.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ProtocolException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ProtocolHandler.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.ClassTypePair.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.DeclaringClassInterfacePair.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.TypeClassPair.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ReflectionHelper.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/RequestContext.Builder.IsUserInRoleDelegate.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/RequestContext.Builder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/RequestContext.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ServiceConfigurationError.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ServiceFinder.DefaultServiceIteratorProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ServiceFinder.ServiceIteratorProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/ServiceFinder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/StrictUtf8.Parser.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/StrictUtf8.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.OnOpenResult.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusEndpointWrapper.SessionListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusEndpointWrapper.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusExtension.TyrusParameter.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusExtension.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusFuture.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusRemoteEndpoint.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusServerEndpointConfig.Builder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusServerEndpointConfig.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusServerEndpointConfigurator.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusSession.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusUpgradeResponse.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusWebSocket.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/TyrusWebSocketEngine.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/Utf8DecodingException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/Utils.Stringifier.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/Utils.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/Version.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/WebSocketException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/AnnotatedEndpoint.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/BaseContainer.ShutDownCondition.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/BaseContainer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/Beta.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/CloseReasons.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ComponentProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ComponentProviderService.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.TracingThreshold.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.TracingType.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.Type.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/DebugContext.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/DefaultComponentProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ErrorCollector.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ExecutorServiceProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/Handshake.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/HandshakeException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/MaskingKeyGenerator.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/MaxSessions.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/MessageHandlerManager.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/OsgiRegistry.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ProtocolException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ProtocolHandler.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.ClassTypePair.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.DeclaringClassInterfacePair.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.TypeClassPair.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ReflectionHelper.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/RequestContext.Builder.IsUserInRoleDelegate.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/RequestContext.Builder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/RequestContext.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceConfigurationError.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceFinder.DefaultServiceIteratorProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceFinder.ServiceIteratorProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/ServiceFinder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/StrictUtf8.Parser.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/StrictUtf8.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.OnOpenResult.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.SessionListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusEndpointWrapper.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusExtension.TyrusParameter.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusExtension.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusFuture.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusRemoteEndpoint.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.Builder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfig.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusServerEndpointConfigurator.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusSession.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusUpgradeResponse.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusWebSocket.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.TyrusWebSocketEngineBuilder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/TyrusWebSocketEngine.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/Utf8DecodingException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/Utils.Stringifier.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/Utils.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/Version.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/class-use/WebSocketException.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/BroadcastListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/ClusterContext.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/DistributedSession.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/RemoteSession.DistributedMapKey.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/RemoteSession.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/SessionEventListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/SessionListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/BroadcastListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/ClusterContext.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/DistributedSession.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.DistributedMapKey.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/RemoteSession.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/SessionEventListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/class-use/SessionListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/cluster/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/CoderAdapter.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/CoderWrapper.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/InputStreamDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/NoOpByteArrayCoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/NoOpByteBufferCoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/NoOpTextCoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.BooleanDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ByteDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.CharacterDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.DoubleDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.FloatDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.IntegerDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.LongDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.ShortDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/PrimitiveDecoders.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/ReaderDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/ToStringEncoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/CoderAdapter.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/CoderWrapper.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/InputStreamDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/NoOpByteArrayCoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/NoOpByteBufferCoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/NoOpTextCoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.BooleanDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ByteDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.CharacterDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.DoubleDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.FloatDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.IntegerDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.LongDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.ShortDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/PrimitiveDecoders.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/ReaderDecoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/class-use/ToStringEncoder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/coder/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/collection/LazyValue.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/collection/Value.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/collection/Values.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/collection/class-use/LazyValue.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/collection/class-use/Value.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/collection/class-use/Values.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/collection/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/collection/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/collection/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/extension/ExtendedExtension.ExtensionContext.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/extension/ExtendedExtension.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.ExtensionContext.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/extension/class-use/ExtendedExtension.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/extension/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/extension/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/extension/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/BinaryFrame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/CloseFrame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/Frame.Builder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/Frame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/PingFrame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/PongFrame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/TextFrame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/TyrusFrame.FrameType.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/TyrusFrame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/BinaryFrame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/CloseFrame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/Frame.Builder.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/Frame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/PingFrame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/PongFrame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/TextFrame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.FrameType.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/class-use/TyrusFrame.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/frame/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/l10n/Localizable.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/l10n/LocalizableMessage.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/l10n/LocalizableMessageFactory.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/l10n/LocalizationMessages.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/l10n/Localizer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/Localizable.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessage.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/LocalizableMessageFactory.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/LocalizationMessages.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/l10n/class-use/Localizer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/l10n/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/l10n/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/l10n/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/monitoring/ApplicationEventListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/monitoring/EndpointEventListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/monitoring/MessageEventListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/monitoring/class-use/ApplicationEventListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/monitoring/class-use/EndpointEventListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/monitoring/class-use/MessageEventListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/monitoring/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/monitoring/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/monitoring/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/Match.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/class-use/Match.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/AbstractMultivaluedMap.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/MultivaluedHashMap.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/MultivaluedMap.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/MultivaluedStringMap.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathPattern.RightHandPath.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathPattern.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathSegment.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PathTemplate.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/PatternWithGroups.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriComponent.Type.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriComponent.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriTemplate.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/UriTemplateParser.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/AbstractMultivaluedMap.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedHashMap.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedMap.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/MultivaluedStringMap.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.RightHandPath.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathPattern.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathSegment.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PathTemplate.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/PatternWithGroups.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.Type.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriComponent.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplate.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/class-use/UriTemplateParser.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/internal/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/uri/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/Application.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/Endpoint.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/ObjectFactory.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/class-use/Application.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/class-use/Endpoint.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/class-use/ObjectFactory.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/core/wsadl/model/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/gf/cdi/CdiComponentProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/gf/cdi/class-use/CdiComponentProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/gf/cdi/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/gf/cdi/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/gf/cdi/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/gf/ejb/EjbComponentProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/gf/ejb/class-use/EjbComponentProvider.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/gf/ejb/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/gf/ejb/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/gf/ejb/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/server/Server.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/server/TyrusServerConfiguration.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/server/TyrusServerContainer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/server/class-use/Server.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/server/class-use/TyrusServerConfiguration.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/server/class-use/TyrusServerContainer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/server/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/server/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/server/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/servlet/TyrusHttpUpgradeHandler.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/servlet/TyrusServletContainerInitializer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/servlet/class-use/TyrusHttpUpgradeHandler.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/servlet/class-use/TyrusServletContainerInitializer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/servlet/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/servlet/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/servlet/package-use.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/ClientContainer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeInfo.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.ClientUpgradeStatus.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.TimeoutHandler.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/ClientEngine.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/CompletionHandler.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/Connection.CloseListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/Connection.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/ReadHandler.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/ServerContainer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/ServerContainerFactory.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/UpgradeRequest.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/UpgradeResponse.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeInfo.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/WebSocketEngine.UpgradeStatus.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/WebSocketEngine.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/Writer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/WriterInfo.MessageType.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/WriterInfo.RemoteEndpointType.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/WriterInfo.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientContainer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeInfo.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.ClientUpgradeStatus.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.TimeoutHandler.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/ClientEngine.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/CompletionHandler.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/Connection.CloseListener.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/Connection.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/ReadHandler.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/ServerContainer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/ServerContainerFactory.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/UpgradeRequest.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/UpgradeResponse.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeInfo.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/WebSocketEngine.UpgradeStatus.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/WebSocketEngine.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/Writer.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/WriterInfo.MessageType.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/WriterInfo.RemoteEndpointType.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/class-use/WriterInfo.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/package-summary.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/package-tree.html
 create mode 100644 apidocs/1.20/org/glassfish/tyrus/spi/package-use.html
 create mode 100644 apidocs/1.20/overview-summary.html
 create mode 100644 apidocs/1.20/overview-tree.html
 create mode 100644 apidocs/1.20/package-search-index.js
 create mode 100644 apidocs/1.20/package-search-index.zip
 create mode 100644 apidocs/1.20/packages
 create mode 100644 apidocs/1.20/resources/glass.png
 create mode 100644 apidocs/1.20/resources/x.png
 create mode 100644 apidocs/1.20/script.js
 create mode 100644 apidocs/1.20/search.js
 create mode 100644 apidocs/1.20/serialized-form.html
 create mode 100644 apidocs/1.20/stylesheet.css
 create mode 100644 apidocs/1.20/type-search-index.js
 create mode 100644 apidocs/1.20/type-search-index.zip
+ cd ../documentation
+ mkdir -p 1.20/index
+ cp -a /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/configurations.html /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/deployment.html /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/getting-started.html /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/index.html /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/injection.html /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/lifecycle.html /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/modules-and-dependencies.html /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/preface.html /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/tyrus-proprietary-config.html /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/user-guide.html /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/websocket-api.html 1.20/index
+ cp -a /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/user-guide.fo /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/user-guide.html /home/jenkins/agent/workspace/documentation-update-after-release/docs/target/docbook/user-guide.pdf 1.20/
+ rm 1.20/index/user-guide.html
+ rm -rf latest1x/index latest1x/user-guide.fo latest1x/user-guide.html latest1x/user-guide.pdf
+ cp -a 1.20/index 1.20/user-guide.fo 1.20/user-guide.html 1.20/user-guide.pdf latest1x/
+ git add -A .
+ git diff --cached --exit-code
diff --git a/documentation/1.20/index/configurations.html b/documentation/1.20/index/configurations.html
new file mode 100644
index 00000000..5c9c2060
--- /dev/null
+++ b/documentation/1.20/index/configurations.html
@@ -0,0 +1,138 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;5.&nbsp;Configurations</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="websocket-api.html" title="Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers"><link rel="next" href="lifecycle.html" title="Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;5.&nbsp;Configurations</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="websocket-api.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="lifecycle.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="configurations"></a>Chapter&nbsp;5.&nbsp;Configurations</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="configurations.html#d0e786">5.1. <code class="code">javax.websocket.server.ServerEndpointConfig</code></a></span></dt><dt><span class="section"><a href="configurations.html#d0e839">5.2. <code class="code">javax.websocket.ClientEndpointConfig</code></a></span></dt></dl></div><p>
+        <code class="code">javax.websocket.server.ServerEndpointConfig</code> and <code class="code">javax.websocket.ClientEndpointConfig</code> objects
+        are used to provide the user the ability to configure websocket endpoints. Both server and client endpoints have some
+        part of configuration in common, namely encoders, decoders, and user properties. The user properties may developers
+        use to store the application specific data. For the developer's convenience the builders are provided for both
+        ServerEndpointConfig and ClientEndpointConfig.
+    </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e786"></a>5.1.&nbsp;<code class="code">javax.websocket.server.ServerEndpointConfig</code></h2></div></div></div><p>
+            The <code class="code">javax.websocket.server.ServerEndpointConfig</code> is used when deploying the endpoint either via
+            implementing the <code class="code">javax.websocket.server.ServerApplicationConfig</code>, or via registering the programmatic endpoint
+            at the <code class="code">javax.websocket.server.ServerContainer</code> instance. It allows the user to create the configuration
+            programmatically.
+        </p><p>
+            The following example is used to deploy the EchoEndpoint programmatically. In the method
+            <code class="code">getEndpointClass()</code> the user has to specify the class of the deployed endpoint. In
+            the example Tyrus will create an instance of <code class="code">EchoEndpoint</code> and deploy it.
+            This is the way how to tie together endpoint and it's configuration. In the method
+            <code class="code">getPath()</code> the user specifies that that the endpoint instance will be deployed at the
+            path "/echo". In the method <code class="code">public List&lt;String&gt; getSubprotocols()</code> the user
+            specifies that the supported subprotocols are "echo1" and "echo2". The method <code class="code">getExtensions()</code>
+            defines the extensions the endpoint supports. Similarly the example configuration does not use any configurator.
+            Method <code class="code">public List&lt;Class&lt;? extends Encoder&gt;&gt; getEncoders()</code> defines the encoders
+            used by the endpoint. The decoders and user properties map are defined in similar fashion.
+        </p><p>
+            If the endpoint class which is about to be deployed is an annotated endpoint, note that the endpoint configuration
+            will be taken from configuration object, not from the annotation on the endpoint class.
+        </p><div class="example"><a name="d0e823"></a><p class="title"><b>Example&nbsp;5.1.&nbsp;Configuration for EchoEndpoint Deployment</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class EchoEndpointConfig implements ServerEndpointConfig{
+
+    private final Map&lt;String, Object&gt; userProperties = new HashMap&lt;String, Object&gt;();
+
+    @Override
+    public Class&lt;?&gt; getEndpointClass() {
+        return EchoEndpoint.class;
+    }
+
+    @Override
+    public String getPath() {
+        return "/echo";
+    }
+
+    @Override
+    public List&lt;String&gt; getSubprotocols() {
+        return Arrays.asList("echo1","echo2");
+    }
+
+    @Override
+    public List&lt;Extension&gt; getExtensions() {
+        return null;
+    }
+
+    @Override
+    public Configurator getConfigurator() {
+        return null;
+    }
+
+    @Override
+    public List&lt;Class&lt;? extends Encoder&gt;&gt; getEncoders() {
+        return Arrays.asList(SampleEncoder.class);
+    }
+
+    @Override
+    public List&lt;Class&lt;? extends Decoder&gt;&gt; getDecoders() {
+        return Arrays.asList(SampleDecoder.class);
+    }
+
+    @Override
+    public Map&lt;String, Object&gt; getUserProperties() {
+        return userProperties;
+    }
+}</pre></div></div><br class="example-break"><p>
+            To make the development easy the <span class="emphasis"><em>javax.websocket.server.ServerEndpointConfig</em></span> provides a builder to construct
+            the configuration object:
+            </p><div class="example"><a name="d0e833"></a><p class="title"><b>Example&nbsp;5.2.&nbsp;ServerEndpointConfigu built using Builder</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ServerEndpointConfig config = ServerEndpointConfig.Builder.create(EchoEndpoint.class,"/echo").
+    decoders(Arrays.&lt;Class&lt;? extends Decoder&gt;&gt;asList(JsonDecoder.class)).
+    encoders(Arrays.&lt;Class&lt; extends Encoder&gt;&gt;asList(JsonEncoder.class)).build();</pre></div></div><p><br class="example-break">
+        </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e839"></a>5.2.&nbsp;<code class="code">javax.websocket.ClientEndpointConfig</code></h2></div></div></div><p>
+            The <code class="code">javax.websocket.ClientEndpointConfig</code> is used when deploying the programmatic client endpoint
+            via registering the programmatic endpoint at the <code class="code">WebSocketContainer</code> instance. Some of
+            the configuration methods come from the <code class="code">EndpointConfig</code>class, which is extended by both
+            <code class="code">javax.websocket.server.ServerEndpointConfig</code> and <code class="code">javax.websocket.ClientEndpointConfig</code>. Then there are methods
+            for configuring the preferred subprotocols the client endpoint wants to use and supported extensions. It is
+            also possible to use the ClientEndpointConfig.Configurator in order to be able to affect the endpoint behaviour
+            before and after request.
+        </p><p>
+            Similarly to the ServerEndpointConfig, there is a Builder provided to construct the configuration easily:
+        </p><div class="example"><a name="d0e862"></a><p class="title"><b>Example&nbsp;5.3.&nbsp;ClientEndpointConfig built using Builder</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ClientEndpointConfig.Builder.create().
+    decoders(Arrays.&lt;Class&lt;? extends Decoder&gt;&gt;asList(JsonDecoder.class)).
+    encoders(Arrays.&lt;Class&lt;? extends Encoder&gt;&gt;asList(JsonEncoder.class)).
+    preferredSubprotocols(Arrays.asList("echo1", "echo2")).build();</pre></div></div><br class="example-break"></div></div><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
+            function path() {
+              var args = arguments,
+                  result = []
+                  ;
+
+              for(var i = 0; i < args.length; i++)
+                  result.push(args[i].replace('@', 'http://tyrus.java.net/sh/'));
+
+              return result
+            };
+
+            SyntaxHighlighter.autoloader.apply(null, path(
+              'applescript            @shBrushAppleScript.js',
+              'actionscript3 as3      @shBrushAS3.js',
+              'bash shell             @shBrushBash.js',
+              'coldfusion cf          @shBrushColdFusion.js',
+              'cpp c                  @shBrushCpp.js',
+              'c# c-sharp csharp      @shBrushCSharp.js',
+              'css                    @shBrushCss.js',
+              'delphi pascal          @shBrushDelphi.js',
+              'diff patch pas         @shBrushDiff.js',
+              'erl erlang             @shBrushErlang.js',
+              'groovy                 @shBrushGroovy.js',
+              'java                   @shBrushJava.js',
+              'jfx javafx             @shBrushJavaFX.js',
+              'js jscript javascript  @shBrushJScript.js',
+              'perl pl                @shBrushPerl.js',
+              'php                    @shBrushPhp.js',
+              'text plain             @shBrushPlain.js',
+              'py python              @shBrushPython.js',
+              'ruby rails ror rb      @shBrushRuby.js',
+              'sass scss              @shBrushSass.js',
+              'scala                  @shBrushScala.js',
+              'sql                    @shBrushSql.js',
+              'vb vbnet               @shBrushVb.js',
+              'xml xhtml xslt html    @shBrushXml.js'
+            ));
+
+            SyntaxHighlighter.all();
+        </script><script>
+              (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+              (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+              })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+              ga('create', 'UA-41373632-1', 'java.net');
+              ga('send', 'pageview');
+        </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="websocket-api.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="lifecycle.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages</td></tr></table></div></div></body></html>
\ No newline at end of file
diff --git a/documentation/1.20/index/deployment.html b/documentation/1.20/index/deployment.html
new file mode 100644
index 00000000..a0f7b314
--- /dev/null
+++ b/documentation/1.20/index/deployment.html
@@ -0,0 +1,163 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="modules-and-dependencies.html" title="Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies"><link rel="next" href="websocket-api.html" title="Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="modules-and-dependencies.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="websocket-api.html">Next</a></td></tr></table><hr></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="deployment.html#d0e335">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="deployment.html#d0e360">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="deployment.html#d0e411">3.2. Deploying endpoints via <code class="code">javax.websocket.server.ServerContainer</code></a></span></dt></dl></div><p>
+        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.
+    </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e335"></a>3.1.&nbsp;Deploying Endpoints as a WAR file</h2></div></div></div><p>
+            The classes that are scanned for in WAR are the following ones:
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: opencircle; "><li class="listitem" style="list-style-type: circle"><p>
+                        Classes that implement the <code class="code">javax.websocket.ServerApplicationConfig</code>.
+                    </p></li><li class="listitem" style="list-style-type: circle"><p>
+                        Classes annotated with <code class="code">javax.websocket.server.ServerEndpoint</code>.
+                    </p></li><li class="listitem" style="list-style-type: circle"><p>
+                        Classes that extend <code class="code">javax.websocket.Endpoint</code>.
+                    </p></li></ul></div><p>
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e360"></a>3.1.1.&nbsp;Deployment Algorithm</h3></div></div></div><p>
+                </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
+                        If one or more classes implementing ServerApplicationConfiguration are present in the WAR file, Tyrus deploys endpoints
+                        provided by all of these classes. Tyrus doesn't deploy any other classes present in the WAR (annotated by
+                        <code class="code">javax.websocket.server.ServerEndpoint</code> or extending <code class="code">javax.websocket.Endpoint</code>).
+                    </li><li class="listitem">
+                        If no class implementing ServerApplicationConfiguration is present, Tyrus deploys all classes annotated
+                        with @ServerEndpoint or extending Endpoint present in the WAR.
+                    </li></ol></div><p>
+            </p></div><p>
+            Let's have the following classes in the WAR:
+            </p><div class="example"><a name="deployment-serverapplicationconfig"></a><p class="title"><b>Example&nbsp;3.1.&nbsp;Deployment of WAR containing several classes extending <code class="code">javax.websocket.server.ServerApplicationConfig</code></b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class MyApplicationConfigOne implements ServerApplicationConfig {
+    public Set&lt;ServerEndpointConfig&gt; getEndpointConfigs(Set&lt;Class&lt;? extends Endpoint&gt;&gt; endpointClasses);
+        Set&lt;Class&lt;? extends Endpoint&gt;&gt; s = new HashSet&lt;Class&lt;? extends Endpoint&gt;&gt;;
+        s.add(ProgrammaticEndpointOne.class);
+        return s;
+    }
+
+    public Set&lt;Class&gt; getAnnotatedEndpointClasses(Set&lt;Class&lt;?&gt;&gt; scanned);
+       Set&lt;Class&lt;?&gt;&gt; s = new HashSet&lt;Class&lt;?&gt;&gt;;
+        s.add(AnnotatedEndpointOne.class);
+        return s;
+    }
+}
+
+public class MyApplicationConfigTwo implements ServerApplicationConfig {
+    public Set&lt;ServerEndpointConfig&gt; getEndpointConfigs(Set&lt;Class&lt;? extends Endpoint&gt;&gt; endpointClasses);
+        Set&lt;Class&lt;? extends Endpoint&gt;&gt; s = new HashSet&lt;Class&lt;? extends Endpoint&gt;&gt;;
+        s.add(ProgrammaticEndpointTwo.class);
+    return s;
+}
+
+public Set&lt;Class&gt; getAnnotatedEndpointClasses(Set&lt;Class&lt;?&gt;&gt; scanned);
+    Set&lt;Class&lt;?&gt;&gt; s = new HashSet&lt;Class&lt;?&gt;&gt;;
+        s.add(AnnotatedEndpointTwo.class);
+        return s;
+    }
+}
+
+@ServerEndpoint(value = "/annotatedone")
+public class AnnotatedEndpointOne {
+    ...
+}
+
+@ServerEndpoint(value = "/annotatedtwo")
+    public class AnnotatedEndpointTwo {
+    ...
+}
+
+@ServerEndpoint(value = "/annotatedthree")
+public class AnnotatedEndpointThree {
+    ...
+}
+
+public class ProgrammaticEndpointOne extends Endpoint {
+    ...
+}
+
+public class ProgrammaticEndpointTwo extends Endpoint {
+    ...
+}
+
+public class ProgrammaticEndpointThree extends Endpoint {
+    ...
+}</pre></div></div><p><br class="example-break">
+            According to the deployment algorithm classes <code class="code">AnnotatedEndpointOne</code>, <code class="code">AnnotatedEndpointTwo</code>,
+            <code class="code">ProgrammaticEndpointOne</code> and <code class="code">ProgrammaticEndpointTwo</code> will be deployed.
+            <code class="code">AnnotatedEndpointThree</code> and <code class="code">ProgrammaticEndpointThree</code> will not be
+            deployed, as these are not returned by the respective
+            methods of <code class="code">MyApplicationConfigOne</code> nor <code class="code">MyApplicationConfigTwo</code>.
+        </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e411"></a>3.2.&nbsp;Deploying endpoints via <code class="code">javax.websocket.server.ServerContainer</code></h2></div></div></div><p>
+            Endpoints may be deployed using <code class="code">javax.websocket.server.ServerContainer</code> during the application initialization phase.
+            For websocket enabled web containers, developers may obtain a reference to the ServerContainer instance by
+            retrieving it as an attribute named <code class="code">javax.websocket.server.ServerContainer</code> on the ServletContext, see
+            the following example for annotated endpoint:
+            </p><div class="example"><a name="deployment-servercontainer"></a><p class="title"><b>Example&nbsp;3.2.&nbsp;Deployment of Annotated Endpoint Using ServerContainer</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@WebListener
+@ServerEndpoint("/annotated")
+public class MyServletContextListenerAnnotated implements ServletContextListener {
+
+    @Override
+    public void contextInitialized(ServletContextEvent servletContextEvent) {
+        final ServerContainer serverContainer = (ServerContainer) servletContextEvent.getServletContext()
+                                                    .getAttribute("javax.websocket.server.ServerContainer");
+
+        try {
+            serverContainer.addEndpoint(MyServletContextListenerAnnotated.class);
+        } catch (DeploymentException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @OnMessage
+    public String onMessage(String message) {
+        return message;
+    }
+
+    @Override
+    public void contextDestroyed(ServletContextEvent servletContextEvent) {
+    }
+}</pre></div></div><p><br class="example-break">
+        </p></div></div><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
+            function path() {
+              var args = arguments,
+                  result = []
+                  ;
+
+              for(var i = 0; i < args.length; i++)
+                  result.push(args[i].replace('@', 'http://tyrus.java.net/sh/'));
+
+              return result
+            };
+
+            SyntaxHighlighter.autoloader.apply(null, path(
+              'applescript            @shBrushAppleScript.js',
+              'actionscript3 as3      @shBrushAS3.js',
+              'bash shell             @shBrushBash.js',
+              'coldfusion cf          @shBrushColdFusion.js',
+              'cpp c                  @shBrushCpp.js',
+              'c# c-sharp csharp      @shBrushCSharp.js',
+              'css                    @shBrushCss.js',
+              'delphi pascal          @shBrushDelphi.js',
+              'diff patch pas         @shBrushDiff.js',
+              'erl erlang             @shBrushErlang.js',
+              'groovy                 @shBrushGroovy.js',
+              'java                   @shBrushJava.js',
+              'jfx javafx             @shBrushJavaFX.js',
+              'js jscript javascript  @shBrushJScript.js',
+              'perl pl                @shBrushPerl.js',
+              'php                    @shBrushPhp.js',
+              'text plain             @shBrushPlain.js',
+              'py python              @shBrushPython.js',
+              'ruby rails ror rb      @shBrushRuby.js',
+              'sass scss              @shBrushSass.js',
+              'scala                  @shBrushScala.js',
+              'sql                    @shBrushSql.js',
+              'vb vbnet               @shBrushVb.js',
+              'xml xhtml xslt html    @shBrushXml.js'
+            ));
+
+            SyntaxHighlighter.all();
+        </script><script>
+              (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+              (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+              })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+              ga('create', 'UA-41373632-1', 'java.net');
+              ga('send', 'pageview');
+        </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="modules-and-dependencies.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="websocket-api.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers</td></tr></table></div></div></body></html>
\ No newline at end of file
diff --git a/documentation/1.20/index/getting-started.html b/documentation/1.20/index/getting-started.html
new file mode 100644
index 00000000..c425111d
--- /dev/null
+++ b/documentation/1.20/index/getting-started.html
@@ -0,0 +1,212 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;1.&nbsp;Getting Started</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="preface.html" title="Preface"><link rel="next" href="modules-and-dependencies.html" title="Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;1.&nbsp;Getting Started</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="preface.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="modules-and-dependencies.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="getting-started"></a>Chapter&nbsp;1.&nbsp;Getting Started</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="getting-started.html#getting-started-wsapi-artifact">1.1. WebSocket Services Using Java API for WebSocket</a></span></dt><dd><dl><dt><span class="section"><a href="getting-started.html#d0e35">1.1.1. Creating Annotated Server Endpoint</a></span></dt><dt><span class="section"><a href="getting-started.html#d0e79">1.1.2. Client Endpoint</a></span></dt><dt><span class="section"><a href="getting-started.html#websocket-programmatic-endpoint">1.1.3. Creating Server Endpoint Programmatically</a></span></dt><dt><span class="section"><a href="getting-started.html#standalone-mode">1.1.4. Tyrus in Standalone Mode</a></span></dt></dl></dd></dl></div><p>
+        This chapter provides a quick introduction on how to get started building
+        WebSocket services using Java API for WebSocket and Tyrus. The example described here presents how to implement
+        simple websocket service as JavaEE web application that can be deployed on any servlet container
+        supporting Servlet 3.1 and higher. It also discusses starting Tyrus in standalone mode.
+    </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="getting-started-wsapi-artifact"></a>1.1.&nbsp;WebSocket Services Using Java API for WebSocket</h2></div></div></div><p>
+                First, to use the Java API for WebSocket in your project you need to depend on the following artifact:
+</p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    gutter: false;">&lt;dependency&gt;
+    &lt;groupId&gt;javax.websocket&lt;/groupId&gt;
+    &lt;artifactId&gt;javax.websocket-api&lt;/artifactId&gt;
+    &lt;version&gt;1.1&lt;/version&gt;
+&lt;/dependency&gt;
+</pre><p>
+            </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e35"></a>1.1.1.&nbsp;Creating Annotated Server Endpoint</h3></div></div></div><p>
+                In this section we will create a simple server side websocket endpoint which will echo the received
+                message back to the sender. We will deploy this endpoint on the container.
+            </p><p>
+                In Java API for WebSocket and Tyrus, there are two basic approaches how to create an endpoint - either annotated endpoint,
+                or programmatic endpoint.
+                By annotated endpoint we mean endpoint constructed by using annotations (<code class="code">javax.websocket.server.ServerEndpoint</code>
+                for server endpoint and <code class="code">javax.websocket.ClientEndpoint</code> for client endpoint), like in
+                <a class="link" href="getting-started.html#websocket-annotated-echo-endpoint" title="Example&nbsp;1.1.&nbsp;Annotated Echo Endpoint">"Annotated Echo Endpoint"</a>.
+                </p><div class="example"><a name="websocket-annotated-echo-endpoint"></a><p class="title"><b>Example&nbsp;1.1.&nbsp;Annotated Echo Endpoint</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint(value = "/echo")
+public class EchoEndpointAnnotated {
+    @OnMessage
+    public String onMessage(String message, Session session) {
+        return message;
+    }
+}
+</pre></div></div><p><br class="example-break">
+            </p><p>
+            The functionality of the <code class="code">EchoEndpointAnnotated</code> is fairly simple - to send the received message
+            back to the sender. To turn a POJO (Plain Old Java Object) to WebSocket server endpoint, the annotation
+            <code class="code">@ServerEndpoint(value = "/echo")</code> needs to be put on the POJO - see line 1. The URI path of the endpoint
+            is <code class="code">"/echo"</code>. The annotation <code class="code">@OnMessage</code> - line 3 on the method <code class="code">public String
+            onMessage(String message, Session session)</code> indicates that this method
+            will be called whenever text message is received. On line 5 in this method the message is sent back to
+            the user by returning it from the message.
+        </p><p>
+            The application containing only the <code class="code">EchoEndpointAnnotated</code> class can be deployed to the container.
+        </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e79"></a>1.1.2.&nbsp;Client Endpoint</h3></div></div></div><p>
+                    Let's create the client part of the application. The client part may be written in JavaScript or any
+                    other technology supporting WebSockets. We will use Java API for WebSocket and Tyrus to demonstrate how to develop
+                    programmatic client endpoint.
+                    The following code is used as a client part to communicate with the <code class="code">EchoEndpoint</code> deployed on server
+                    using Tyrus and Java API for WebSocket.
+                </p><p>
+                    The example <a class="link" href="getting-started.html#websocket-client-endpoint" title="Example&nbsp;1.2.&nbsp;Client Endpoint">"Client Endpoint"</a> utilizes the concept
+                    of the programmatic endpoint. By programmatic endpoint we mean endpoint which is created by extending
+                    class <code class="code">javax.websocket.Endpoint</code>.
+                    The example is standalone java application which needs to depend on some Tyrus artifacts to work
+                    correctly, see <a class="link" href="getting-started.html#standalone-mode" title="1.1.4.&nbsp;Tyrus in Standalone Mode">"Tyrus Standalone Mode"</a>.
+                    In the example first the <code class="code">CountDownLatch</code> is initialized. It is needed as a bocking data
+                    structure - on line 31 it either waits for 100 seconds, or until it gets counted down (line 22).
+                    On line 9 the <code class="code">javax.websocket.ClientEndpointConfig</code> is created -  we will need it later
+                    to connect the endpoint to the server. On line 11 the <code class="code">org.glassfish.tyrus.client.ClientManager</code>
+                    is created. it implements the <code class="code">javax.websocket.WebSocketContainer</code> and is used to connect
+                    to server. This happens on next line. The client endpoint functionality is contained in the <code class="code">
+                    javax.websocket.Endpoint</code> lazy instantiation. In the <code class="code">onOpen</code> method new MessageHandler
+                    is registered (the received message is just printed on the console and the latch is counted down). After
+                    the registration the message is sent to the server (line 25).
+                    </p><div class="example"><a name="websocket-client-endpoint"></a><p class="title"><b>Example&nbsp;1.2.&nbsp;Client Endpoint</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class DocClient {
+    private static CountDownLatch messageLatch;
+    private static final String SENT_MESSAGE = "Hello World";
+
+    public static void main(String [] args){
+        try {
+            messageLatch = new CountDownLatch(1);
+
+            final ClientEndpointConfig cec = ClientEndpointConfig.Builder.create().build();
+
+            ClientManager client = ClientManager.createClient();
+            client.connectToServer(new Endpoint() {
+
+                @Override
+                public void onOpen(Session session, EndpointConfig config) {
+                    try {
+                        session.addMessageHandler(new MessageHandler.Whole&lt;String&gt;() {
+
+                            @Override
+                            public void onMessage(String message) {
+                                System.out.println("Received message: "+message);
+                                messageLatch.countDown();
+                            }
+                        });
+                        session.getBasicRemote().sendText(SENT_MESSAGE);
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }, cec, new URI("ws://localhost:8025/websockets/echo"));
+            messageLatch.await(100, TimeUnit.SECONDS);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}</pre></div></div><p><br class="example-break">
+                </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="websocket-programmatic-endpoint"></a>1.1.3.&nbsp;Creating Server Endpoint Programmatically</h3></div></div></div><p>
+            Similarly to <a class="link" href="getting-started.html#websocket-client-endpoint" title="Example&nbsp;1.2.&nbsp;Client Endpoint">"Client Endpoint"</a> the server registered endpoint
+            may also be the programmatic one:
+            </p><div class="example"><a name="websocket-programmatic-echo-endpoint"></a><p class="title"><b>Example&nbsp;1.3.&nbsp;Programmatic Echo Endpoint</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class EchoEndpointProgrammatic extends Endpoint {
+    @Override
+    public void onOpen(final Session session, EndpointConfig config) {
+        session.addMessageHandler(new MessageHandler.Whole&lt;String&gt;() {
+            @Override
+            public void onMessage(String message) {
+                try {
+                    session.getBasicRemote().sendText(message);
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+    }
+}</pre></div></div><p><br class="example-break">
+        </p><p>
+            The functionality of the <code class="code">EchoEndpointProgrammatic</code> is fairly simple - to send the received message back to the sender.
+            The programmatic server endpoint needs to extend <code class="code">javax.websocket.Endpoint</code> - line 1.
+            Mehod <code class="code">public void onOpen(final Session session, EndpointConfig config)</code> gets called once new
+            connection to this endpoin0t is opened. In this method the <code class="code">MessageHandler</code> is registered to the
+            <code class="code">javax.websocket.Session</code> instance, which opened the connection. Method <code class="code">public void
+            onMessage(String message)</code> gets called once the message is received. On line 8 the message
+            is sent back to the sender.
+        </p></div><p>
+        To see how both annotated and programmatic endpoints may be deployed please check the section Deployment.
+        In short: you need to put the server endpoint classes into WAR, deploy on server and the endpoints will
+        be scanned by server and deployed.
+    </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="standalone-mode"></a>1.1.4.&nbsp;Tyrus in Standalone Mode</h3></div></div></div><p>
+
+            </p><p>
+                To use Tyrus in standalone mode it is necessary to depend on correct Tyrus artifacts.
+                The following artifacts need to be added to your pom to use Tyrus:
+</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;1.20&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;1.20&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
+                standalone Tyrus server on the hostname "localhost", port 8025 and path "/websockets", so the endpoint
+                will be available at address "ws://localhost:8025/websockets/echo".
+</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    gutter: false;">public void runServer() {
+    Server server = new Server("localhost", 8025, "/websockets", null, EchoEndpoint.class);
+
+    try {
+        server.start();
+        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
+        System.out.print("Please press a key to stop the server.");
+        reader.readLine();
+    } catch (Exception e) {
+        e.printStackTrace();
+    } finally {
+        server.stop();
+    }
+}</pre><p>
+            </p></div></div></div><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
+            function path() {
+              var args = arguments,
+                  result = []
+                  ;
+
+              for(var i = 0; i < args.length; i++)
+                  result.push(args[i].replace('@', 'http://tyrus.java.net/sh/'));
+
+              return result
+            };
+
+            SyntaxHighlighter.autoloader.apply(null, path(
+              'applescript            @shBrushAppleScript.js',
+              'actionscript3 as3      @shBrushAS3.js',
+              'bash shell             @shBrushBash.js',
+              'coldfusion cf          @shBrushColdFusion.js',
+              'cpp c                  @shBrushCpp.js',
+              'c# c-sharp csharp      @shBrushCSharp.js',
+              'css                    @shBrushCss.js',
+              'delphi pascal          @shBrushDelphi.js',
+              'diff patch pas         @shBrushDiff.js',
+              'erl erlang             @shBrushErlang.js',
+              'groovy                 @shBrushGroovy.js',
+              'java                   @shBrushJava.js',
+              'jfx javafx             @shBrushJavaFX.js',
+              'js jscript javascript  @shBrushJScript.js',
+              'perl pl                @shBrushPerl.js',
+              'php                    @shBrushPhp.js',
+              'text plain             @shBrushPlain.js',
+              'py python              @shBrushPython.js',
+              'ruby rails ror rb      @shBrushRuby.js',
+              'sass scss              @shBrushSass.js',
+              'scala                  @shBrushScala.js',
+              'sql                    @shBrushSql.js',
+              'vb vbnet               @shBrushVb.js',
+              'xml xhtml xslt html    @shBrushXml.js'
+            ));
+
+            SyntaxHighlighter.all();
+        </script><script>
+              (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+              (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+              })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+              ga('create', 'UA-41373632-1', 'java.net');
+              ga('send', 'pageview');
+        </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="preface.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="modules-and-dependencies.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Preface&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies</td></tr></table></div></div></body></html>
\ No newline at end of file
diff --git a/documentation/1.20/index/index.html b/documentation/1.20/index/index.html
new file mode 100644
index 00000000..68bb5204
--- /dev/null
+++ b/documentation/1.20/index/index.html
@@ -0,0 +1,51 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Tyrus 1.20 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"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="next" href="preface.html" title="Preface"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Tyrus 1.20 User Guide</th></tr><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="preface.html">Next</a></td></tr></table><hr></div><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="d0e3"></a>Tyrus 1.20 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.html">Preface</a></span></dt><dt><span class="chapter"><a href="getting-started.html">1. Getting Started</a></span></dt><dd><dl><dt><span class="section"><a href="getting-started.html#getting-started-wsapi-artifact">1.1. WebSocket Services Using Java API for WebSocket</a></span></dt><dd><dl><dt><span class="section"><a href="getting-started.html#d0e35">1.1.1. Creating Annotated Server Endpoint</a></span></dt><dt><span class="section"><a href="getting-started.html#d0e79">1.1.2. Client Endpoint</a></span></dt><dt><span class="section"><a href="getting-started.html#websocket-programmatic-endpoint">1.1.3. Creating Server Endpoint Programmatically</a></span></dt><dt><span class="section"><a href="getting-started.html#standalone-mode">1.1.4. Tyrus in Standalone Mode</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="modules-and-dependencies.html">2. Tyrus Modules and Dependencies</a></span></dt><dt><span class="chapter"><a href="deployment.html">3. Deploying WebSocket Endpoints</a></span></dt><dd><dl><dt><span class="section"><a href="deployment.html#d0e335">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="deployment.html#d0e360">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="deployment.html#d0e411">3.2. Deploying endpoints via <code class="code">javax.websocket.server.ServerContainer</code></a></span></dt></dl></dd><dt><span class="chapter"><a href="websocket-api.html">4. WebSocket API Endpoints, Sessions and MessageHandlers</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e441">4.1. Endpoint Classes</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e465">4.1.1. javax.websocket.server.ServerEndpoint</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e600">4.1.2. javax.websocket.ClientEndpoint</a></span></dt></dl></dd><dt><span class="section"><a href="websocket-api.html#d0e642">4.2. Endpoint method-level annotations</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e645">4.2.1. @OnOpen</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e658">4.2.2. @OnClose</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e671">4.2.3. @OnError</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e684">4.2.4. @OnMessage</a></span></dt></dl></dd><dt><span class="section"><a href="websocket-api.html#d0e697">4.3. MessageHandlers</a></span></dt></dl></dd><dt><span class="chapter"><a href="configurations.html">5. Configurations</a></span></dt><dd><dl><dt><span class="section"><a href="configurations.html#d0e786">5.1. <code class="code">javax.websocket.server.ServerEndpointConfig</code></a></span></dt><dt><span class="section"><a href="configurations.html#d0e839">5.2. <code class="code">javax.websocket.ClientEndpointConfig</code></a></span></dt></dl></dd><dt><span class="chapter"><a href="lifecycle.html">6. Endpoint Lifecycle, Sessions, Sending Messages</a></span></dt><dd><dl><dt><span class="section"><a href="lifecycle.html#d0e871">6.1. Endpoint Lifecycle</a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e891">6.2. <code class="code">javax.websocket.Session</code></a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e976">6.3. Sending Messages</a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e1008">6.4. RemoteEndpoint</a></span></dt><dd><dl><dt><span class="section"><a href="lifecycle.html#d0e1022">6.4.1. <code class="code">javax.websocket.RemoteEndpoint.Basic</code></a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e1046">6.4.2. <code class="code">javax.websocket.RemoteEndpoint.Async</code></a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="injection.html">7. Injection Support</a></span></dt><dd><dl><dt><span class="section"><a href="injection.html#d0e1076">7.1. <code class="code">javax.inject.Inject</code> sample</a></span></dt><dt><span class="section"><a href="injection.html#d0e1103">7.2. EJB sample</a></span></dt></dl></dd><dt><span class="chapter"><a href="tyrus-proprietary-config.html">8. Tyrus proprietary configuration</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1129">8.1. Client-side SSL configuration</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1150">8.1.1. Host verification</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1172">8.2. Asynchronous connectToServer methods</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1185">8.3. Optimized broadcast</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1198">8.4. Incoming buffer size</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1216">8.5. Shared client container</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1238">8.5.1. Custom masking key generator</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1259">8.6. WebSocket Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1284">8.6.1. ExtendedExtension sample</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1305">8.6.2. Per Message Deflate Extension</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1312">8.7. Client reconnect</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1324">8.8. Client behind proxy</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1332">8.9. JDK 7 client</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1354">8.9.1. SSL configuration</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1374">8.10. Tracing support</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1382">8.10.1. Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1448">8.10.2. Tracing Examples</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1476">8.11. Client handshake request and response logging</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1484">8.12. JMX Monitoring</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1558">8.12.1. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1575">8.13. Maximal number of open sessions on server-side</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1594">8.13.1. Maximal number of open sessions per application</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1616">8.13.2. Maximal number of open sessions per remote address</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1644">8.13.3. Maximal number of open sessions per endpoint</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1659">8.14. Client HTTP Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1684">8.14.1. Credentials</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1692">8.14.2. Auth Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1710">8.14.3. User defined authenticator</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1737">8.14.4. Examples</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1775">8.15. Client HTTP Redirect</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1792">8.15.1. Supported HTTP response codes</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1817">8.15.2. Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1849">8.15.3. Exception handling</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1886">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="tyrus-proprietary-config.html#d0e1907">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="modules-and-dependencies.html#dependencies-table-modules">Tyrus core modules</a></dt><dt>2.2. <a href="modules-and-dependencies.html#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="getting-started.html#websocket-annotated-echo-endpoint">Annotated Echo Endpoint</a></dt><dt>1.2. <a href="getting-started.html#websocket-client-endpoint">Client Endpoint</a></dt><dt>1.3. <a href="getting-started.html#websocket-programmatic-echo-endpoint">Programmatic Echo Endpoint</a></dt><dt>3.1. <a href="deployment.html#deployment-serverapplicationconfig">Deployment of WAR containing several classes extending <code class="code">javax.websocket.server.ServerApplicationConfig</code></a></dt><dt>3.2. <a href="deployment.html#deployment-servercontainer">Deployment of Annotated Endpoint Using ServerContainer</a></dt><dt>4.1. <a href="websocket-api.html#endpoints-echo-endpoint">Echo sample server endpoint.</a></dt><dt>4.2. <a href="websocket-api.html#endpoints-serverendpoint-annotation">javax.websocket.server.ServerEndpoint with all fields specified</a></dt><dt>4.3. <a href="websocket-api.html#d0e511">Specifying URI path parameter</a></dt><dt>4.4. <a href="websocket-api.html#d0e529">SampleDecoder</a></dt><dt>4.5. <a href="websocket-api.html#d0e547">SampleEncoder</a></dt><dt>4.6. <a href="websocket-api.html#d0e605">SampleClientEndpoint</a></dt><dt>4.7. <a href="websocket-api.html#d0e652">@OnOpen with Session and EndpointConfig parameters.</a></dt><dt>4.8. <a href="websocket-api.html#d0e665">@OnClose with Session and CloseReason parameters.</a></dt><dt>4.9. <a href="websocket-api.html#d0e678">@OnError with Session and Throwable parameters.</a></dt><dt>4.10. <a href="websocket-api.html#d0e691">@OnError with Session and Throwable parameters.</a></dt><dt>4.11. <a href="websocket-api.html#d0e710">MessageHandler basic example</a></dt><dt>5.1. <a href="configurations.html#d0e823">Configuration for EchoEndpoint Deployment</a></dt><dt>5.2. <a href="configurations.html#d0e833">ServerEndpointConfigu built using Builder</a></dt><dt>5.3. <a href="configurations.html#d0e862">ClientEndpointConfig built using Builder</a></dt><dt>6.1. <a href="lifecycle.html#lifecycle-echo-sample">Lifecycle echo sample</a></dt><dt>6.2. <a href="lifecycle.html#lifecycle-onmessage-sample">Sending message in @OnMessage</a></dt><dt>6.3. <a href="lifecycle.html#lifecycle-remote-endpoint-sample">Sending message via RemoteEndpoint.Basic instance</a></dt><dt>6.4. <a href="lifecycle.html#lifecycle-remote-endpoint-partial-sample">Method for sending partial text message</a></dt><dt>6.5. <a href="lifecycle.html#lifecycle-remote-endpoint-async-future">Sending mesage the async way using Future</a></dt><dt>7.1. <a href="injection.html#cdi-simple-bean">Injecting bean into <code class="code">javax.websocket.server.ServerEndpoint</code></a></dt><dt>7.2. <a href="injection.html#cdi-singleton-bean">Echo sample server endpoint.</a></dt></dl></div></div><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
+            function path() {
+              var args = arguments,
+                  result = []
+                  ;
+
+              for(var i = 0; i < args.length; i++)
+                  result.push(args[i].replace('@', 'http://tyrus.java.net/sh/'));
+
+              return result
+            };
+
+            SyntaxHighlighter.autoloader.apply(null, path(
+              'applescript            @shBrushAppleScript.js',
+              'actionscript3 as3      @shBrushAS3.js',
+              'bash shell             @shBrushBash.js',
+              'coldfusion cf          @shBrushColdFusion.js',
+              'cpp c                  @shBrushCpp.js',
+              'c# c-sharp csharp      @shBrushCSharp.js',
+              'css                    @shBrushCss.js',
+              'delphi pascal          @shBrushDelphi.js',
+              'diff patch pas         @shBrushDiff.js',
+              'erl erlang             @shBrushErlang.js',
+              'groovy                 @shBrushGroovy.js',
+              'java                   @shBrushJava.js',
+              'jfx javafx             @shBrushJavaFX.js',
+              'js jscript javascript  @shBrushJScript.js',
+              'perl pl                @shBrushPerl.js',
+              'php                    @shBrushPhp.js',
+              'text plain             @shBrushPlain.js',
+              'py python              @shBrushPython.js',
+              'ruby rails ror rb      @shBrushRuby.js',
+              'sass scss              @shBrushSass.js',
+              'scala                  @shBrushScala.js',
+              'sql                    @shBrushSql.js',
+              'vb vbnet               @shBrushVb.js',
+              'xml xhtml xslt html    @shBrushXml.js'
+            ));
+
+            SyntaxHighlighter.all();
+        </script><script>
+              (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+              (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+              })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+              ga('create', 'UA-41373632-1', 'java.net');
+              ga('send', 'pageview');
+        </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="preface.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right" valign="top">&nbsp;Preface</td></tr></table></div></div></body></html>
\ No newline at end of file
diff --git a/documentation/1.20/index/injection.html b/documentation/1.20/index/injection.html
new file mode 100644
index 00000000..53871810
--- /dev/null
+++ b/documentation/1.20/index/injection.html
@@ -0,0 +1,109 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;7.&nbsp;Injection Support</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="lifecycle.html" title="Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages"><link rel="next" href="tyrus-proprietary-config.html" title="Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;7.&nbsp;Injection Support</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="lifecycle.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="tyrus-proprietary-config.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="injection"></a>Chapter&nbsp;7.&nbsp;Injection Support</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="injection.html#d0e1076">7.1. <code class="code">javax.inject.Inject</code> sample</a></span></dt><dt><span class="section"><a href="injection.html#d0e1103">7.2. EJB sample</a></span></dt></dl></div><p>
+        As required in Java API for WebSocket, Tyrus supports full field, method and constructor injection using <code class="code">javax.inject.Inject</code>
+        into all websocket endpoint classes as well as the use of the interceptors on these classes.
+        Except this,  Tyrus also supports some of the EJB annotations. Currently <code class="code">javax.ejb.Stateful</code>,
+        <code class="code">javax.ejb.Singleton</code> and <code class="code">javax.ejb.Stateless</code> annotations are supported.
+    </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1076"></a>7.1.&nbsp;<code class="code">javax.inject.Inject</code> sample</h2></div></div></div><p>
+            The following example presents how to inject a bean to the <code class="code">javax.websocket.server.ServerEndpoint</code>
+            annotated class using <code class="code">javax.inject.Inject</code>. Class <code class="code">InjectedSimpleBean</code> gets injected
+            into class <code class="code">SimpleEndpoint</code> on line 15.
+            </p><div class="example"><a name="cdi-simple-bean"></a><p class="title"><b>Example&nbsp;7.1.&nbsp;Injecting bean into <code class="code">javax.websocket.server.ServerEndpoint</code></b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class InjectedSimpleBean {
+
+    private static final String TEXT = " (from your server)";
+
+    public String getText() {
+        return TEXT;
+    }
+}
+
+@ServerEndpoint(value = "/simple")
+public class SimpleEndpoint {
+
+    private boolean postConstructCalled = false;
+
+    @Inject
+    InjectedSimpleBean bean;
+
+    @OnMessage
+    public String echo(String message) {
+        return String.format("%s%s", message, bean.getText());
+    }
+}</pre></div></div><p><br class="example-break">
+        </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1103"></a>7.2.&nbsp;EJB sample</h2></div></div></div><p>
+            The following sample presents how to turn <code class="code">javax.websocket.server.ServerEndpoint</code> annotated class
+            into <code class="code">javax.ejb.Singleton</code> and use interceptor on it.
+            </p><div class="example"><a name="cdi-singleton-bean"></a><p class="title"><b>Example&nbsp;7.2.&nbsp;Echo sample server endpoint.</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint(value = "/singleton")
+@Singleton
+@Interceptors(LoggingInterceptor.class)
+public class SingletonEndpoint {
+
+    int counter = 0;
+    public static boolean interceptorCalled = false;
+
+    @OnMessage
+    public String echo(String message) {
+        return interceptorCalled ? String.format("%s%s", message, counter++) : "LoggingInterceptor not called.";
+    }
+}
+
+public class LoggingInterceptor {
+
+    @AroundInvoke
+    public Object manageTransaction(InvocationContext ctx) throws Exception {
+        SingletonEndpoint.interceptorCalled = true;
+        Logger.getLogger(getClass().getName()).info("LOGGING.");
+        return ctx.proceed();
+    }
+}
+</pre></div></div><p><br class="example-break">
+        </p></div></div><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
+            function path() {
+              var args = arguments,
+                  result = []
+                  ;
+
+              for(var i = 0; i < args.length; i++)
+                  result.push(args[i].replace('@', 'http://tyrus.java.net/sh/'));
+
+              return result
+            };
+
+            SyntaxHighlighter.autoloader.apply(null, path(
+              'applescript            @shBrushAppleScript.js',
+              'actionscript3 as3      @shBrushAS3.js',
+              'bash shell             @shBrushBash.js',
+              'coldfusion cf          @shBrushColdFusion.js',
+              'cpp c                  @shBrushCpp.js',
+              'c# c-sharp csharp      @shBrushCSharp.js',
+              'css                    @shBrushCss.js',
+              'delphi pascal          @shBrushDelphi.js',
+              'diff patch pas         @shBrushDiff.js',
+              'erl erlang             @shBrushErlang.js',
+              'groovy                 @shBrushGroovy.js',
+              'java                   @shBrushJava.js',
+              'jfx javafx             @shBrushJavaFX.js',
+              'js jscript javascript  @shBrushJScript.js',
+              'perl pl                @shBrushPerl.js',
+              'php                    @shBrushPhp.js',
+              'text plain             @shBrushPlain.js',
+              'py python              @shBrushPython.js',
+              'ruby rails ror rb      @shBrushRuby.js',
+              'sass scss              @shBrushSass.js',
+              'scala                  @shBrushScala.js',
+              'sql                    @shBrushSql.js',
+              'vb vbnet               @shBrushVb.js',
+              'xml xhtml xslt html    @shBrushXml.js'
+            ));
+
+            SyntaxHighlighter.all();
+        </script><script>
+              (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+              (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+              })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+              ga('create', 'UA-41373632-1', 'java.net');
+              ga('send', 'pageview');
+        </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="lifecycle.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="tyrus-proprietary-config.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration</td></tr></table></div></div></body></html>
\ No newline at end of file
diff --git a/documentation/1.20/index/lifecycle.html b/documentation/1.20/index/lifecycle.html
new file mode 100644
index 00000000..a12dc108
--- /dev/null
+++ b/documentation/1.20/index/lifecycle.html
@@ -0,0 +1,158 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="configurations.html" title="Chapter&nbsp;5.&nbsp;Configurations"><link rel="next" href="injection.html" title="Chapter&nbsp;7.&nbsp;Injection Support"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="configurations.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="injection.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="lifecycle"></a>Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="lifecycle.html#d0e871">6.1. Endpoint Lifecycle</a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e891">6.2. <code class="code">javax.websocket.Session</code></a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e976">6.3. Sending Messages</a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e1008">6.4. RemoteEndpoint</a></span></dt><dd><dl><dt><span class="section"><a href="lifecycle.html#d0e1022">6.4.1. <code class="code">javax.websocket.RemoteEndpoint.Basic</code></a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e1046">6.4.2. <code class="code">javax.websocket.RemoteEndpoint.Async</code></a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e871"></a>6.1.&nbsp;Endpoint Lifecycle</h2></div></div></div><p>
+                As mentioned before, the endpoint in Java API for WebSocket is represented either by instance of <code class="code">javax.websocket.Endpoint</code>,
+                or by class annotated with either <code class="code">javax.websocket.server.ServerEndpoint</code> or
+                <code class="code">javax.websocket.ClientEndpoint</code>. Unless otherwise defined by developer provided configurator
+                (defined in instance of <code class="code">javax.websocket.server.ServerEndpointConfig</code> or
+                <code class="code">javax.websocket.ClientEndpointConfig</code>, Tyrus uses one endpoint instance per VM per connected
+                peer. Therefore one endpoint instance typically handles connections from one peer.
+            </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e891"></a>6.2.&nbsp;<code class="code">javax.websocket.Session</code></h2></div></div></div><p>
+                The sequence of interactions between an endpoint instance and remote peer is in Java API for WebSocket modelled by
+                <code class="code">javax.websocket.Session</code> instance. This interaction starts by mandatory open notification,
+                continues by 0 - n websocket messages and is finished by mandatory closing notification.
+            </p><p>
+                The <code class="code">javax.websocket.Session</code> instance is passed by Tyrus to the user in the following methods
+                for programmatic endpoints:
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: opencircle; "><li class="listitem" style="list-style-type: circle"><p>
+                            <code class="code">public void onOpen(Session session, EndpointConfig config)</code>
+                        </p></li><li class="listitem" style="list-style-type: circle"><p>
+                            <code class="code">public void onClose(Session session, CloseReason closeReason)</code>
+                        </p></li><li class="listitem" style="list-style-type: circle"><p>
+                            <code class="code">public void onError(Session session, Throwable thr)</code>
+                        </p></li></ul></div><p>
+            </p><p>
+                The <code class="code">javax.websocket.Session</code> instance is passed by Tyrus to the user in the methods
+                annotated by following annotations for annotated endpoints:
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: opencircle; "><li class="listitem" style="list-style-type: circle"><p>
+                            method annotated with <code class="code">javax.websocket.OnOpen</code>
+                        </p></li><li class="listitem" style="list-style-type: circle"><p>
+                            method annotated with <code class="code">javax.websocket.OnMessage</code>
+                        </p></li><li class="listitem" style="list-style-type: circle"><p>
+                            method annotated with <code class="code">javax.websocket.OnClose</code>
+                        </p></li><li class="listitem" style="list-style-type: circle"><p>
+                            method annotated with <code class="code">javax.websocket.OnError</code>
+                        </p></li></ul></div><p>
+                In each of the methods annotated with the preceeding annotations the user may use parameter of type
+                <code class="code">javax.websocket.Session</code>. In the following example the developer wants to send a message in
+                the method annotated with <code class="code">javax.websocket.OnOpen</code>. As we will demonstrate later, the developer
+                needs the session instance to do so. According to Java API for WebSocket Session is one of the allowed parameters in
+                methods annotated with  <code class="code">javax.websocket.OnOpen</code>. Once the annotated method gets called,
+                Tyrus passes in the correct instance of <code class="code">javax.websocket.Session</code>.
+            </p><p>
+                </p><div class="example"><a name="lifecycle-echo-sample"></a><p class="title"><b>Example&nbsp;6.1.&nbsp;Lifecycle echo sample</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/echo")
+public class EchoEndpoint {
+
+    @OnOpen
+    public void onOpen(Session session) throws IOException {
+        session.getBasicRemote().sendText("onOpen");
+    }
+
+    @OnMessage
+    public String echo(String message) {
+        return message;
+    }
+
+    @OnError
+    public void onError(Throwable t) {
+        t.printStackTrace();
+    }
+}</pre></div></div><p><br class="example-break">
+            </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e976"></a>6.3.&nbsp;Sending Messages</h2></div></div></div><p>
+                Generally there are two ways how to send message to the peer endpoint. First one is usable for annotated
+                endpoints only. The user may send the message by returning the message content from the method annotated
+                with <code class="code">javax.websocket.OnMessage</code>. In the following example the message m is sent back to the
+                remote endpoint.
+            </p><p>
+                </p><div class="example"><a name="lifecycle-onmessage-sample"></a><p class="title"><b>Example&nbsp;6.2.&nbsp;Sending message in @OnMessage</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@OnMessage
+public String echo(String m) {
+    return m;                                                                                                                             &nbsp;&nbsp;
+}</pre></div></div><p><br class="example-break">
+            </p><p>
+            The other option how to send a message is to obtain the <code class="code">javax.websocket.RemoteEndpoint</code> instance
+            via the <code class="code">javax.websocket.Session</code> instance. See the following example:
+        </p><p>
+            </p><div class="example"><a name="lifecycle-remote-endpoint-sample"></a><p class="title"><b>Example&nbsp;6.3.&nbsp;Sending message via RemoteEndpoint.Basic instance</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@OnMessage
+public void echo(String message, Session session) {
+    session.getBasicRemote().sendText(message);
+}</pre></div></div><p><br class="example-break">
+        </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1008"></a>6.4.&nbsp;RemoteEndpoint</h2></div></div></div><p>
+            The interface <code class="code">javax.websocket.RemoteEndpoint</code>, part of Java API for WebSocket, is designed to represent the
+            other end of the communication (related to the endpoint), so the developer uses it to send the message.
+            There are two basic interfaces the user may use - <code class="code">javax.websocket.RemoteEndpoint$Basic</code> and
+            <code class="code">javax.websocket.RemoteEndpoint$Async</code>.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1022"></a>6.4.1.&nbsp;<code class="code">javax.websocket.RemoteEndpoint.Basic</code></h3></div></div></div><p>
+                This representation of the peer of a web socket conversation is used to send synchronous messages. The point
+                of completion of the send is defined when all the supplied data has been written to the underlying connection.
+                The methods for sending messages on the
+                <code class="code">javax.websocket.RemoteEndpoint$Basic</code> block until this point of completion is reached, except for
+                <code class="code">javax.websocket.RemoteEndpoint$Basic#getSendStream()</code> and
+                <code class="code">javax.websocket.RemoteEndpoint$Basic#getSendWriter()</code> which present traditional blocking I/O streams
+                to write messages. See the example
+                <a class="link" href="lifecycle.html#lifecycle-remote-endpoint-sample" title="Example&nbsp;6.3.&nbsp;Sending message via RemoteEndpoint.Basic instance">"Sending message via RemoteEndpoint.Basic instance"</a>
+                to see how the whole text message is send. The following example demonstrates a method which sends the
+                partial text method to the peer:
+                </p><div class="example"><a name="lifecycle-remote-endpoint-partial-sample"></a><p class="title"><b>Example&nbsp;6.4.&nbsp;Method for sending partial text message</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public void sendPartialTextMessage(String message, Boolean isLast, Session session){
+    try {
+        session.getBasicRemote().sendText(message, isLast);
+    } catch (IOException e) {
+        e.printStackTrace();
+    }
+}</pre></div></div><p><br class="example-break">
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1046"></a>6.4.2.&nbsp;<code class="code">javax.websocket.RemoteEndpoint.Async</code></h3></div></div></div><p>
+                This representation of the peer of a web socket conversation has the ability to send messages
+                asynchronously. The point of completion of the send is defined when all the supplied data has been
+                written to the underlying connection. The completion handlers for the asynchronous methods are always
+                called with a different thread from that which initiated the send.
+                </p><div class="example"><a name="lifecycle-remote-endpoint-async-future"></a><p class="title"><b>Example&nbsp;6.5.&nbsp;Sending mesage the async way using Future</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public void sendWholeAsyncMessage(String message, Session session){
+    Future&lt;Void&gt; future = session.getAsyncRemote().sendText(message);
+}</pre></div></div><p><br class="example-break">
+            </p></div></div></div><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
+            function path() {
+              var args = arguments,
+                  result = []
+                  ;
+
+              for(var i = 0; i < args.length; i++)
+                  result.push(args[i].replace('@', 'http://tyrus.java.net/sh/'));
+
+              return result
+            };
+
+            SyntaxHighlighter.autoloader.apply(null, path(
+              'applescript            @shBrushAppleScript.js',
+              'actionscript3 as3      @shBrushAS3.js',
+              'bash shell             @shBrushBash.js',
+              'coldfusion cf          @shBrushColdFusion.js',
+              'cpp c                  @shBrushCpp.js',
+              'c# c-sharp csharp      @shBrushCSharp.js',
+              'css                    @shBrushCss.js',
+              'delphi pascal          @shBrushDelphi.js',
+              'diff patch pas         @shBrushDiff.js',
+              'erl erlang             @shBrushErlang.js',
+              'groovy                 @shBrushGroovy.js',
+              'java                   @shBrushJava.js',
+              'jfx javafx             @shBrushJavaFX.js',
+              'js jscript javascript  @shBrushJScript.js',
+              'perl pl                @shBrushPerl.js',
+              'php                    @shBrushPhp.js',
+              'text plain             @shBrushPlain.js',
+              'py python              @shBrushPython.js',
+              'ruby rails ror rb      @shBrushRuby.js',
+              'sass scss              @shBrushSass.js',
+              'scala                  @shBrushScala.js',
+              'sql                    @shBrushSql.js',
+              'vb vbnet               @shBrushVb.js',
+              'xml xhtml xslt html    @shBrushXml.js'
+            ));
+
+            SyntaxHighlighter.all();
+        </script><script>
+              (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+              (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+              })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+              ga('create', 'UA-41373632-1', 'java.net');
+              ga('send', 'pageview');
+        </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="configurations.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="injection.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;5.&nbsp;Configurations&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;7.&nbsp;Injection Support</td></tr></table></div></div></body></html>
\ No newline at end of file
diff --git a/documentation/1.20/index/modules-and-dependencies.html b/documentation/1.20/index/modules-and-dependencies.html
new file mode 100644
index 00000000..370527b1
--- /dev/null
+++ b/documentation/1.20/index/modules-and-dependencies.html
@@ -0,0 +1,107 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="getting-started.html" title="Chapter&nbsp;1.&nbsp;Getting Started"><link rel="next" href="deployment.html" title="Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="getting-started.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="deployment.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="modules-and-dependencies"></a>Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies</h1></div></div></div><p>
+        Tyrus is built, assembled and installed using Maven. Tyrus is deployed to maven.org maven repository
+        at the following location:<a class="link" href="http://search.maven.org/" target="_top">http://search.maven.org/</a>.
+        Jars, jar sources, jar javadoc and samples are all available on the java.net maven repository.
+    </p><p>
+        All Tyrus components are built using Java SE 7 compiler. It means, you will also need at least Java SE 7
+        to be able to compile and run your application. Developers using maven are likely to find it easier to include
+        and
+        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|1.20|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|1.20|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|1.20|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|1.20|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|1.20|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/1.20/tyrus-samples-1.20-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|1.20|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|1.20|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|1.20|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|1.20|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|1.20|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><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
+            function path() {
+              var args = arguments,
+                  result = []
+                  ;
+
+              for(var i = 0; i < args.length; i++)
+                  result.push(args[i].replace('@', 'http://tyrus.java.net/sh/'));
+
+              return result
+            };
+
+            SyntaxHighlighter.autoloader.apply(null, path(
+              'applescript            @shBrushAppleScript.js',
+              'actionscript3 as3      @shBrushAS3.js',
+              'bash shell             @shBrushBash.js',
+              'coldfusion cf          @shBrushColdFusion.js',
+              'cpp c                  @shBrushCpp.js',
+              'c# c-sharp csharp      @shBrushCSharp.js',
+              'css                    @shBrushCss.js',
+              'delphi pascal          @shBrushDelphi.js',
+              'diff patch pas         @shBrushDiff.js',
+              'erl erlang             @shBrushErlang.js',
+              'groovy                 @shBrushGroovy.js',
+              'java                   @shBrushJava.js',
+              'jfx javafx             @shBrushJavaFX.js',
+              'js jscript javascript  @shBrushJScript.js',
+              'perl pl                @shBrushPerl.js',
+              'php                    @shBrushPhp.js',
+              'text plain             @shBrushPlain.js',
+              'py python              @shBrushPython.js',
+              'ruby rails ror rb      @shBrushRuby.js',
+              'sass scss              @shBrushSass.js',
+              'scala                  @shBrushScala.js',
+              'sql                    @shBrushSql.js',
+              'vb vbnet               @shBrushVb.js',
+              'xml xhtml xslt html    @shBrushXml.js'
+            ));
+
+            SyntaxHighlighter.all();
+        </script><script>
+              (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+              (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+              })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+              ga('create', 'UA-41373632-1', 'java.net');
+              ga('send', 'pageview');
+        </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="getting-started.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="deployment.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;1.&nbsp;Getting Started&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints</td></tr></table></div></div></body></html>
\ No newline at end of file
diff --git a/documentation/1.20/index/preface.html b/documentation/1.20/index/preface.html
new file mode 100644
index 00000000..e863481e
--- /dev/null
+++ b/documentation/1.20/index/preface.html
@@ -0,0 +1,62 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Preface</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="index.html" title="Tyrus 1.20 User Guide"><link rel="next" href="getting-started.html" title="Chapter&nbsp;1.&nbsp;Getting Started"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Preface</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="getting-started.html">Next</a></td></tr></table><hr></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 1.20. 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
+            <a class="link" href="https://projects.eclipse.org/projects/ee4j.websocket" target="_top">Java API for WebSocket</a>
+            home pages as an additional source of information about Tyrus features and API.
+
+            If you would like to contribute to the guide or have questions
+            on things not covered in our docs, please contact us at
+            <a class="link" href="https://dev.eclipse.org/mailman/listinfo/tyrus-dev" target="_top">tyrus-dev@eclipse.org</a>.
+        </p></div><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
+            function path() {
+              var args = arguments,
+                  result = []
+                  ;
+
+              for(var i = 0; i < args.length; i++)
+                  result.push(args[i].replace('@', 'http://tyrus.java.net/sh/'));
+
+              return result
+            };
+
+            SyntaxHighlighter.autoloader.apply(null, path(
+              'applescript            @shBrushAppleScript.js',
+              'actionscript3 as3      @shBrushAS3.js',
+              'bash shell             @shBrushBash.js',
+              'coldfusion cf          @shBrushColdFusion.js',
+              'cpp c                  @shBrushCpp.js',
+              'c# c-sharp csharp      @shBrushCSharp.js',
+              'css                    @shBrushCss.js',
+              'delphi pascal          @shBrushDelphi.js',
+              'diff patch pas         @shBrushDiff.js',
+              'erl erlang             @shBrushErlang.js',
+              'groovy                 @shBrushGroovy.js',
+              'java                   @shBrushJava.js',
+              'jfx javafx             @shBrushJavaFX.js',
+              'js jscript javascript  @shBrushJScript.js',
+              'perl pl                @shBrushPerl.js',
+              'php                    @shBrushPhp.js',
+              'text plain             @shBrushPlain.js',
+              'py python              @shBrushPython.js',
+              'ruby rails ror rb      @shBrushRuby.js',
+              'sass scss              @shBrushSass.js',
+              'scala                  @shBrushScala.js',
+              'sql                    @shBrushSql.js',
+              'vb vbnet               @shBrushVb.js',
+              'xml xhtml xslt html    @shBrushXml.js'
+            ));
+
+            SyntaxHighlighter.all();
+        </script><script>
+              (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+              (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+              })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+              ga('create', 'UA-41373632-1', 'java.net');
+              ga('send', 'pageview');
+        </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="getting-started.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Tyrus 1.20 User Guide&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;1.&nbsp;Getting Started</td></tr></table></div></div></body></html>
\ No newline at end of file
diff --git a/documentation/1.20/index/tyrus-proprietary-config.html b/documentation/1.20/index/tyrus-proprietary-config.html
new file mode 100644
index 00000000..b7584cba
--- /dev/null
+++ b/documentation/1.20/index/tyrus-proprietary-config.html
@@ -0,0 +1,1004 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="injection.html" title="Chapter&nbsp;7.&nbsp;Injection Support"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="injection.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;</td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="tyrus-proprietary-config"></a>Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1129">8.1. Client-side SSL configuration</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1150">8.1.1. Host verification</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1172">8.2. Asynchronous connectToServer methods</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1185">8.3. Optimized broadcast</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1198">8.4. Incoming buffer size</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1216">8.5. Shared client container</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1238">8.5.1. Custom masking key generator</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1259">8.6. WebSocket Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1284">8.6.1. ExtendedExtension sample</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1305">8.6.2. Per Message Deflate Extension</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1312">8.7. Client reconnect</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1324">8.8. Client behind proxy</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1332">8.9. JDK 7 client</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1354">8.9.1. SSL configuration</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1374">8.10. Tracing support</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1382">8.10.1. Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1448">8.10.2. Tracing Examples</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1476">8.11. Client handshake request and response logging</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1484">8.12. JMX Monitoring</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1558">8.12.1. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1575">8.13. Maximal number of open sessions on server-side</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1594">8.13.1. Maximal number of open sessions per application</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1616">8.13.2. Maximal number of open sessions per remote address</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1644">8.13.3. Maximal number of open sessions per endpoint</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1659">8.14. Client HTTP Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1684">8.14.1. Credentials</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1692">8.14.2. Auth Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1710">8.14.3. User defined authenticator</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1737">8.14.4. Examples</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1775">8.15. Client HTTP Redirect</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1792">8.15.1. Supported HTTP response codes</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1817">8.15.2. Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1849">8.15.3. Exception handling</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1886">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="tyrus-proprietary-config.html#d0e1907">8.16.1. Configuration</a></span></dt></dl></dd></dl></div><p>Following settings do have influence on Tyrus behaviour and are <span class="emphasis"><em>NOT</em></span> part of WebSocket
+    specification. If you are using following configurable options, your application might not be easily transferable to
+    other WebSocket API implementation.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1129"></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/1.20/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
+            allowing more control of host verification during the SSL handshake. For more details
+            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/1.20/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, "...");
+System.getProperties().put(SSLContextConfigurator.TRUST_STORE_FILE, "...");
+System.getProperties().put(SSLContextConfigurator.KEY_STORE_PASSWORD, "...");
+System.getProperties().put(SSLContextConfigurator.TRUST_STORE_PASSWORD, "...");
+final SSLContextConfigurator defaultConfig = new SSLContextConfigurator();
+
+defaultConfig.retrieve(System.getProperties());
+    // or setup SSLContextConfigurator using its API.
+
+SSLEngineConfigurator sslEngineConfigurator =
+    new SSLEngineConfigurator(defaultConfig, true, false, false);
+client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR,
+    sslEngineConfigurator);
+client.connectToServer(... , ClientEndpointConfig.Builder.create().build(),
+    new URI("wss://localhost:8181/sample-echo/echo"));
+}</pre><p>
+            If there seems to be a problem with Tyrus SSL connection, it is strongly recommended to use -Djavax.net.debug=all
+            system property as it provides invaluable information for troubleshooting.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1150"></a>8.1.1.&nbsp;Host verification</h3></div></div></div><p>
+                One of the key steps when establishing SSL connections is verifying that the host on the certificate
+                sent by the server matches the host Tyrus client tries to connect to and thus preventing a possibility of
+                a man-in-the-middle attack. Host verification is turned on by default in Tyrus, which means that Tyrus
+                will automatically check that the host provided in the URI in
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">client.connectToServer(... , new URI("wss://target-server:8181/application/endpoint"));
+                </pre><p> matches exactly the host the certificate has been issued for. Exact match is
+                the key word in the previous sentence as host can be either hostname or IP address and those two cannot be used
+                interchangeably. For instance when a certificate has been issued for "localhost", establishing an SSL connection
+                to "wss://127.0.0.1:8181/application/endpoint" will fail as the host does not match the one in the certificate.
+            </p><p>
+                The default host verification can be too restrictive for some cases and therefore Tyrus provides users
+                with means to to either disable the host verification (highly unrecommended in production) or to implement
+                their own host verifier. Providing custom host verifier will disable the default one. It is also important
+                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/1.20/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)
+client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
+                </pre><p>
+                The following sample shows how to register a custom host verifier:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(new SslContextConfigurator());
+sslEngineConfigurator.setHostnameVerifier(new HostnameVerifier() {
+    @Override
+    public boolean verify(String host, SSLSession sslSession) {
+        Certificate certificate = sslSession.getPeerCertificates()[0];
+        // validate the host in the certificate
+    }
+});
+client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
+                </pre><p>
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1172"></a>8.2.&nbsp;Asynchronous connectToServer methods</h2></div></div></div><p>WebSocketContainer.connectToServer(...) methods are by definition blocking - declared exceptions needs to
+        be thrown after connection attempt is made and it returns Session instance, which needs to be ready for sending
+        messages and invoking other methods, which require already established connection.</p><p>Existing connectToServer methods are fine for lots of uses, but it might cause issue when you are designing
+        application with highly responsible user interface. Tyrus introduces asynchronous variants to each connectToServer
+        method (prefixed with "async"), which returns Future&lt;Session&gt;. These methods do only simple check for provided
+        URL and the rest is executed in separate thread. All exceptions thrown during this phase are reported as cause
+        of ExecutionException thrown when calling Future&lt;Session&gt;.get().</p><p>Asynchronous connect methods are declared on Tyrus implementation of WebSocketContainer called ClientManager.</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ClientManager client = ClientManager.createClient();
+  final Future&lt;Session&gt; future = client.asyncConnectToServer(ClientEndpoint.class, URI.create("..."));
+  try {
+    future.get();
+  } catch (...) {
+}</pre><p>ClientManager contains async alternative to each connectToServer method.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1185"></a>8.3.&nbsp;Optimized broadcast</h2></div></div></div><p>One of the typical usecases we've seen so far for WebSocket server-side endpoints is broadcasting messages
+        to all connected clients, something like:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@OnMessage
+public void onMessage(Session session, String message) throws IOException {
+  for (Session s : session.getOpenSessions()) {
+    s.getBasicRemote().sendText(message);
+  }
+}</pre><p>Executing this code might cause serious load increase on your application server. Tyrus provides optimized
+        broadcast implementation, which takes advantage of the fact, that we are sending exactly same message to all clients,
+        so dataframe can be created and serialized only once. Furthermore, Tyrus can iterate over set of opened connections
+        faster than Session.getOpenSession().</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@OnMessage
+public void onMessage(Session session, String message) {
+  ((TyrusSession) session).broadcast(message);
+}</pre><p>Unfortunately, WebSocket API forbids anything else than Session in @OnMessage annotated method parameter,
+        so you cannot use TyrusSession there directly and you might need to perform instanceof check.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1198"></a>8.4.&nbsp;Incoming buffer size</h2></div></div></div><p>Sevlet container buffers incoming WebSocket frames and there must be a size limit to precede OutOfMemory
+        Exception and potentially DDoS attacks.</p><p>Configuration property is named <code class="code">"org.glassfish.tyrus.servlet.incoming-buffer-size"</code> and you can
+        set it in web.xml (this particular snipped sets the buffer size to 17000000 bytes (~16M payload):</p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    ">&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+
+  &lt;context-param&gt;
+    &lt;param-name&gt;org.glassfish.tyrus.servlet.incoming-buffer-size&lt;/param-name&gt;
+    &lt;param-value&gt;17000000&lt;/param-value&gt;
+  &lt;/context-param&gt;
+&lt;/web-app&gt;</pre><p>Default value is 4194315, which correspond to 4M plus few bytes to frame headers, so you should be able to
+        receive up to 4M long message without the need to care about this property.</p><p>Same issue is present on client side. There you can set this property via ClientManager:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ClientManager client = ClientManager.createClient();
+client.getProperties().put("org.glassfish.tyrus.incomingBufferSize", 6000000); // sets the incoming buffer size to 6000000 bytes.
+client.connectToServer( ... )</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1216"></a>8.5.&nbsp;Shared client container</h2></div></div></div><p>By default, WebSocket client implementation in Tyrus re-creates client runtime whenever WebSocketContainer#connectToServer
+            is invoked. This approach gives us some perks like out-of-the-box isolation and relatively low thread count
+            (currently we have 1 selector thread and 2 worker threads). Also it gives you the ability to stop the client
+            runtime &#8211; one Session instance is tied to exactly one client runtime, so we can stop it when Session is closed.
+            This seems as a good solution for most of WebSocket client use cases &#8211; you usually use java client from
+            application which uses it for communicating with server side and you typically don&#8217;t need more than 10 instances
+            (my personal estimate is that more than 90% applications won&#8217;t use more than 1 connection). There are several
+            reasons for it &#8211; of it is just a client, it needs to preserve server resources &#8211; one WebSocket connection means
+            one TCP connection and we don&#8217;t really want clients to consume more than needed. Previous statement may be
+            invalidated by WebSocket multiplexing extension, but for now, it is still valid.</p><p>On the other hand, WebSocket client implementations in some other containers took another (also correct)
+            approach &#8211; they share client runtime for creating all client connections. That means they might not have this
+            strict one session one runtime policy, they cannot really give user way how he to control system resources,
+            but surely it has another advantage &#8211; it can handle much more opened connections. Thread pools are share among
+            client sessions which may or may not have some unforeseen consequences, but if its implemented correctly, it
+            should outperform Tyrus solution mentioned in previous paragraph in some use cases, like the one mentioned
+            in <a class="link" href="https://java.net/jira/browse/TYRUS-275" target="_top">TYRUS-275</a> - performance tests. Reporter
+            created simple program which used WebSocket API to create clients and connect to remote endpoint and he measured
+            how many clients can he create (or in other words: how many parallel client connections can be created; I guess
+            that original test case is to measure possible number of concurrent clients on server side, but that does not
+            really matter for this post). Tyrus implementation loose compared to some other and it was exactly because it
+            did not have shared client runtime capability.</p><p>How can you use this feature?</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ClientManager client = ClientManager.createClient();
+
+client.getProperties().put(ClientProperties.SHARED_CONTAINER, true);</pre><p>You might also want to specify container idle timeout:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">client.getProperties().put(ClientProperties.SHARED_CONTAINER_IDLE_TIMEOUT, 5);</pre><p>Last but not least, you might want to specify thread pool sizes used by shared container (please use this feature only when you do know what are you doing. Grizzly by default does not limit max number of used threads,
+            so if you do that, please make sure thread pool size fits your purpose). Even though the default unlimited thread pool size is sufficient for the vast majority of client usages, it is also important ot note that
+            if the max. thread pool size is not specified and the clients which share the thread pool receive a large number of messages at the same moment, a new thread can be created for each of the received messages
+            which might demand large amount of system resources and might even lead to a program failure if the required resources are not available. Therefore for particularly busy clients setting the max thread pool
+            size can be only recommended. The following example shows how to set the maximal thread poll size.</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">client.getProperties().put(GrizzlyClientProperties.SELECTOR_THREAD_POOL_CONFIG, ThreadPoolConfig.defaultConfig().setMaxPoolSize(3));
+client.getProperties().put(GrizzlyClientProperties.WORKER_THREAD_POOL_CONFIG, ThreadPoolConfig.defaultConfig().setMaxPoolSize(10));</pre><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1238"></a>8.5.1.&nbsp;Custom masking key generator</h3></div></div></div><p>
+                As a security measure, all frames originating on a websocket client have to be masked with a random 4B value, which must be generated for each frame.
+                Moreover to fully comply with the security requirements of RFC 6455, a masking key of a frame must not be predictable from masking keys of previous frames
+                and therefore Tyrus uses <code class="code">java.security.SecureRandom</code> as a default masking key generator. While this is perfectly OK for most Tyrus client use cases,
+                usage of <code class="code">java.security.SecureRandom</code> might prove to be a performance issue, when the client is used for instance for highly parallel stress testing,
+                as it uses a synchronized singleton as a random entropy provider in its internals.
+            </p><p>
+                To overcome the limitations mentioned above, Tyrus allows replacing the default <code class="code">java.security.SecureRandom</code> with more scalable masking key generator.
+                Please, be aware that there might be security implications if you decide not to use a cryptographically secure random number generator
+                in production like the one in the following sample. Moreover the supplied random number generator should be also thread safe.
+                The following example shows, how a custom masking key generator can be configured:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ClientManager client = ClientManager.createClient();
+client.getProperties().put(ClientProperties.MASKING_KEY_GENERATOR, new MaskingKeyGenerator() {
+
+    private final Random random = new Random();
+
+    @Override
+    public int nextInt() {
+        return random.nextInt();
+    }
+});</pre><p>
+            </p><p>
+                It is also important to note that the scalability issue connected to the default masking key generator is not limited to the shared container client configuration,
+                but it is discussed in this section as it is assumed that shared container is used for highly parallel clients handling a lot of traffic, where the method
+                of masking key generation starts to matter.
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1259"></a>8.6.&nbsp;WebSocket Extensions</h2></div></div></div><p>Please note that Extensions support is considered to be experimental and any API can be changed anytime. Also,
+        you should ask yourself at least twice whether you don't want to achieve your goal by other means - WebSocket
+        Extension is very powerful and can easily break your application when not used with care or enough expertise.
+        </p><p>WebSocket frame used in ExtendedExtension:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class Frame {
+
+    public boolean isFin() { .. }
+    public boolean isRsv1() { .. }
+    public boolean isRsv2() { .. }
+    public boolean isRsv3() { .. }
+    public boolean isMask() { .. }
+    public byte getOpcode() { .. }
+    public long getPayloadLength() { .. }
+    public int getMaskingKey() { .. }
+    public byte[] getPayloadData() { .. }
+    public boolean isControlFrame() { .. }
+
+    public static Builder builder() { .. }
+    public static Builder builder(Frame frame) { .. }
+
+    public final static class Builder {
+
+    public Builder() { .. }
+    public Builder(Frame frame) { .. }
+    public Frame build() { .. }
+    public Builder fin(boolean fin) { .. }
+    public Builder rsv1(boolean rsv1) { .. }
+    public Builder rsv2(boolean rsv2) { .. }
+    public Builder rsv3(boolean rsv3) { .. }
+    public Builder mask(boolean mask) { .. }
+    public Builder opcode(byte opcode) { .. }
+    public Builder payloadLength(long payloadLength) { .. }
+    public Builder maskingKey(int maskingKey) { .. }
+    public Builder payloadData(byte[] payloadData) { .. }
+}</pre><p>Frame is immutable, so if you want to create new one, you need to create new builder, modify what you want
+        and build it:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">Frame newFrame = Frame.builder(originalFrame).rsv1(true).build();</pre><p>Note that there is only one convenience method: isControlFrame. Other information about frame type etc needs
+            to be evaluated directly from opcode, simply because there might not be enough information to get the correct
+            outcome or the information itself would not be very useful. For example: opcode 0&times;00 means continuation frame,
+            but you don&#8217;t have any chance to get the information about actual type (text or binary) without intercepting
+            data from previous frames. Consider Frame class as raw representation as possible. isControlFrame() can be also
+            gathered from opcode, but it is at least always deterministic and it will be used by most of extension
+            implementations. It is not usual to modify control frames as it might end with half closed connections or
+            unanswered ping messages.</p><p>ExtendedExtension representation needs to be able to handle extension parameter negotiation and actual processing
+        of incoming and outgoing frames. It also should be compatible with existing javax.websocket.Extension class, since we
+        want to re-use existing registration API and be able to return new extension instance included in response
+        from List&lt;Extension&gt; Session.getNegotiatedExtensions() call. Consider following:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public interface ExtendedExtension extends Extension {
+
+    Frame processIncoming(ExtensionContext context, Frame frame);
+    Frame processOutgoing(ExtensionContext context, Frame frame);
+
+    List onExtensionNegotiation(ExtensionContext context, List requestedParameters);
+    void onHandshakeResponse(ExtensionContext context, List responseParameters);
+
+    void destroy(ExtensionContext context);
+
+    interface ExtensionContext {
+
+        Map&lt;String, Object&gt; getProperties();
+    }
+}</pre><p>ExtendedExtension is capable of processing frames and influence parameter values during the handshake.
+            Extension is used on both client and server side and since the negotiation is only place where this fact
+            applies, we needed to somehow differentiate these sides. On server side, only onExtensionNegotiation(..)
+            method is invoked and on client side onHandshakeResponse(..). Server side method is a must, client side could
+            be somehow solved by implementing ClientEndpointConfig.Configurator#afterResponse(..) or calling
+            Session.getNegotiatedExtenions(), but it won&#8217;t be as easy to get this information back to extension instance
+            and even if it was, it won&#8217;t be very elegant. Also, you might suggest replacing processIncoming and
+            processOutgoing methods by just oneprocess(Frame) method. That is also possible, but then you might have to
+            assume current direction from frame instance or somehow from ExtensionContext, which is generally not a bad
+            idea, but it resulted it slightly less readable code.</p><p>ExtensionContext and related lifecycle method is there because original javax.websocket.Extension is singleton
+        and ExtendedExtension must obey this fact. But it does not meet some requirements we stated previously, like per
+        connection parameter negotiation and of course processing itself will most likely have some connection state.
+        Lifecycle of ExtensionContext is defined as follows: ExtensionContext instance is created right before onExtensionNegotiation
+        (server side) or onHandshakeResponse (client side) and destroyed after destroy method invocation. Obviously, processIncoming
+        or processOutgoing cannot be called before ExtensionContext is created or after is destroyed. You can think of handshake
+        related methods as @OnOpenand destroy as @OnClose.</p><p>For those more familiar with WebSocket protocol: process*(ExtensionContext, Frame) is always invoked with unmasked
+        frame, you don&#8217;t need to care about it. On the other side, payload is as it was received from the wire, before any
+            validation (UTF-8 check for text messages). This fact is particularly important when you are modifying text
+            message content, you need to make sure it is properly encoded in relation to other messages, because encoding/decoding
+            process is stateful &#8211; remainder after UTF-8 coding is used as input to coding process for next message. If you
+            want just test this feature and save yourself some headaches, don&#8217;t modify text message content or try binary
+            messages instead.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1284"></a>8.6.1.&nbsp;ExtendedExtension sample</h3></div></div></div><p>Let&#8217;s say we want to create extension which will encrypt and decrypt first byte of every binary message. Assume we have a key (one byte) and our symmetrical cipher will be XOR. (Just for simplicity (a XOR key XOR key) = a, so encrypt() and decrypt() functions are the same).</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class CryptoExtension implements ExtendedExtension {
+
+    @Override
+    public Frame processIncoming(ExtensionContext context, Frame frame) {
+         return lameCrypt(context, frame);
+    }
+
+    @Override
+    public Frame processOutgoing(ExtensionContext context, Frame frame) {
+        return lameCrypt(context, frame);
+    }
+
+    private Frame lameCrypt(ExtensionContext context, Frame frame) {
+        if(!frame.isControlFrame() &amp;&amp; (frame.getOpcode() == 0x02)) {
+            final byte[] payloadData = frame.getPayloadData();
+            payloadData[0] ^= (Byte)(context.getProperties().get("key"));
+
+            return Frame.builder(frame).payloadData(payloadData).build();
+        } else {
+            return frame;
+        }
+    }
+
+    @Override
+    public List onExtensionNegotiation(ExtensionContext context,
+                                       List requestedParameters) {
+        init(context);
+        // no params.
+        return null;
+    }
+
+    @Override
+    public void onHandshakeResponse(ExtensionContext context,
+    List responseParameters) {
+        init(context);
+    }
+
+    private void init(ExtensionContext context) {
+        context.getProperties().put("key", (byte)0x55);
+    }
+
+    @Override
+    public void destroy(ExtensionContext context) {
+        context.getProperties().clear();
+    }
+
+    @Override
+    public String getName() {
+        return "lame-crypto-extension";
+    }
+
+    @Override
+    public List getParameters() {
+        // no params.
+        return null;
+    }
+}</pre><p>You can see that ExtendedExtension is slightly more complicated that original Extension so the implementation
+            has to be also not as straightforward.. on the other hand, it does something. Sample code above shows possible
+            simplification mentioned earlier (one process method will be enough), but please take this as just sample
+            implementation. Real world case is usually more complicated.</p><p>Now when we have our CryptoExtension implemented, we want to use it. There is nothing new compared to standard
+            WebSocket Java API, feel free to skip this part if you are already familiar with it. Only programmatic version
+            will be demonstrated. It is possible to do it for annotated version as well, but it is little bit more complicated
+            on the server side and I want to keep the code as compact as possible.</p><p>Client registration</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ArrayList extensions = new ArrayList();
+extensions.add(new CryptoExtension());
+
+final ClientEndpointConfig clientConfiguration =
+    ClientEndpointConfig.Builder.create()
+    .extensions(extensions).build();
+
+WebSocketContainer client = ContainerProvider.getWebSocketContainer();
+final Session session = client.connectToServer(new Endpoint() {
+    @Override
+    public void onOpen(Session session, EndpointConfig config) {
+        // ...
+    }
+}, clientConfiguration, URI.create(/* ... */));</pre><p>Server registration:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class CryptoExtensionApplicationConfig implements ServerApplicationConfig {
+
+    @Override
+    public Set getEndpointConfigs(Set&lt;Class&lt;? extends Endpoint&gt;&gt; endpointClasses) {
+        Set endpointConfigs = new HashSet();
+        endpointConfigs.add(
+            ServerEndpointConfig.Builder.create(EchoEndpoint.class, "/echo")
+            .extensions(Arrays.asList(new CryptoExtension())).build()
+        );
+        return endpointConfigs;
+    }
+
+    @Override
+    public Set&lt;Class&lt;?&gt;&gt; getAnnotatedEndpointClasses(Set&lt;Class&lt;?&gt;&gt; scanned) {
+        // all scanned endpoints will be used.
+        return scanned;
+    }
+}
+
+public class EchoEndpoint extends Endpoint {
+    @Override
+    public void onOpen(Session session, EndpointConfig config) {
+        // ...
+    }
+}</pre><p>CryptoExtensionApplicationConfig will be found by servlets scanning mechanism and automatically used for
+                application configuration, no need to add anything (or even have) web.xml.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1305"></a>8.6.2.&nbsp;Per Message Deflate Extension</h3></div></div></div><p>The original goal of whole extension support was to implement Permessage extension as defined in
+                draft-ietf-hybi-permessage-compression-15 and we were able to achieve that goal. Well, not completely, current
+                implementation ignores parameters. But it seems like it does not matter much, it was tested with Chrome and it
+                works fine. Also it passes newest version of Autobahn test suite, which includes tests for this extension.</p><p>see PerMessageDeflateExtension.java (compatible with draft-ietf-hybi-permessage-compression-15, autobahn test suite) and
+                XWebKitDeflateExtension.java (compatible with Chrome and Firefox &#8211; same as previous, just different extension name)
+                </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1312"></a>8.7.&nbsp;Client reconnect</h2></div></div></div><p>If you need semi-persistent client connection, you can always implement some reconnect logic by yourself,
+        but Tyrus Client offers useful feature which should be much easier to use. See short sample code:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ClientManager client = ClientManager.createClient();
+ClientManager.ReconnectHandler reconnectHandler = new ClientManager.ReconnectHandler() {
+
+  private int counter = 0;
+
+  @Override
+  public boolean onDisconnect(CloseReason closeReason) {
+    counter++;
+    if (counter &lt;= 3) {
+      System.out.println("### Reconnecting... (reconnect count: " + counter + ")");
+      return true;
+    } else {
+      return false;
+    }
+  }
+
+  @Override
+  public boolean onConnectFailure(Exception exception) {
+    counter++;
+    if (counter &lt;= 3) {
+      System.out.println("### Reconnecting... (reconnect count: " + counter + ") " + exception.getMessage());
+
+      // Thread.sleep(...) or something other "sleep-like" expression can be put here - you might want
+      // to do it here to avoid potential DDoS when you don't limit number of reconnects.
+      return true;
+    } else {
+      return false;
+    }
+  }
+
+  @Override
+  public long getDelay() {
+    return 1;
+  }
+};
+
+client.getProperties().put(ClientProperties.RECONNECT_HANDLER, reconnectHandler);
+
+client.connectToServer(...)</pre><p>ReconnectHandler contains three methods, onDisconnect, onConnectFailure and getDelay. First will be executed
+        whenever @OnClose annotated method (or Endpoint.onClose(..)) is executed on client side - this should happen when
+        established connection is lost for any reason. You can find the reason in methods parameter. Other one, called
+        onConnectFailure is invoked when client fails to connect to remote endpoint, for example due to temporary network
+        issue or current high server load. Method getDelay is called after any of previous methods returns <code class="code">true</code>
+        and the returned value will be used to determine delay before next connection attempt. Default value is 5 seconds.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1324"></a>8.8.&nbsp;Client behind proxy</h2></div></div></div><p>
+            Tyrus client supports traversing proxies, but it is Tyrus specific feature and its configuration is shown
+            in the following code sample:
+            </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+ClientManager client = ClientManager.createClient();
+client.getProperties().put(ClientProperties.PROXY_URI, "http://my.proxy.com:80");
+            </pre><p>
+            Value is expected to be proxy URI. Protocol part is currently ignored, but must be present.
+        </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1332"></a>8.9.&nbsp;JDK 7 client</h2></div></div></div><p>
+            As has been said in previous chapters both Tyrus client and server were implemented on top of Grizzly NIO framework.
+            This still remains true, but an alternative Tyrus Websocket client implementation based on Java 7 Asynchronous Channel
+            API has been available since version 1.6. There are two options how to switch between client implementations.
+            If you do not mind using Tyrus specific API, the most straightforward way is to use:
+            </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+final ClientManager client = ClientManager.createClient(JdkClientContainer.class.getName());
+            </pre><p>
+            You just have to make sure that the dependency on JDK client is included in your project:
+            </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-container-jdk-client&lt;/artifactId&gt;
+  &lt;version&gt;1.20&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.
+        </p><p>
+            There is also an option how to use JDK client with the standard Websocket API.
+            </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+final WebSocketContainer client = ContainerProvider.getWebSocketContainer();
+            </pre><p>
+            The code listed above will scan class path for Websocket client implementations. A slight problem with this
+            approach is that if there is more than one client on the classpath, the first one discovered will be used.
+            Therefore if you intend to use JDK client with the standard API, you have to make sure that there is not
+            a Grizzly client on the classpath as it might be used instead.
+        </p><p>
+            The main reason why JDK client has been implemented is that it does not have any extra dependencies
+            except JDK 7 and of course some other Tyrus modules, which makes it considerable more lightweight compared
+            to Tyrus Grizzly client, which requires 1.4 MB of dependencies.
+        </p><p>
+            It is also important to note that the JDK client has been implemented in a way similar to Grizzly client
+            shared container option, which means that there is one thread pool shared among all clients.
+        </p><p>
+            Proxy configuration for JDK client is the same as for Grizzly client shown above.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1354"></a>8.9.1.&nbsp;SSL configuration</h3></div></div></div><p>
+                Alike in case of Grizzly client, accessing "wss" URLs will cause Tyrus client to pick up whatever keystore
+                and trust store is actually set for the current JVM instance. However, specifying SSL parameters
+                to be used with JDK client instance is little different from Grizzly client, because Grizzly client supports
+                both
+                <a class="link" href="https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLEngineConfigurator.html" target="_top">SSLEngineConfigurator</a>
+                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/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
+                and
+                <a class="link" href="https://tyrus.java.net/apidocs/1.20/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;    ">
+SslContextConfigurator sslContextConfigurator = new SslContextConfigurator();
+sslContextConfigurator.setTrustStoreFile("...");
+sslContextConfigurator.setTrustStorePassword("...");
+sslContextConfigurator.setTrustStoreType("...");
+sslContextConfigurator.setKeyStoreFile("...");
+sslContextConfigurator.setKeyStorePassword("...");
+sslContextConfigurator.setKeyStoreType("...");
+SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(sslContextConfigurator, true, false, false);
+
+client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
+                </pre><p>
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1374"></a>8.10.&nbsp;Tracing support</h2></div></div></div><p>
+            Apart from logging, Tyrus supports another useful means for debugging and diagnosing a deployed application which will
+            be referred to as tracing on the following lines. Tracing consists of including vital information about handshake
+            handling into a handshake response. The provided information includes among other things an insight into how Tyrus matches
+            handshake request URI against the URI of the deployed endpoints and how the best matching endpoint is selected.
+            The tracing information is included in a handshake response as a content of HTTP headers with
+            <code class="code">X-Tyrus-Tracing-</code> as the header names prefix.
+            All the tracing information will also be available in the server log if the appropriate logging level is set.
+            If it is still unclear, how Tyrus tracing works, please refer to the subsection with title Tracing Examples.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1382"></a>8.10.1.&nbsp;Configuration</h3></div></div></div><p>
+                Tracing support is disabled by default. You can enable it either "globally" for all application handshake requests
+                or selectively per handshake request. The tracing support activation is controlled by setting the
+                <code class="code">org.glassfish.tyrus.server.tracingType</code> configuration property. The property value is expected to be one of the following:
+
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>OFF - tracing support is disabled (default value).</p></li><li class="listitem"><p>ON_DEMAND - tracing support is in a stand-by mode; it is enabled selectively per handshake, via a special
+                            X-Tyrus-Tracing-Accept HTTP header in a handshake request.</p></li><li class="listitem"><p>ALL - tracing support is enabled for all handshake requests.</p></li></ul></div><p>
+
+                The level of detail of the information provided by Tyrus tracing facility - the tracing threshold - can be customized.
+                The tracing threshold can be set at the application level via <code class="code">org.glassfish.tyrus.server.tracingThreshold</code>
+                application configuration property in both Glassfish and Grizzly as will be shown in the following samples,
+                or at a request level, via X-Tyrus-Tracing-Threshold HTTP header in a handshake request. The request-level configuration
+                overrides any application level setting. There are 2 supported levels of detail for Tyrus tracing:
+
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>SUMMARY - very basic summary information about handshake processing</p></li><li class="listitem"><p>TRACE - detailed information about  handshake processing (default threshold value).</p></li></ul></div><p>
+            </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1412"></a>8.10.1.1.&nbsp;Global configuration examples</h4></div></div></div><p>
+                        As has been already said, tracing is disabled by default. The following code sample shows, how <code class="code">ON_DEMAND</code> tracing with
+                        level set to <code class="code">SUMMARY</code> can be enabled on Grizzly server:
+                        </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                            serverProperties.put(TyrusWebSocketEngine.TRACING_TYPE, ON_DEMAND);
+                            serverProperties.put(TyrusWebSocketEngine.TRACING_THRESHOLD, SUMMARY);
+                        </pre><p>
+                        Similarly <code class="code">ALL</code> tracing with level set to <code class="code">TRACE</code> (the default) can be enabled on Glassfish server in web.xml:
+                        </p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    ">&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+
+    &lt;context-param&gt;
+        &lt;param-name&gt;org.glassfish.tyrus.server.tracingType&lt;/param-name&gt;
+        &lt;param-value&gt;ALL&lt;/param-value&gt;
+    &lt;/context-param&gt;
+&lt;/web-app&gt;</pre><p>
+
+                        It has been also already mentioned that the tracing threshold configured on application level can be overridden per handshake request as
+                        will be shown in the following section.
+                    </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1435"></a>8.10.1.2.&nbsp;Configuring tracing via handshake request headers</h4></div></div></div><p>
+                    Whenever the tracing support is active (ON_DEMAND or ALL) you can customize the tracing behaviour by including one or more of the following request HTTP headers
+                    in the individual handshake requests:
+
+                    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>X-Tyrus-Tracing-Accept - used to enable the tracing support for the particular request. It is applied only when the application-level tracing support is configured to
+                                ON_DEMAND mode. The value of the header is not used by the Tyrus tracing facility and as such it can be any arbitrary (even empty) string.</p></li><li class="listitem"><p>X-Tyrus-Tracing-Threshold - used to override the tracing threshold. Allowed values are: SUMMARY, TRACE.</p></li></ul></div><p>
+                </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1448"></a>8.10.2.&nbsp;Tracing Examples</h3></div></div></div><p>
+                An example of a handshake request to a server in <code class="code">ON_DEMAND</code> tracing mode requesting <code class="code">SUMMARY</code> tracing information:
+                </p><pre class="screen">&nbsp;&nbsp;1 GET /endpoint/b HTTP/1.1
+&nbsp;&nbsp;2 Connection: Upgrade
+&nbsp;&nbsp;3 Host: localhost:8025
+&nbsp;&nbsp;4 Origin: localhost:8025
+&nbsp;&nbsp;5 Sec-WebSocket-Key: YrFldD8nhRW+6hJ2K/TMqw==
+&nbsp;&nbsp;6 Sec-WebSocket-Version: 13
+&nbsp;&nbsp;7 Upgrade: websocket
+&nbsp;&nbsp;8 X-Tyrus-Tracing-Accept: Whatever
+&nbsp;&nbsp;9 X-Tyrus-Tracing-Threshold: SUMMARY</pre><p>
+                An example of a possible response to the request above:
+                </p><pre class="screen">&nbsp;&nbsp;1 HTTP/1.1 404 Not found
+&nbsp;&nbsp;2 x-tyrus-tracing-00 : [0 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/{a}/b
+&nbsp;&nbsp;3 x-tyrus-tracing-01 : [0 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/{a}/b have different length
+&nbsp;&nbsp;4 x-tyrus-tracing-02 : [0 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/{a}/{b}
+&nbsp;&nbsp;5 x-tyrus-tracing-03 : [0 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/{a}/{b} have different length
+&nbsp;&nbsp;6 x-tyrus-tracing-04 : [0 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/a/b
+&nbsp;&nbsp;7 x-tyrus-tracing-05 : [1 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/a/b have different length
+&nbsp;&nbsp;8 x-tyrus-tracing-06 : [1 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/a/a
+&nbsp;&nbsp;9 x-tyrus-tracing-07 : [1 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/a/a have different length
+&nbsp;10 x-tyrus-tracing-08 : [1 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/a
+&nbsp;11 x-tyrus-tracing-09 : [1 ms] Segment "a" does not match
+&nbsp;12 x-tyrus-tracing-10 : [1 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/a/{b}
+&nbsp;13 x-tyrus-tracing-11 : [1 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/a/{b} have different length
+&nbsp;14 x-tyrus-tracing-12 : [3 ms] Endpoints matched to the request URI: []</pre><p>
+                The time in the square brackets in the sample above is the time since the handshake request has been received.
+            </p><p>
+                An example of a possible handshake response from a server in <code class="code">ALL</code> tracing mode with tracing threshold set to <code class="code">TRACE</code>:
+                </p><pre class="screen">&nbsp;&nbsp;1 HTTP/1.1 101
+&nbsp;&nbsp;2 connection: Upgrade
+&nbsp;&nbsp;3 sec-websocket-accept: C8/QbF4Mx9sX31sihUcnI19yqto=
+&nbsp;&nbsp;4 upgrade: websocket
+&nbsp;&nbsp;5 x-tyrus-tracing-00 : [0 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/{a}/b
+&nbsp;&nbsp;6 x-tyrus-tracing-01 : [0 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/{a}/{b}
+&nbsp;&nbsp;7 x-tyrus-tracing-02 : [0 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/a/b
+&nbsp;&nbsp;8 x-tyrus-tracing-03 : [1 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/a/a
+&nbsp;&nbsp;9 x-tyrus-tracing-04 : [1 ms] Segment "a" does not match
+&nbsp;10 x-tyrus-tracing-05 : [1 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/a
+&nbsp;11 x-tyrus-tracing-06 : [1 ms] URIs /samples-debug/endpoint/a/b and /samples-debug/endpoint/a have different length
+&nbsp;12 x-tyrus-tracing-07 : [1 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/a/{b}
+&nbsp;13 x-tyrus-tracing-08 : [3 ms] Choosing better match from /samples-debug/endpoint/{a}/b and /samples-debug/endpoint/a/b
+&nbsp;14 x-tyrus-tracing-09 : [3 ms] /samples-debug/endpoint/a/b is an exact match
+&nbsp;15 x-tyrus-tracing-10 : [3 ms] Choosing better match from /samples-debug/endpoint/a/{b} and /samples-debug/endpoint/{a}/b
+&nbsp;16 x-tyrus-tracing-11 : [3 ms] /samples-debug/endpoint/a/{b} is a  better match, because it has longer exact path
+&nbsp;17 x-tyrus-tracing-12 : [3 ms] Choosing better match from /samples-debug/endpoint/a/{b} and /samples-debug/endpoint/{a}/b
+&nbsp;18 x-tyrus-tracing-13 : [3 ms] /samples-debug/endpoint/a/{b} is a  better match, because it has longer exact path
+&nbsp;19 x-tyrus-tracing-14 : [3 ms] Choosing better match from /samples-debug/endpoint/a/{b} and /samples-debug/endpoint/a/b
+&nbsp;20 x-tyrus-tracing-15 : [3 ms] /samples-debug/endpoint/a/b is an exact match
+&nbsp;21 x-tyrus-tracing-16 : [3 ms] Choosing better match from /samples-debug/endpoint/{a}/{b} and /samples-debug/endpoint/a/{b}
+&nbsp;22 x-tyrus-tracing-17 : [4 ms] /samples-debug/endpoint/a/{b} is a  better match, because it has longer exact path
+&nbsp;23 x-tyrus-tracing-18 : [4 ms] Choosing better match from /samples-debug/endpoint/{a}/{b} and /samples-debug/endpoint/{a}/b
+&nbsp;24 x-tyrus-tracing-19 : [4 ms] /samples-debug/endpoint/{a}/b is a  better match, because /samples-debug/endpoint/{a}/{b} has more variables
+&nbsp;25 x-tyrus-tracing-20 : [4 ms] Endpoints matched to the request URI: [/samples-debug/endpoint/a/b, /samples-debug/endpoint/a/{b}, /samples-debug/endpoint/{a}/b, /samples-debug/endpoint/{a}/{b}]
+&nbsp;26 x-tyrus-tracing-21 : [4 ms] Endpoint selected as a match to the handshake URI: /samples-debug/endpoint/a/b </pre><p>
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1476"></a>8.11.&nbsp;Client handshake request and response logging</h2></div></div></div><p>
+            Tyrus client offers a possibility, how to enable printing of handshake requests and responses to standard output without having to configure Java logging,
+            which is essential when debugging a misbehaving websocket application. This feature is particularly useful with tracing enabled. The following sample shows,
+            how the handshake logging can be enabled:
+            </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                ClientManager client = ClientManager.createClient();
+                client.getProperties().put(ClientProperties.LOG_HTTP_UPGRADE, true);
+            </pre><p>
+        </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1484"></a>8.12.&nbsp;JMX Monitoring</h2></div></div></div><p>
+            Tyrus allows monitoring and accessing some runtime properties and metrics at the server side using JMX (Java management extension technology).
+            The monitoring API has been available since version 1.6 and the following properties are available at runtime
+            through MXBeans. Number of open sessions, maximal number of open session since the start of monitoring and
+            list of deployed endpoint class names and paths are available for each application. Endpoint class name and path
+            the endpoint is registered on, number of open session and maximal number of open sessions are available for each
+            endpoint. Apart from that message as well as error statistics are collected both per application and per individual endpoint.
+        </p><p>
+            The following message statistics are monitored for both sent and received messages:
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>messages count</p></li><li class="listitem"><p>messages count per second</p></li><li class="listitem"><p>average message size</p></li><li class="listitem"><p>smallest message size</p></li><li class="listitem"><p>largest message size</p></li></ul></div><p>
+            Moreover all of them are collected separately for text, binary and control messages and apart from the statistics being available
+            for the three separate categories, total numbers summing up statistics from the three types of messages are also available.
+        </p><p>
+            As has been already mentioned above, Tyrus also monitors errors on both application and endpoint level.
+            An error is identified by the Throwable class name that has been thrown. Statistics are collected about number of times each
+            Throwable has been thrown, so a list of errors together with a number of times each error occurred is available on both application and endpoint level.
+            The monitored errors correspond to invocation of @OnError method on an annotated endpoint or its equivalent on a programmatic endpoint
+            (The invocation of @OnError method is just an analogy and an error will be monitored even if no @OnError method is provided on the endpoint).
+            Errors that occur in @OnOpen, @OnClose methods and methods handling incoming messages are monitored. Errors that occurred during handshake
+            will not be among the monitored errors.
+        </p><p>
+            The collected metrics as well as the endpoint properties mentioned above are accessible at runtime through Tyrus MXBeans.
+            As has been already mention the information is available on both application and endpoint level with each application
+            or endpoint being represented with four MXBeans. One of those MXBeans contains total message statistics for both sent and received
+            messages as well as any properties specific for applications or endpoints such as endpoint path in the case of an endpoint.
+            The other three MXBeans contain information about sent and received text, binary and control messages.
+        </p><p>
+            When a user connects to a tyrus application MBean server using an JMX client such as JConsole, they will see
+            the following structure:
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+                        Application 1 - MXBean containing a list of deployed endpoint class names and paths, number of open sessions,
+                        maximal number of open sessions, error and total message statistics for the application.
+                    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>
+                                message statistics - a directory containing message statistics MXBeans
+                            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; "><li class="listitem"><p>
+                                        text - MXBean containing text message statistics
+                                    </p></li><li class="listitem"><p>
+                                        binary - MXBean containing binary message statistics
+                                    </p></li><li class="listitem"><p>
+                                        control -  MXBean containing control message statistics
+                                    </p></li></ul></div></li><li class="listitem"><p>
+                                endpoints - a directory containing application endpoint MXBeans
+                            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; "><li class="listitem"><p>
+                                        Endpoint 1 - MXBean containing Endpoint 1 class name and path, number of open sessions,
+                                        maximal number of open sessions, error and total message statistics for the endpoint.
+                                    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+                                                text - MXBean containing text message statistics
+                                            </p></li><li class="listitem"><p>
+                                                binary - MXBean containing binary message statistics
+                                            </p></li><li class="listitem"><p>
+                                                control -  MXBean containing control message statistics
+                                            </p></li></ul></div></li><li class="listitem"><p>
+                                        Endpoint 2
+                                    </p></li></ul></div></li></ul></div></li><li class="listitem"><p>
+                        Application 2
+                    </p></li></ul></div><p>
+        </p><p>
+            In fact the monitoring structure described above was a little bit simplistic, because there is an additional
+            monitoring level available, which causes message metrics being also available per session.
+            The monitoring structure is very similar to the one described above, with a small difference that there are
+            four MXBeans registered for each session, which contain text, binary, control and total message statistics.
+            In order to distinguish the two monitoring levels, they will be referred to as endpoint-level monitoring
+            and session-level monitoring.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1558"></a>8.12.1.&nbsp;Configuration</h3></div></div></div><p>
+                As has been already mentioned, monitoring is supported only on the server side and is disabled by default.
+                The following code sample shows, how endpoint-level monitoring can be enabled on Grizzly server:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+serverProperties.put(ApplicationEventListener.APPLICATION_EVENT_LISTENER, new SessionlessApplicationMonitor());
+                </pre><p>
+                Similarly endpoint-level monitoring can be enabled on Grizzly server in the following way:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+serverProperties.put(ApplicationEventListener.APPLICATION_EVENT_LISTENER, new SessionAwareApplicationMonitor());
+                </pre><p>
+                Monitoring can be configured on Glassfish in web.xml and the following code sample shows endpoint-level configuration:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    ">&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+
+    &lt;context-param&gt;
+        &lt;param-name&gt;org.glassfish.tyrus.core.monitoring.ApplicationEventListener&lt;/param-name&gt;
+        &lt;param-value&gt;org.glassfish.tyrus.ext.monitoring.jmx.SessionlessApplicationMonitor&lt;/param-value&gt;
+    &lt;/context-param&gt;
+&lt;/web-app&gt;
+                </pre><p>
+                Similarly session-level monitoring can be configured on Glassfish in web.xml in the following way:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    ">&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+
+    &lt;context-param&gt;
+        &lt;param-name&gt;org.glassfish.tyrus.core.monitoring.ApplicationEventListener&lt;/param-name&gt;
+        &lt;param-value&gt;org.glassfish.tyrus.ext.monitoring.jmx.SessionAwareApplicationMonitor&lt;/param-value&gt;
+    &lt;/context-param&gt;
+&lt;/web-app&gt;
+                </pre><p>
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1575"></a>8.13.&nbsp;Maximal number of open sessions on server-side</h2></div></div></div><p>
+            Tyrus offers a few ways to limit the number of open sessions, which can be used to save limited resources
+            on a server hosting system. The limits can be configured in several scopes:
+        </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">per whole application</li><li class="listitem">per endpoint</li><li class="listitem">per remote address (client IP address)</li></ul></div><p>
+            If the number of simultaneously opened sessions exceeds any of these limits, Tyrus will close the session
+            with close code 1013 - Try Again Later.
+        </p><p>
+            Limits mentioned above can be combined together. For example, let's say we have
+            an application with two endpoints. Overall limit per application will be 1000 open sessions and the first
+            one, non-critical endpoint, will be limited to 75 open sessions at maximum. So we know that the second
+            endpoint can handle 925-1000 opened sessions, depends on how many open sessions are connected to
+            the first endpoint (0-75).
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1594"></a>8.13.1.&nbsp;Maximal number of open sessions per application</h3></div></div></div><p>
+                This configuration property can be used to limit overall number of open sessions per whole application.
+                The main purpose of this configurable limit is to restrict how many resources the application can
+                consume.
+            </p><p>
+                The number of open sessions per whole application can be configured by setting property
+                <code class="code">org.glassfish.tyrus.maxSessionsPerApp</code>. Property can be used as
+                <code class="code">&lt;context-param&gt;</code>
+                in
+                <code class="code">web.xml</code>
+                or as an entry in parameter map in (standalone) Server properties.
+            </p><p>
+                Note that only positive integer is allowed.
+            </p><p>This example will set maximal number of open sessions per whole application to 500:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    gutter: false;">
+
+&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+    &lt;context-param&gt;
+        &lt;param-name&gt;org.glassfish.tyrus.maxSessionsPerApp&lt;/param-name&gt;
+        &lt;param-value&gt;500&lt;/param-value&gt;
+    &lt;/context-param&gt;
+&lt;/web-app&gt;
+
+            </pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1616"></a>8.13.2.&nbsp;Maximal number of open sessions per remote address</h3></div></div></div><p>
+                The number of open sessions per remote address can be configured by setting property
+                <code class="code">org.glassfish.tyrus.maxSessionsPerRemoteAddr</code>. Property can be used as
+                <code class="code">&lt;context-param&gt;</code>
+                in
+                <code class="code">web.xml</code>
+                or as an entry in parameter map in (standalone) Server properties.
+            </p><p>
+                <code class="code">Remote address</code>
+                value is obtained from
+                <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getRemoteAddr()" target="_top">
+                    ServletRequest#getRemoteAddr()
+                </a>
+                or its alternative when using Grizzly server implementation.
+                Beware that this method returns always the last node which sending HTTP request, so all clients
+                behind one proxy will be treated as clients from single remote address.
+            </p><p>
+                Note that only positive integer is allowed.
+            </p><p>This example will set maximal number of open sessions from unique IP address or last proxy to 5:
+            </p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    gutter: false;">
+                
+&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+    &lt;context-param&gt;
+        &lt;param-name&gt;org.glassfish.tyrus.maxSessionsPerRemoteAddr&lt;/param-name&gt;
+        &lt;param-value&gt;5&lt;/param-value&gt;
+    &lt;/context-param&gt;
+&lt;/web-app&gt;
+
+            </pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1644"></a>8.13.3.&nbsp;Maximal number of open sessions per endpoint</h3></div></div></div><p>
+                Set maximum number of sessions in annotated endpoint:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+import javax.websocket.OnOpen;
+import javax.websocket.Session;
+import javax.websocket.server.ServerEndpoint;
+
+import org.glassfish.tyrus.core.MaxSessions;
+
+/**
+ * Annotated endpoint.
+ */
+@MaxSessions(100)
+@ServerEndpoint(value = "/limited-sessions-endpoint")
+public static class LimitedSessionsEndpoint {
+    @OnOpen
+    public void onOpen(Session s) {
+        ...
+    }
+    ...
+}
+                </pre><p>
+            </p><p>
+                Set maximum number of sessions for programmatic endpoint:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+TyrusServerEndpointConfig.Builder.create(LimitedSessionsEndpoint.class,
+  "/limited-sessions-endpoint").maxSessions(100).build();
+                </pre><p>
+            </p><p>
+                Note that only positive integer is allowed.
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1659"></a>8.14.&nbsp;Client HTTP Authentication</h2></div></div></div><p>
+            For server endpoints which is protected by HTTP authentication, Tyrus provides a mechanism to authenticate
+            client.
+            When client receives HTTP response status code<code class="code">401 - Unauthorized</code>, then Tyrus extracts required
+            scheme from
+            <code class="code">WWW-Authenticate</code>
+            challenge. Then it chooses an
+            authenticator from a map of registered authenticators and uses configured<code class="code">credentials</code>.
+            If no proper authenticator is found or credentials are missing, then
+            <code class="code">AuthenticationException</code>
+            is thrown before the handshake can be done.
+            There are implementations of the two most used authentication schemes in Tyrus: BASIC and DIGEST, but it is
+            also possible to implement your own authenticator and register it with a configuration builder
+            <code class="code">org.glassfish.tyrus.client.auth.AuthConfig.Builder</code>
+            or even to override default BASIC or DIGEST
+            auth implementations.
+            If no
+            <code class="code">org.glassfish.tyrus.client.auth.AuthConfig</code>
+            client property is set, then default
+            configuration is used. It is constructed as you can see bellow: BASIC and DIGEST internal implementations
+            are
+            enabled by default.
+        </p><p>
+            Please note that Basic Authentication scheme should be used over HTTPS connection only.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1684"></a>8.14.1.&nbsp;Credentials</h3></div></div></div><p>
+                Credentials are required for both implemented authentication schemes in Tyrus. You can pass an instance
+                into ClientManager as a property:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+  client.getProperties().put(ClientProperties.CREDENTIALS, new Credentials("ws_user", "password".getBytes(AuthConfig.CHARACTER_SET));
+                    
+                </pre><p>
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1692"></a>8.14.2.&nbsp;Auth Configuration</h3></div></div></div><p>
+                <code class="code">org.glassfish.tyrus.client.auth.AuthConfig</code>
+                provides a way to configure of HTTP authentication schemes.
+                Creating an instance of
+                <code class="code">org.glassfish.tyrus.client.auth.AuthConfig</code>
+                is optional.
+                If you don't specify AuthConfig, then default instance will be created like in following code listing
+            </p><p>
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+  AuthConfig authConfig = AuthConfig.Builder.create().build();
+  ClientManager client = ClientManager.createClient();
+  client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
+                    
+                </pre><p>
+            </p><p>
+                If authentication is required after an initial upgrade request, Tyrus chooses a proper authentication
+                scheme based on a received challenge from server. There are two HTTP authentication scheme implemented
+                and registered
+                by default.
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1710"></a>8.14.3.&nbsp;User defined authenticator</h3></div></div></div><p>
+                Tyrus provides an option to implement your own client HTTP authenticator by extending
+                <code class="code">org.glassfish.tyrus.client.auth.Authenticator</code>
+                and implementing<code class="code">generateAuthorizationHeader</code>.
+                Request URI,
+                <code class="code">WWW-Authenticate</code>
+                response header and provided
+                <code class="code">Credentials</code>
+                are
+                passed as parameters. Method must return response to authentication challenge as it is required by HTTP
+                server.
+                An instance of the implemented class must be passed to the Tyrus configuration with
+                <code class="code">org.glassfish.tyrus.client.auth.AuthConfig.Builder#setAuthScheme(String scheme, Authenticator
+                    userDefinedAuthenticator)
+                </code>
+                and created
+                <code class="code">AuthConfig</code>
+                instance must be put into client properties.
+            </p><p>Authenticator.java</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                
+package org.glassfish.tyrus.client;
+
+import java.net.URI;
+
+/**
+ * Http Authentication provider.
+ * Class generates authorization token as a input for {@code Authorization} HTTP request header.
+ *
+ * @author Ondrej Kosatka (ondrej.kosatka at oracle.com)
+ */
+public abstract class Authenticator {
+
+    /**
+     * Generates authorization tokens as a input for {@code Authorization} HTTP request header.
+     * @param uri URI is needed for generating authorization tokens for some authentication scheme (DIGEST: {@link DigestAuthenticator})
+     * @param wwwAuthenticateHeader a value of header {@code WWW-Authenticate} from HTTP response.
+     * @param credentials credentials.
+     * @return generated {@link String} value of {@code Authorization}.
+     * @throws AuthenticationException if is not possible to create auth token.
+     */
+    public abstract String generateAuthorizationHeader(final URI uri, final String wwwAuthenticateHeader, final Credentials credentials) throws AuthenticationException;
+
+}
+                
+            </pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1737"></a>8.14.4.&nbsp;Examples</h3></div></div></div><p>
+                The simplest way to setup Tyrus authentication is by adding client property
+                <code class="code">ClientProperties.CREDENTIALS</code>
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+  client.getProperties().put(ClientProperties.CREDENTIALS, new Credentials("ws_user", "password");
+                    
+                </pre><p>
+            </p><p>
+                How to configure Tyrus with suppressing Basic authentication, even if server side challenges Basic
+                authentication scheme.
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+  AuthConfig authConfig = AuthConfig.Builder.create().
+                               disableBasicAuth().
+                               build();
+  Credentials credentials = new Credentials("ws_user", "password");
+  client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
+  client.getProperties().put(ClientProperties.CREDENTIALS, credentials);
+                    
+                </pre><p>
+            </p><p>
+                How to configure Tyrus using user defined DIGEST authentication and Tyrus Basic authentication. User
+                defined
+                authentication provider
+                <code class="code">MyOwnDigestAuthenticator</code>
+                must extend<code class="code">org.glassfish.tyrus.client.auth.Authenticator</code>.
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+  AuthConfig authConfig = AuthConfig.Builder.create().
+                               putAuthProvider("Digest", new MyOwnDigestAuthenticator()).
+                               build();
+  Credentials credentials = new Credentials("ws_user", "password");
+  client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
+  client.getProperties().put(ClientProperties.CREDENTIALS, credentials);
+                
+                </pre><p>
+            </p><p>
+                How to configure Tyrus using user defined NTLM authentication and suppress Tyrus Basic authentication,
+                even if server side challenges Basic authentication scheme.. User defined
+                authentication provider
+                <code class="code">MyOwnNTLMAuthenticator</code>
+                must extend<code class="code">org.glassfish.tyrus.client.auth.Authenticator</code>.
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+  AuthConfig authConfig = AuthConfig.Builder.create().
+                               disableBasicAuth().
+                               putAuthProvider("NTLM", new MyOwnNTLMAuthenticator()).
+                               build();
+  Credentials credentials = new Credentials("ws_user", "password");
+  client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
+  client.getProperties().put(ClientProperties.CREDENTIALS, credentials);
+                
+                </pre><p>
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1775"></a>8.15.&nbsp;Client HTTP Redirect</h2></div></div></div><p>
+            Another Tyrus feature is HTTP redirect. If client&nbsp;received 3xx HTTP Redirect response code during a
+            handshake and HTTP Redirect is allowed (by <code class="code">ClientProperty.REDIRECT_ENABLED</code>
+            property) then client engine  transparently follows the URI contained in received HTTP response header
+            <code class="code">Location</code> and sends upgrade request to the new URI. Redirects can be chained up to limit set in
+            <code class="code">ClientProperty.REDIRECT_THRESHOLD</code>, whilst default value is 5.
+            If HTTP redirect failed by any reason, <code class="code">RedirectException</code> is thrown.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1792"></a>8.15.1.&nbsp;Supported HTTP response codes</h3></div></div></div><p>
+                List of 3xx HTTP response codes which can be automatically redirect
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>300 - Multiple Choices</p></li><li class="listitem"><p>301 - Moved permanently</p></li><li class="listitem"><p>302 - Found</p></li><li class="listitem"><p>303 - See Other (since HTTP/1.1)</p></li><li class="listitem"><p>307 - Temporary Redirect (since HTTP/1.1)</p></li><li class="listitem"><p>308 - Permanent Redirect (Experimental RFC; RFC 7238)</p></li></ul></div><p>
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1817"></a>8.15.2.&nbsp;Configuration</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1820"></a>8.15.2.1.&nbsp;Enabling</h4></div></div></div><p>
+                    For enabling HTTP Redirect feature, <code class="code">ClientProperty.REDIRECT_ENABLED</code> must be explicitly set to
+                    <code class="code">true</code> (default value is<code class="code">false</code>), otherwise <code class="code">RedirectException</code>
+                    will be thrown, when any of supported HTTP Redirect response codes (see above).
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    gutter: false;">
+                    client.getProperties().put(ClientProperties.REDIRECT_ENABLED, true);
+                </pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1839"></a>8.15.2.2.&nbsp;Threshold</h4></div></div></div><p>
+                    <code class="code">ClientProperty.REDIRECT_THRESHOLD</code> is property which can be used to limit maximal
+                    number of chained redirect. Positive integer is expected and default value is 5.
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    gutter: false;">
+                    client.getProperties().put(ClientProperties.REDIRECT_THRESHOLD, 3);
+                </pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1849"></a>8.15.3.&nbsp;Exception handling</h3></div></div></div><p>
+                <code class="code">RedirectException</code>
+                is set as a cause of DeploymentException when any of the supported Redirection HTTP response
+                status codes (see above) was received and WebSocketContainer.connectToServer(...) fails
+                because of any of the following reasons:
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+                            <code class="code">ClientProperties.REDIRECT_ENABLED</code> property is not set to true.
+                        </p></li><li class="listitem"><p>
+                            Value of <code class="code">ClientProperties.REDIRECT_THRESHOLD</code> is not assignable to Integer.
+                        </p></li><li class="listitem"><p>
+                            Number of chained redirection exceeds a value of <code class="code">ClientProperties.REDIRECT_THRESHOLD</code>
+                            (default value is 5).
+                        </p></li><li class="listitem"><p>Infinite redirection loop is detected.</p></li><li class="listitem"><p>
+                            <code class="code">Location</code> response header is missing, is empty or does not contain a valid URI.
+                        </p></li></ul></div><p>
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1886"></a>8.16.&nbsp;Client support for HTTP status 503 - Service Unavailable with Retry-After header</h2></div></div></div><p>
+            Tyrus offers automatic handling of HTTP status code <code class="code">503 - Service Unavailable</code>, which can be
+            returned from server when temporarily overloaded or down for maintenance. When <code class="code">Retry-After</code>
+            header is included in the response, client will parse the value and schedule another reconnect attempt.
+        </p><p>This feature is disabled by default.</p><p>
+            The implementation limits connection attempts to 5, each with reconnect delay not bigger than 300
+            seconds. Other values or conditions can be handled by custom <code class="code">ReconnectHandler</code>
+            (see <code class="code">RetryAfterException</code>).
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1907"></a>8.16.1.&nbsp;Configuration</h3></div></div></div><p>
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+            final ClientManager client = ClientManager.createClient();
+            client.getProperties().put(ClientProperties.RETRY_AFTER_SERVICE_UNAVAILABLE, true);
+</pre><p>
+            </p></div></div></div><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
+            function path() {
+              var args = arguments,
+                  result = []
+                  ;
+
+              for(var i = 0; i < args.length; i++)
+                  result.push(args[i].replace('@', 'http://tyrus.java.net/sh/'));
+
+              return result
+            };
+
+            SyntaxHighlighter.autoloader.apply(null, path(
+              'applescript            @shBrushAppleScript.js',
+              'actionscript3 as3      @shBrushAS3.js',
+              'bash shell             @shBrushBash.js',
+              'coldfusion cf          @shBrushColdFusion.js',
+              'cpp c                  @shBrushCpp.js',
+              'c# c-sharp csharp      @shBrushCSharp.js',
+              'css                    @shBrushCss.js',
+              'delphi pascal          @shBrushDelphi.js',
+              'diff patch pas         @shBrushDiff.js',
+              'erl erlang             @shBrushErlang.js',
+              'groovy                 @shBrushGroovy.js',
+              'java                   @shBrushJava.js',
+              'jfx javafx             @shBrushJavaFX.js',
+              'js jscript javascript  @shBrushJScript.js',
+              'perl pl                @shBrushPerl.js',
+              'php                    @shBrushPhp.js',
+              'text plain             @shBrushPlain.js',
+              'py python              @shBrushPython.js',
+              'ruby rails ror rb      @shBrushRuby.js',
+              'sass scss              @shBrushSass.js',
+              'scala                  @shBrushScala.js',
+              'sql                    @shBrushSql.js',
+              'vb vbnet               @shBrushVb.js',
+              'xml xhtml xslt html    @shBrushXml.js'
+            ));
+
+            SyntaxHighlighter.all();
+        </script><script>
+              (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+              (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+              })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+              ga('create', 'UA-41373632-1', 'java.net');
+              ga('send', 'pageview');
+        </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="injection.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;</td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;7.&nbsp;Injection Support&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;</td></tr></table></div></div></body></html>
\ No newline at end of file
diff --git a/documentation/1.20/index/websocket-api.html b/documentation/1.20/index/websocket-api.html
new file mode 100644
index 00000000..c8ee4b32
--- /dev/null
+++ b/documentation/1.20/index/websocket-api.html
@@ -0,0 +1,394 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="deployment.html" title="Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints"><link rel="next" href="configurations.html" title="Chapter&nbsp;5.&nbsp;Configurations"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="deployment.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="configurations.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="websocket-api"></a>Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="websocket-api.html#d0e441">4.1. Endpoint Classes</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e465">4.1.1. javax.websocket.server.ServerEndpoint</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e600">4.1.2. javax.websocket.ClientEndpoint</a></span></dt></dl></dd><dt><span class="section"><a href="websocket-api.html#d0e642">4.2. Endpoint method-level annotations</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e645">4.2.1. @OnOpen</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e658">4.2.2. @OnClose</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e671">4.2.3. @OnError</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e684">4.2.4. @OnMessage</a></span></dt></dl></dd><dt><span class="section"><a href="websocket-api.html#d0e697">4.3. MessageHandlers</a></span></dt></dl></div><p>This chapter presents an overview of the core WebSocket API concepts - endpoints, configurations and message
+        handlers.</p><p>The JAVA API for WebSocket specification draft can be found online <a class="link" href="http://jcp.org/aboutJava/communityprocess/pfd/jsr356/index.html" target="_top">here</a>.
+    </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e441"></a>4.1.&nbsp;Endpoint Classes</h2></div></div></div><p>
+            <span class="emphasis"><em>Server endpoint classes</em></span>
+            are POJOs (Plain Old Java Objects) that are annotated with <code class="code">javax.websocket.server.ServerEndpoint</code>.
+            Similarly, <span class="emphasis"><em>client endpoint classes</em></span> are POJOs annotated with javax.websocket.ClientEndpoint.
+            This section shows how to use Tyrus to annotate Java objects to create WebSocket web services.
+        </p><p>The following code example is a simple example of a WebSocket endpoint using annotations. The example
+            code shown here is from echo sample which ships with Tyrus.
+        </p><p>
+            </p><div class="example"><a name="endpoints-echo-endpoint"></a><p class="title"><b>Example&nbsp;4.1.&nbsp;Echo sample server endpoint.</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/echo")
+public class EchoEndpoint {
+
+    @OnOpen
+    public void onOpen(Session session) throws IOException {
+        session.getBasicRemote().sendText("onOpen");
+    }
+
+    @OnMessage
+    public String echo(String message) {
+        return message + " (from your server)";
+    }
+
+    @OnError
+    public void onError(Throwable t) {
+        t.printStackTrace();
+    }
+
+    @OnClose
+    public void onClose(Session session) {
+
+    }
+}</pre></div></div><p><br class="example-break">
+            Let's explain the JAVA API for WebSocket annotations.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e465"></a>4.1.1.&nbsp;javax.websocket.server.ServerEndpoint</h3></div></div></div><p>javax.websocket.server.ServerEndpoint has got one mandatory field - <span class="emphasis"><em>value</em></span> and four optional fields.
+                See the example below.</p><p>
+                </p><div class="example"><a name="endpoints-serverendpoint-annotation"></a><p class="title"><b>Example&nbsp;4.2.&nbsp;javax.websocket.server.ServerEndpoint with all fields specified</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint(
+    value = "/sample",
+    decoders = ChatDecoder.class,
+    encoders = DisconnectResponseEncoder.class,
+    subprotocols = {"subprtotocol1", "subprotocol2"},
+    configurator = Configurator.class
+)
+public class SampleEndpoint {
+
+    @OnMessage
+    public SampleResponse receiveMessage(SampleType message, Session session) {
+        return new SampleResponse(message);
+    }
+}</pre></div></div><p><br class="example-break">
+            </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e481"></a>4.1.1.1.&nbsp;value</h4></div></div></div><p>
+                 Denotes a relative URI path at which the server endpoint will be deployed. In the example
+                    <a class="link" href="websocket-api.html#endpoints-serverendpoint-annotation" title="Example&nbsp;4.2.&nbsp;javax.websocket.server.ServerEndpoint with all fields specified">"javax.websocket.server.ServerEndpoint with all fields specified"</a>, the
+                    Java class will be hosted at the URI path
+                    <code class="literal">/sample</code>. The field <span class="emphasis"><em>value</em></span> must begin with a '/' and may or may
+                    not end in a '/', it makes no difference. Thus request URLs that end or do not end in a '/' will both
+                        be matched. WebSocket API for JAVA supports level 1 URI templates.
+                </p><p>
+                    <span class="emphasis"><em>URI path templates</em></span>
+                    are URIs with variables embedded within the URI syntax. These variables are substituted at runtime in
+                    order for a resource to respond to a request based on the substituted URI. Variables are denoted by
+                    curly braces. For example, look at the following @ServerEndpoint annotation:
+
+                    </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    gutter: false;">@ServerEndpoint("/users/{username}")</pre><p>
+
+                    In this type of example, a user will be prompted to enter their name, and then a Tyrus web
+                    service configured
+                    to respond to requests to this URI path template will respond. For example, if the user entered their
+                    username as "Galileo", the web service will respond to the following URL:
+                    <code class="literal">http://example.com/users/Galileo</code>
+                </p><p>To obtain the value of the username variable the <code class="code">javax.websocket.server.PathParam</code> may be used on method parameter
+                    of methods annotated with one of @OnOpen, @OnMessage, @OnError, @OnClose.
+                    </p><div class="example"><a name="d0e511"></a><p class="title"><b>Example&nbsp;4.3.&nbsp;Specifying URI path parameter</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/users/{username}")
+public class UserEndpoint {
+
+    @OnMessage
+    public String getUser(String message, @PathParam("username") String userName) {
+        ...
+    }
+}</pre></div></div><p><br class="example-break">
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e517"></a>4.1.1.2.&nbsp;decoders</h4></div></div></div><p>
+                    Contains list of classes that will be used to decode incoming messages for the endpoint. By decoding
+                    we mean transforming from text / binary websocket message to some user defined type. Each decoder
+                    needs to implement the Decoder interface.
+                </p><p>
+                    <code class="code">SampleDecoder</code> in the following example decodes String message and produces
+                    SampleType message - see decode method on line 4.
+                </p><p>
+                    </p><div class="example"><a name="d0e529"></a><p class="title"><b>Example&nbsp;4.4.&nbsp;SampleDecoder</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class SampleDecoder implements Decoder.Text&lt;SampleType&gt; {
+
+    @Override
+    public SampleType decode(String s) {
+        return new SampleType(s);
+    }
+
+    @Override
+    public boolean willDecode(String s) {
+        return s.startsWith(SampleType.PREFIX);
+    }
+
+    @Override
+    public void init(EndpointConfig config) {
+        // do nothing.
+    }
+
+    @Override
+    public void destroy() {
+        // do nothing.
+    }
+}</pre></div></div><p><br class="example-break">
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e535"></a>4.1.1.3.&nbsp;encoders</h4></div></div></div><p>
+                    Contains list of classes that will be used to encode outgoing messages. By encoding we mean
+                    transforming message from user defined type to text or binary type. Each encoder needs
+                    to implement the Encoder interface.
+                </p><p>
+                    <code class="code">SampleEncoder</code> in the following example decodes String message and produces
+                    SampleType message - see decode method on line 4.
+                </p><p>
+                    </p><div class="example"><a name="d0e547"></a><p class="title"><b>Example&nbsp;4.5.&nbsp;SampleEncoder</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class SampleEncoder implements Encoder.Text&lt;SampleType&gt; {
+
+    @Override
+    public String encode(SampleType message) {
+        return data.toString();
+    }
+
+    @Override
+    public void init(EndpointConfig config) {
+        // do nothing.
+    }
+
+    @Override
+    public void destroy() {
+        // do nothing.
+    }
+}</pre></div></div><p><br class="example-break">
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e553"></a>4.1.1.4.&nbsp;subprotocols</h4></div></div></div><p>
+                    List of names (Strings) of supported sub-protocols. The first protocol in this list that matches
+                    with sub-protocols provided by the client side is used.
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e558"></a>4.1.1.5.&nbsp;configurator</h4></div></div></div><p>
+                    Users may provide their own implementation of ServerEndpointConfiguration.Configurator. It allows
+                    them to control some algorithms used by Tyrus in the connection initialization phase:
+
+                    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: opencircle; "><li class="listitem" style="list-style-type: circle"><p>
+                                <code class="code">public String getNegotiatedSubprotocol(List&lt;String&gt; supported, List&lt;String&gt; requested)</code>
+                                allows the user to provide their own algorithm for selection of used subprotocol.
+                            </p></li><li class="listitem" style="list-style-type: circle"><p>
+                                <code class="code">public List&lt;Extension&gt; getNegotiatedExtensions(List&lt;Extension&gt; installed, List&lt;Extension&gt; requested)</code>
+                                allows the user to provide their own algorithm for selection of used Extensions.
+                            </p></li><li class="listitem" style="list-style-type: circle"><p>
+                                <code class="code">public boolean checkOrigin(String originHeaderValue)</code>.
+                                allows the user to specify the origin checking algorithm.
+                            </p></li><li class="listitem" style="list-style-type: circle"><p>
+                                <code class="code">public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response) </code>.
+                                allows the user to modify the handshake response that will be sent back to the client.
+                            </p></li><li class="listitem" style="list-style-type: circle"><p>
+                                <code class="code">public &lt;T&gt; T getEndpointInstance(Class&lt;T&gt; endpointClass) throws InstantiationException </code>.
+                                allows the user to provide the way how the instance of an Endpoint is created
+                            </p></li></ul></div><p>
+
+                </p><p>
+</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class ConfiguratorTest extends ServerEndpointConfig.Configurator{
+
+    public String getNegotiatedSubprotocol(List&lt;String&gt; supported, List&lt;String&gt; requested) {
+        // Plug your own algorithm here
+    }
+
+    public List&lt;Extension&gt; getNegotiatedExtensions(List&lt;Extension&gt; installed, List&lt;Extension&gt; requested) {
+        // Plug your own algorithm here
+    }
+
+    public boolean checkOrigin(String originHeaderValue) {
+        // Plug your own algorithm here
+    }
+
+    public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response) {
+        // Plug your own algorithm here
+    }
+
+    public &lt;T&gt; T getEndpointInstance(Class&lt;T&gt; endpointClass) throws InstantiationException {
+        // Plug your own algorithm here
+    }
+}</pre><p>
+                </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e600"></a>4.1.2.&nbsp;javax.websocket.ClientEndpoint</h3></div></div></div><p>The @ClientEndpoint class-level annotation is used to turn a POJO into WebSocket client endpoint.
+                In the following sample the client sends text message "Hello!" and prints out each received message.
+                </p><div class="example"><a name="d0e605"></a><p class="title"><b>Example&nbsp;4.6.&nbsp;SampleClientEndpoint</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ClientEndpoint(
+    decoders = SampleDecoder.class,
+    encoders = SampleEncoder.class,
+    subprotocols = {"subprtotocol1", "subprotocol2"},
+    configurator = ClientConfigurator.class)
+public class SampleClientEndpoint {
+
+    @OnOpen
+    public void onOpen(Session p) {
+        try {
+            p.getBasicRemote().sendText("Hello!");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @OnMessage
+    public void onMessage(String message) {
+        System.out.println(String.format("%s %s", "Received message: ", message));
+    }
+}
+</pre></div></div><p><br class="example-break">
+            </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e611"></a>4.1.2.1.&nbsp;decoders</h4></div></div></div><p>
+                    Contains list of classes that will be used decode incoming messages for the endpoint. By decoding
+                    we mean transforming from text / binary websocket message to some user defined type. Each decoder
+                    needs to implement the Decoder interface.
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e616"></a>4.1.2.2.&nbsp;encoders</h4></div></div></div><p>
+                    Contains list of classes that will be used to encode outgoing messages. By encoding we mean
+                    transforming message from user defined type to text or binary type. Each encoder needs
+                    to implement the Encoder interface.
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e621"></a>4.1.2.3.&nbsp;subprotocols</h4></div></div></div><p>
+                    List of names (Strings) of supported sub-protocols.
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e626"></a>4.1.2.4.&nbsp;configurator</h4></div></div></div><p>
+                    Users may provide their own implementation of ClientEndpointConfiguration.Configurator. It allows
+                    them to control some algorithms used by Tyrus in the connection initialization phase. Method
+                    <span class="emphasis"><em>beforeRequest</em></span> allows the user to change the request headers constructed by
+                    Tyrus. Method <span class="emphasis"><em>afterResponse</em></span> allows the user to process the handshake response.
+                </p><p>
+</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class Configurator {
+
+    public void beforeRequest(Map&lt;String, List&lt;String&gt;&gt; headers) {
+        //affect the headers before request is sent
+    }
+
+    public void afterResponse(HandshakeResponse hr) {
+        //process the handshake response
+    }
+}</pre><p>
+                </p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e642"></a>4.2.&nbsp;Endpoint method-level annotations</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e645"></a>4.2.1.&nbsp;@OnOpen</h3></div></div></div><p>This annotation may be used on certain methods of @ServerEndpoint or @ClientEndpoint, but only once
+                per endpoint. It is used to decorate a method which is called once new connection is established.
+                The connection is represented by the optional Session parameter. The other optional parameter
+                is EndpointConfig, which represents the passed configuration object. Note that the EndpointConfig
+                allows the user to access the user properties.
+            </p><p>
+                </p><div class="example"><a name="d0e652"></a><p class="title"><b>Example&nbsp;4.7.&nbsp;@OnOpen with Session and EndpointConfig parameters.</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/sample")
+public class EchoEndpoint {
+
+    private Map&lt;String, Object&gt; properties;
+
+    @OnOpen
+    public void onOpen(Session session, EndpointConfig config) throws IOException {
+        session.getBasicRemote().sendText("onOpen");
+        properties = config.getUserProperties();
+    }
+}</pre></div></div><p><br class="example-break">
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e658"></a>4.2.2.&nbsp;@OnClose</h3></div></div></div><p>This annotation may be used on any method of @ServerEndpoint or @ClientEndpoint, but only once
+                per endpoint. It is used to decorate a method which is called once the connection is being closed.
+                The method may have one Session parameter, one CloseReason parameter and parameters
+                annotated with @PathParam.
+            </p><p>
+                </p><div class="example"><a name="d0e665"></a><p class="title"><b>Example&nbsp;4.8.&nbsp;@OnClose with Session and CloseReason parameters.</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/sample")
+public class EchoEndpoint {
+
+    @OnClose
+    public void onClose(Session session, CloseReason reason) throws IOException {
+       //prepare the endpoint for closing.
+    }
+}</pre></div></div><p><br class="example-break">
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e671"></a>4.2.3.&nbsp;@OnError</h3></div></div></div><p>This annotation may be used on any method of @ServerEndpoint or @ClientEndpoint, but only once
+                per endpoint. It is used to decorate a method which is called once Exception is being thrown by
+                any method annotated with @OnOpen, @OnMessage and @OnClose.
+                The method may have optional Session parameter and Throwable parameters.
+            </p><p>
+                </p><div class="example"><a name="d0e678"></a><p class="title"><b>Example&nbsp;4.9.&nbsp;@OnError with Session and Throwable parameters.</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/sample")
+public class EchoEndpoint {
+
+    @OnError
+    public void onError(Session session, Throwable t) {
+        t.printStackTrace();
+    }
+}</pre></div></div><p><br class="example-break">
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e684"></a>4.2.4.&nbsp;@OnMessage</h3></div></div></div><p>This annotation may be used on certain methods of @ServerEndpoint or @ClientEndpoint, but
+                only once per endpoint. It is used to decorate a method which is called once new message is received.
+            </p><p>
+                </p><div class="example"><a name="d0e691"></a><p class="title"><b>Example&nbsp;4.10.&nbsp;@OnError with Session and Throwable parameters.</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/sample")
+public class EchoEndpoint {
+
+    @OnMessage
+    public void onMessage(Session session, String message) {
+        System.out.println("Received message: " + message);
+    }
+}</pre></div></div><p><br class="example-break">
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e697"></a>4.3.&nbsp;MessageHandlers</h2></div></div></div><p>
+            Implementing the <code class="code">javax.websocket.MessageHandler</code> interface is one of the ways how to receive messages
+            on endpoints (both server and client). It is aimed primarily on programmatic endpoints, as the annotated ones
+            use the method level annotation <code class="code">javax.websocket.OnMessage</code> to denote the method which
+            receives messages.
+        </p><p>
+            The MessageHandlers get registered on the Session instance:
+        </p><div class="example"><a name="d0e710"></a><p class="title"><b>Example&nbsp;4.11.&nbsp;MessageHandler basic example</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class MyEndpoint extends Endpoint {
+
+    @Override
+    public void onOpen(Session session, EndpointConfig EndpointConfig) {
+        session.addMessageHandler(new MessageHandler.Whole&lt;String&gt;() {
+            @Override
+            public void onMessage(String message) {
+                System.out.println("Received message: "+message);
+            }
+        });
+    }
+}</pre></div></div><p><br class="example-break">
+        </p><p>
+            There are two orthogonal criterions which classify MessageHandlers.
+            According the WebSocket Protocol (RFC 6455) the message may be sent either complete, or in chunks. In Java API for WebSocket this fact is reflected
+            by the interface which the handler implements. Whole messages are processed by handler which implements
+            <code class="code">javax.websocket.MessageHandler.Whole</code> interface. Partial
+            messages are processed by handlers that implement <code class="code">javax.websocket.MessageHandler.Partial</code>
+            interface. However, if user registers just the whole message handler, it doesn't mean that the handler will
+            process solely whole messages. If partial message is received, the parts are cached by Tyrus until the final
+            part is received. Then the whole message is passed to the handler. Similarly, if the user registers just the
+            partial message handler and whole message is received, it is passed directly to the handler.
+        </p><p>
+            The second criterion is the data type of the message. WebSocket Protocol (RFC 6455) defines four message data type - text message,
+            According to Java API for WebSocket the text messages will be processed by MessageHandlers with the following types:
+
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: opencircle; "><li class="listitem" style="list-style-type: circle"><p>
+                        <span class="emphasis"><em>java.lang.String</em></span>
+                    </p></li><li class="listitem" style="list-style-type: circle"><p>
+                        <span class="emphasis"><em>java.io.Reader</em></span>
+                    </p></li><li class="listitem" style="list-style-type: circle"><p>
+                        any developer object for which there is a corresponding <span class="emphasis"><em>javax.websocket.Decoder.Text</em></span>
+                      or <span class="emphasis"><em>javax.websocket.Decoder.TextStream</em></span>.
+                    </p></li></ul></div><p>
+
+            The binary messages will be processed by MessageHandlers with the following types:
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: opencircle; "><li class="listitem" style="list-style-type: circle"><p>
+                        <span class="emphasis"><em>java.nio.ByteBuffer</em></span>
+                    </p></li><li class="listitem" style="list-style-type: circle"><p>
+                        <span class="emphasis"><em>java.io.InputStream</em></span>
+                    </p></li><li class="listitem" style="list-style-type: circle"><p>
+                        any developer object for which there is a corresponding <span class="emphasis"><em>javax.websocket.Decoder.Binary</em></span>
+                        or <span class="emphasis"><em>javax.websocket.Decoder.BinaryStream</em></span>.
+                    </p></li></ul></div><p>
+        </p><p>
+            The Java API for WebSocket limits the registration of MessageHandlers per Session to be one MessageHandler per native
+            websocket message type. In other words, the developer can only register at most one MessageHandler for
+            incoming text messages, one MessageHandler for incoming binary messages, and one MessageHandler for
+            incoming pong messages. This rule holds for both whole and partial message handlers, i.e there may be one
+            text MessageHandler - either whole, or partial, not both.
+        </p></div></div><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
+            function path() {
+              var args = arguments,
+                  result = []
+                  ;
+
+              for(var i = 0; i < args.length; i++)
+                  result.push(args[i].replace('@', 'http://tyrus.java.net/sh/'));
+
+              return result
+            };
+
+            SyntaxHighlighter.autoloader.apply(null, path(
+              'applescript            @shBrushAppleScript.js',
+              'actionscript3 as3      @shBrushAS3.js',
+              'bash shell             @shBrushBash.js',
+              'coldfusion cf          @shBrushColdFusion.js',
+              'cpp c                  @shBrushCpp.js',
+              'c# c-sharp csharp      @shBrushCSharp.js',
+              'css                    @shBrushCss.js',
+              'delphi pascal          @shBrushDelphi.js',
+              'diff patch pas         @shBrushDiff.js',
+              'erl erlang             @shBrushErlang.js',
+              'groovy                 @shBrushGroovy.js',
+              'java                   @shBrushJava.js',
+              'jfx javafx             @shBrushJavaFX.js',
+              'js jscript javascript  @shBrushJScript.js',
+              'perl pl                @shBrushPerl.js',
+              'php                    @shBrushPhp.js',
+              'text plain             @shBrushPlain.js',
+              'py python              @shBrushPython.js',
+              'ruby rails ror rb      @shBrushRuby.js',
+              'sass scss              @shBrushSass.js',
+              'scala                  @shBrushScala.js',
+              'sql                    @shBrushSql.js',
+              'vb vbnet               @shBrushVb.js',
+              'xml xhtml xslt html    @shBrushXml.js'
+            ));
+
+            SyntaxHighlighter.all();
+        </script><script>
+              (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+              (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+              })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+              ga('create', 'UA-41373632-1', 'java.net');
+              ga('send', 'pageview');
+        </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="deployment.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="configurations.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;5.&nbsp;Configurations</td></tr></table></div></div></body></html>
\ No newline at end of file
diff --git a/documentation/1.20/user-guide.fo b/documentation/1.20/user-guide.fo
new file mode 100644
index 00000000..74412b44
--- /dev/null
+++ b/documentation/1.20/user-guide.fo
@@ -0,0 +1,1889 @@
+<?xml version="1.0" encoding="utf-8"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="serif,Symbol,ZapfDingbats" font-size="10pt" text-align="justify" line-height="normal" font-selection-strategy="character-by-character" line-height-shift-adjustment="disregard-shifts" writing-mode="lr-tb" language="en"><fo:layout-master-set><fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body display-align="center" margin-bottom="0.5in" margin-top="0.5in" margin-left="0in" margin-right="0in" region-name="blank-body"/><fo:region-before region-name="xsl-region-before-blank" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-blank" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-blank" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-blank" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="lot-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="lot-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="lot-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="front-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="front-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="front-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="body-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="body-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="body-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="back-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="back-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="back-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="index-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="index-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="index-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:page-sequence-master master-name="titlepage"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="titlepage-first" page-position="first"/><fo:conditional-page-master-reference master-reference="titlepage-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="titlepage-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="lot"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="lot-first" page-position="first"/><fo:conditional-page-master-reference master-reference="lot-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="lot-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="front"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="front-first" page-position="first"/><fo:conditional-page-master-reference master-reference="front-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="front-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="body"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="body-first" page-position="first"/><fo:conditional-page-master-reference master-reference="body-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="body-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="back"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="back-first" page-position="first"/><fo:conditional-page-master-reference master-reference="back-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="back-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="index"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="index-first" page-position="first"/><fo:conditional-page-master-reference master-reference="index-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="index-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master></fo:layout-master-set><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="titlepage" language="en" format="i" 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: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/></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/></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: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: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: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: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"><fo:block id="d0e2"><fo:block><fo:block><fo:block font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt"><fo:block keep-with-next.within-column="always" hyphenate="false">Tyrus 1.20 User Guide</fo:block></fo:block></fo:block><fo:block><fo:block break-after="page"/><fo:block font-size="14.4pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block>Tyrus 1.20 User Guide</fo:block></fo:block></fo:block><fo:block break-after="page"/></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="lot" language="en" format="i" 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>Tyrus 1.20 User Guide</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>Tyrus 1.20 User Guide</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 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" id="toc...d0e2"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">Table of Contents</fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="preface">Preface</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="preface"><fo:page-number-citation ref-id="preface"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="getting-started">1. Getting Started</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="getting-started"><fo:page-number-citation ref-id="getting-started"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.getting-started" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="getting-started-wsapi-artifact">1.1. WebSocket Services Using Java API for WebSocket</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="getting-started-wsapi-artifact"><fo:page-number-citation ref-id="getting-started-wsapi-artifact"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.getting-started-wsapi-artifact" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e34">1.1.1. Creating Annotated Server Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e34"><fo:page-number-citation ref-id="d0e34"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e78">1.1.2. Client Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e78"><fo:page-number-citation ref-id="d0e78"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-programmatic-endpoint">1.1.3. Creating Server Endpoint Programmatically</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-programmatic-endpoint"><fo:page-number-citation ref-id="websocket-programmatic-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="standalone-mode">1.1.4. Tyrus in Standalone Mode</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="standalone-mode"><fo:page-number-citation ref-id="standalone-mode"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="modules-and-dependencies">2. Tyrus Modules and Dependencies</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="modules-and-dependencies"><fo:page-number-citation ref-id="modules-and-dependencies"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="deployment">3. Deploying WebSocket Endpoints</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="deployment"><fo:page-number-citation ref-id="deployment"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.deployment" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e334">3.1. Deploying Endpoints as a WAR file</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e334"><fo:page-number-citation ref-id="d0e334"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e334" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e359">3.1.1. Deployment Algorithm</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e359"><fo:page-number-citation ref-id="d0e359"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e410">3.2. Deploying endpoints via <fo:inline font-family="monospace">javax.websocket.server.ServerContainer</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e410"><fo:page-number-citation ref-id="d0e410"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-api">4. WebSocket API Endpoints, Sessions and MessageHandlers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-api"><fo:page-number-citation ref-id="websocket-api"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.websocket-api" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e440">4.1. Endpoint Classes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e440"><fo:page-number-citation ref-id="d0e440"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e440" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e464">4.1.1. javax.websocket.server.ServerEndpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e464"><fo:page-number-citation ref-id="d0e464"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e599">4.1.2. javax.websocket.ClientEndpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e599"><fo:page-number-citation ref-id="d0e599"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e641">4.2. Endpoint method-level annotations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e641"><fo:page-number-citation ref-id="d0e641"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e641" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e644">4.2.1. @OnOpen</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e644"><fo:page-number-citation ref-id="d0e644"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e657">4.2.2. @OnClose</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e657"><fo:page-number-citation ref-id="d0e657"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e670">4.2.3. @OnError</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e670"><fo:page-number-citation ref-id="d0e670"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e683">4.2.4. @OnMessage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e683"><fo:page-number-citation ref-id="d0e683"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e696">4.3. MessageHandlers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e696"><fo:page-number-citation ref-id="d0e696"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="configurations">5. Configurations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="configurations"><fo:page-number-citation ref-id="configurations"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.configurations" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e785">5.1. <fo:inline font-family="monospace">javax.websocket.server.ServerEndpointConfig</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e785"><fo:page-number-citation ref-id="d0e785"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e838">5.2. <fo:inline font-family="monospace">javax.websocket.ClientEndpointConfig</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e838"><fo:page-number-citation ref-id="d0e838"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle">6. Endpoint Lifecycle, Sessions, Sending Messages</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle"><fo:page-number-citation ref-id="lifecycle"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.lifecycle" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e870">6.1. Endpoint Lifecycle</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e870"><fo:page-number-citation ref-id="d0e870"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e890">6.2. <fo:inline font-family="monospace">javax.websocket.Session</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e890"><fo:page-number-citation ref-id="d0e890"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e975">6.3. Sending Messages</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e975"><fo:page-number-citation ref-id="d0e975"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1007">6.4. RemoteEndpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1007"><fo:page-number-citation ref-id="d0e1007"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1007" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1021">6.4.1. <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint.Basic</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1021"><fo:page-number-citation ref-id="d0e1021"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1045">6.4.2. <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint.Async</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1045"><fo:page-number-citation ref-id="d0e1045"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="injection">7. Injection Support</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="injection"><fo:page-number-citation ref-id="injection"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.injection" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1075">7.1. <fo:inline font-family="monospace">javax.inject.Inject</fo:inline> sample</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1075"><fo:page-number-citation ref-id="d0e1075"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1102">7.2. EJB sample</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1102"><fo:page-number-citation ref-id="d0e1102"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tyrus-proprietary-config">8. Tyrus proprietary configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tyrus-proprietary-config"><fo:page-number-citation ref-id="tyrus-proprietary-config"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.tyrus-proprietary-config" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1128">8.1. Client-side SSL configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1128"><fo:page-number-citation ref-id="d0e1128"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1128" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1149">8.1.1. Host verification</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1149"><fo:page-number-citation ref-id="d0e1149"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1171">8.2. Asynchronous connectToServer methods</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1171"><fo:page-number-citation ref-id="d0e1171"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1184">8.3. Optimized broadcast</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1184"><fo:page-number-citation ref-id="d0e1184"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1197">8.4. Incoming buffer size</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1197"><fo:page-number-citation ref-id="d0e1197"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1215">8.5. Shared client container</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1215"><fo:page-number-citation ref-id="d0e1215"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1215" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1237">8.5.1. Custom masking key generator</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1237"><fo:page-number-citation ref-id="d0e1237"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1258">8.6. WebSocket Extensions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1258"><fo:page-number-citation ref-id="d0e1258"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1258" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1283">8.6.1. ExtendedExtension sample</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1283"><fo:page-number-citation ref-id="d0e1283"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1304">8.6.2. Per Message Deflate Extension</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1304"><fo:page-number-citation ref-id="d0e1304"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1311">8.7. Client reconnect</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1311"><fo:page-number-citation ref-id="d0e1311"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1323">8.8. Client behind proxy</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1323"><fo:page-number-citation ref-id="d0e1323"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1331">8.9. JDK 7 client</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1331"><fo:page-number-citation ref-id="d0e1331"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1331" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1353">8.9.1. SSL configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1353"><fo:page-number-citation ref-id="d0e1353"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1373">8.10. Tracing support</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1373"><fo:page-number-citation ref-id="d0e1373"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1373" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1381">8.10.1. Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1381"><fo:page-number-citation ref-id="d0e1381"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1447">8.10.2. Tracing Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1447"><fo:page-number-citation ref-id="d0e1447"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1475">8.11. Client handshake request and response logging</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1475"><fo:page-number-citation ref-id="d0e1475"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1483">8.12. JMX Monitoring</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1483"><fo:page-number-citation ref-id="d0e1483"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1483" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1557">8.12.1. Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1557"><fo:page-number-citation ref-id="d0e1557"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1574">8.13. Maximal number of open sessions on server-side</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1574"><fo:page-number-citation ref-id="d0e1574"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1574" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1593">8.13.1. Maximal number of open sessions per application</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1593"><fo:page-number-citation ref-id="d0e1593"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1615">8.13.2. Maximal number of open sessions per remote address</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1615"><fo:page-number-citation ref-id="d0e1615"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1643">8.13.3. Maximal number of open sessions per endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1643"><fo:page-number-citation ref-id="d0e1643"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1658">8.14. Client HTTP Authentication</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1658"><fo:page-number-citation ref-id="d0e1658"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1658" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1683">8.14.1. Credentials</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1683"><fo:page-number-citation ref-id="d0e1683"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1691">8.14.2. Auth Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1691"><fo:page-number-citation ref-id="d0e1691"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1709">8.14.3. User defined authenticator</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1709"><fo:page-number-citation ref-id="d0e1709"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1736">8.14.4. Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1736"><fo:page-number-citation ref-id="d0e1736"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1774">8.15. Client HTTP Redirect</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1774"><fo:page-number-citation ref-id="d0e1774"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1774" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1791">8.15.1. Supported HTTP response codes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1791"><fo:page-number-citation ref-id="d0e1791"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1816">8.15.2. Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1816"><fo:page-number-citation ref-id="d0e1816"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1848">8.15.3. Exception handling</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1848"><fo:page-number-citation ref-id="d0e1848"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1885">8.16. Client support for HTTP status 503 - Service Unavailable with Retry-After header</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1885"><fo:page-number-citation ref-id="d0e1885"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1885" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1906">8.16.1. Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1906"><fo:page-number-citation ref-id="d0e1906"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="lot" language="en" format="i" 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>Tyrus 1.20 User Guide</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>Tyrus 1.20 User Guide</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="lot...table...d0e2"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">List of Tables</fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="dependencies-table-modules">2.1. Tyrus core modules</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="dependencies-table-modules"><fo:page-number-citation ref-id="dependencies-table-modules"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="dependencies-table-containers">2.2. Tyrus containers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="dependencies-table-containers"><fo:page-number-citation ref-id="dependencies-table-containers"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="lot" language="en" format="i" 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>Tyrus 1.20 User Guide</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>Tyrus 1.20 User Guide</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="lot...example...d0e2"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">List of Examples</fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-annotated-echo-endpoint">1.1. Annotated Echo Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-annotated-echo-endpoint"><fo:page-number-citation ref-id="websocket-annotated-echo-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-client-endpoint">1.2. Client Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-client-endpoint"><fo:page-number-citation ref-id="websocket-client-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-programmatic-echo-endpoint">1.3. Programmatic Echo Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-programmatic-echo-endpoint"><fo:page-number-citation ref-id="websocket-programmatic-echo-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="deployment-serverapplicationconfig">3.1. Deployment of WAR containing several classes extending <fo:inline font-family="monospace">javax.websocket.server.ServerApplicationConfig</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="deployment-serverapplicationconfig"><fo:page-number-citation ref-id="deployment-serverapplicationconfig"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="deployment-servercontainer">3.2. Deployment of Annotated Endpoint Using ServerContainer</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="deployment-servercontainer"><fo:page-number-citation ref-id="deployment-servercontainer"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="endpoints-echo-endpoint">4.1. Echo sample server endpoint.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="endpoints-echo-endpoint"><fo:page-number-citation ref-id="endpoints-echo-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="endpoints-serverendpoint-annotation">4.2. javax.websocket.server.ServerEndpoint with all fields specified</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="endpoints-serverendpoint-annotation"><fo:page-number-citation ref-id="endpoints-serverendpoint-annotation"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e510">4.3. Specifying URI path parameter</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e510"><fo:page-number-citation ref-id="d0e510"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e528">4.4. SampleDecoder</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e528"><fo:page-number-citation ref-id="d0e528"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e546">4.5. SampleEncoder</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e546"><fo:page-number-citation ref-id="d0e546"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e604">4.6. SampleClientEndpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e604"><fo:page-number-citation ref-id="d0e604"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e651">4.7. @OnOpen with Session and EndpointConfig parameters.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e651"><fo:page-number-citation ref-id="d0e651"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e664">4.8. @OnClose with Session and CloseReason parameters.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e664"><fo:page-number-citation ref-id="d0e664"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e677">4.9. @OnError with Session and Throwable parameters.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e677"><fo:page-number-citation ref-id="d0e677"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e690">4.10. @OnError with Session and Throwable parameters.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e690"><fo:page-number-citation ref-id="d0e690"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e709">4.11. MessageHandler basic example</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e709"><fo:page-number-citation ref-id="d0e709"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e822">5.1. Configuration for EchoEndpoint Deployment</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e822"><fo:page-number-citation ref-id="d0e822"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e832">5.2. ServerEndpointConfigu built using Builder</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e832"><fo:page-number-citation ref-id="d0e832"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e861">5.3. ClientEndpointConfig built using Builder</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e861"><fo:page-number-citation ref-id="d0e861"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-echo-sample">6.1. Lifecycle echo sample</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-echo-sample"><fo:page-number-citation ref-id="lifecycle-echo-sample"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-onmessage-sample">6.2. Sending message in @OnMessage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-onmessage-sample"><fo:page-number-citation ref-id="lifecycle-onmessage-sample"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-remote-endpoint-sample">6.3. Sending message via RemoteEndpoint.Basic instance</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-remote-endpoint-sample"><fo:page-number-citation ref-id="lifecycle-remote-endpoint-sample"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-remote-endpoint-partial-sample">6.4. Method for sending partial text message</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-remote-endpoint-partial-sample"><fo:page-number-citation ref-id="lifecycle-remote-endpoint-partial-sample"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-remote-endpoint-async-future">6.5. Sending mesage the async way using Future</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-remote-endpoint-async-future"><fo:page-number-citation ref-id="lifecycle-remote-endpoint-async-future"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="cdi-simple-bean">7.1. Injecting bean into <fo:inline font-family="monospace">javax.websocket.server.ServerEndpoint</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="cdi-simple-bean"><fo:page-number-citation ref-id="cdi-simple-bean"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="cdi-singleton-bean">7.2. Echo sample server endpoint.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="cdi-singleton-bean"><fo:page-number-citation ref-id="cdi-singleton-bean"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="front" language="en" format="i" 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>Preface</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>Preface</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="preface"><fo:block><fo:block><fo:block margin-left="0pt" font-size="24.8832pt" font-family="sans-serif,Symbol,ZapfDingbats" 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">Preface</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">
+            This is user guide for Tyrus 1.20. 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
+            <fo:basic-link external-destination="url(https://projects.eclipse.org/projects/ee4j.websocket)"><fo:inline>Java API for WebSocket</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://projects.eclipse.org/projects/ee4j.websocket)">https://projects.eclipse.org/projects/ee4j.websocket</fo:basic-link>]</fo:inline>
+            home pages as an additional source of information about Tyrus features and API.
+
+            If you would like to contribute to the guide or have questions
+            on things not covered in our docs, please contact us at
+            <fo:basic-link external-destination="url(https://dev.eclipse.org/mailman/listinfo/tyrus-dev)"><fo:inline>tyrus-dev@eclipse.org</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://dev.eclipse.org/mailman/listinfo/tyrus-dev)">https://dev.eclipse.org/mailman/listinfo/tyrus-dev</fo:basic-link>]</fo:inline>.
+        </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="1" 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>Getting Started</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>Getting Started</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="getting-started"><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 1. Getting Started</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">
+        This chapter provides a quick introduction on how to get started building
+        WebSocket services using Java API for WebSocket and Tyrus. The example described here presents how to implement
+        simple websocket service as JavaEE web application that can be deployed on any servlet container
+        supporting Servlet 3.1 and higher. It also discusses starting Tyrus in standalone mode.
+    </fo:block><fo:block id="getting-started-wsapi-artifact"><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">WebSocket Services Using Java API for WebSocket</fo:marker><fo:block font-size="20.735999999999997pt">1.1. WebSocket Services Using Java API for WebSocket</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">
+                First, to use the Java API for WebSocket in your project you need to depend on the following artifact:
+<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="d0e31">&lt;dependency&gt;
+    &lt;groupId&gt;javax.websocket&lt;/groupId&gt;
+    &lt;artifactId&gt;javax.websocket-api&lt;/artifactId&gt;
+    &lt;version&gt;1.1&lt;/version&gt;
+&lt;/dependency&gt;
+</fo:block>
+            </fo:block><fo:block id="d0e34"><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">Creating Annotated Server Endpoint</fo:marker><fo:block font-size="17.28pt">1.1.1. Creating Annotated Server Endpoint</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">
+                In this section we will create a simple server side websocket endpoint which will echo the received
+                message back to the sender. We will deploy this endpoint on the container.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                In Java API for WebSocket and Tyrus, there are two basic approaches how to create an endpoint - either annotated endpoint,
+                or programmatic endpoint.
+                By annotated endpoint we mean endpoint constructed by using annotations (<fo:inline font-family="monospace">javax.websocket.server.ServerEndpoint</fo:inline>
+                for server endpoint and <fo:inline font-family="monospace">javax.websocket.ClientEndpoint</fo:inline> for client endpoint), like in
+                <fo:basic-link internal-destination="websocket-annotated-echo-endpoint"><fo:inline>"Annotated Echo Endpoint"</fo:inline></fo:basic-link>.
+                <fo:block><fo:block 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="websocket-annotated-echo-endpoint"><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">Example 1.1. Annotated Echo Endpoint</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="d0e53">  1 @ServerEndpoint(value = "/echo")
+  2 public class EchoEndpointAnnotated {
+  3     @OnMessage
+  4     public String onMessage(String message, Session session) {
+  5         return message;
+  6     }
+  7 }
+  8 </fo:block></fo:block></fo:block>
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            The functionality of the <fo:inline font-family="monospace">EchoEndpointAnnotated</fo:inline> is fairly simple - to send the received message
+            back to the sender. To turn a POJO (Plain Old Java Object) to WebSocket server endpoint, the annotation
+            <fo:inline font-family="monospace">@ServerEndpoint(value = "/echo")</fo:inline> needs to be put on the POJO - see line 1. The URI path of the endpoint
+            is <fo:inline font-family="monospace">"/echo"</fo:inline>. The annotation <fo:inline font-family="monospace">@OnMessage</fo:inline> - line 3 on the method <fo:inline font-family="monospace">public String
+            onMessage(String message, Session session)</fo:inline> indicates that this method
+            will be called whenever text message is received. On line 5 in this method the message is sent back to
+            the user by returning it from the message.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            The application containing only the <fo:inline font-family="monospace">EchoEndpointAnnotated</fo:inline> class can be deployed to the container.
+        </fo:block></fo:block><fo:block id="d0e78"><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 Endpoint</fo:marker><fo:block font-size="17.28pt">1.1.2. Client Endpoint</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">
+                    Let's create the client part of the application. The client part may be written in JavaScript or any
+                    other technology supporting WebSockets. We will use Java API for WebSocket and Tyrus to demonstrate how to develop
+                    programmatic client endpoint.
+                    The following code is used as a client part to communicate with the <fo:inline font-family="monospace">EchoEndpoint</fo:inline> deployed on server
+                    using Tyrus and Java API for WebSocket.
+                </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                    The example <fo:basic-link internal-destination="websocket-client-endpoint"><fo:inline>"Client Endpoint"</fo:inline></fo:basic-link> utilizes the concept
+                    of the programmatic endpoint. By programmatic endpoint we mean endpoint which is created by extending
+                    class <fo:inline font-family="monospace">javax.websocket.Endpoint</fo:inline>.
+                    The example is standalone java application which needs to depend on some Tyrus artifacts to work
+                    correctly, see <fo:basic-link internal-destination="standalone-mode"><fo:inline>"Tyrus Standalone Mode"</fo:inline></fo:basic-link>.
+                    In the example first the <fo:inline font-family="monospace">CountDownLatch</fo:inline> is initialized. It is needed as a bocking data
+                    structure - on line 31 it either waits for 100 seconds, or until it gets counted down (line 22).
+                    On line 9 the <fo:inline font-family="monospace">javax.websocket.ClientEndpointConfig</fo:inline> is created -  we will need it later
+                    to connect the endpoint to the server. On line 11 the <fo:inline font-family="monospace">org.glassfish.tyrus.client.ClientManager</fo:inline>
+                    is created. it implements the <fo:inline font-family="monospace">javax.websocket.WebSocketContainer</fo:inline> and is used to connect
+                    to server. This happens on next line. The client endpoint functionality is contained in the <fo:inline font-family="monospace">
+                    javax.websocket.Endpoint</fo:inline> lazy instantiation. In the <fo:inline font-family="monospace">onOpen</fo:inline> method new MessageHandler
+                    is registered (the received message is just printed on the console and the latch is counted down). After
+                    the registration the message is sent to the server (line 25).
+                    <fo:block><fo:block 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="websocket-client-endpoint"><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">Example 1.2. Client Endpoint</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="d0e118">  1 public class DocClient {
+  2     private static CountDownLatch messageLatch;
+  3     private static final String SENT_MESSAGE = "Hello World";
+  4 
+  5     public static void main(String [] args){
+  6         try {
+  7             messageLatch = new CountDownLatch(1);
+  8 
+  9             final ClientEndpointConfig cec = ClientEndpointConfig.Builder.create().build();
+ 10 
+ 11             ClientManager client = ClientManager.createClient();
+ 12             client.connectToServer(new Endpoint() {
+ 13 
+ 14                 @Override
+ 15                 public void onOpen(Session session, EndpointConfig config) {
+ 16                     try {
+ 17                         session.addMessageHandler(new MessageHandler.Whole&lt;String&gt;() {
+ 18 
+ 19                             @Override
+ 20                             public void onMessage(String message) {
+ 21                                 System.out.println("Received message: "+message);
+ 22                                 messageLatch.countDown();
+ 23                             }
+ 24                         });
+ 25                         session.getBasicRemote().sendText(SENT_MESSAGE);
+ 26                     } catch (IOException e) {
+ 27                         e.printStackTrace();
+ 28                     }
+ 29                 }
+ 30             }, cec, new URI("ws://localhost:8025/websockets/echo"));
+ 31             messageLatch.await(100, TimeUnit.SECONDS);
+ 32         } catch (Exception e) {
+ 33             e.printStackTrace();
+ 34         }
+ 35     }
+ 36 }</fo:block></fo:block></fo:block>
+                </fo:block></fo:block><fo:block id="websocket-programmatic-endpoint"><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">Creating Server Endpoint Programmatically</fo:marker><fo:block font-size="17.28pt">1.1.3. Creating Server Endpoint Programmatically</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">
+            Similarly to <fo:basic-link internal-destination="websocket-client-endpoint"><fo:inline>"Client Endpoint"</fo:inline></fo:basic-link> the server registered endpoint
+            may also be the programmatic one:
+            <fo:block><fo:block 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="websocket-programmatic-echo-endpoint"><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">Example 1.3. Programmatic Echo Endpoint</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="d0e132">  1 public class EchoEndpointProgrammatic extends Endpoint {
+  2     @Override
+  3     public void onOpen(final Session session, EndpointConfig config) {
+  4         session.addMessageHandler(new MessageHandler.Whole&lt;String&gt;() {
+  5             @Override
+  6             public void onMessage(String message) {
+  7                 try {
+  8                     session.getBasicRemote().sendText(message);
+  9                 } catch (IOException e) {
+ 10                     e.printStackTrace();
+ 11                 }
+ 12             }
+ 13         });
+ 14     }
+ 15 }</fo:block></fo:block></fo:block>
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            The functionality of the <fo:inline font-family="monospace">EchoEndpointProgrammatic</fo:inline> is fairly simple - to send the received message back to the sender.
+            The programmatic server endpoint needs to extend <fo:inline font-family="monospace">javax.websocket.Endpoint</fo:inline> - line 1.
+            Mehod <fo:inline font-family="monospace">public void onOpen(final Session session, EndpointConfig config)</fo:inline> gets called once new
+            connection to this endpoin0t is opened. In this method the <fo:inline font-family="monospace">MessageHandler</fo:inline> is registered to the
+            <fo:inline font-family="monospace">javax.websocket.Session</fo:inline> instance, which opened the connection. Method <fo:inline font-family="monospace">public void
+            onMessage(String message)</fo:inline> gets called once the message is received. On line 8 the message
+            is sent back to the sender.
+        </fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        To see how both annotated and programmatic endpoints may be deployed please check the section Deployment.
+        In short: you need to put the server endpoint classes into WAR, deploy on server and the endpoints will
+        be scanned by server and deployed.
+    </fo:block><fo:block id="standalone-mode"><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">Tyrus in Standalone Mode</fo:marker><fo:block font-size="17.28pt">1.1.4. Tyrus in Standalone Mode</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">
+
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                To use Tyrus in standalone mode it is necessary to depend on correct Tyrus artifacts.
+                The following artifacts need to be added to your pom to use Tyrus:
+<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;1.20&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;1.20&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
+                standalone Tyrus server on the hostname "localhost", port 8025 and path "/websockets", so the endpoint
+                will be available at address "ws://localhost:8025/websockets/echo".
+<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="d0e172">public void runServer() {
+    Server server = new Server("localhost", 8025, "/websockets", null, EchoEndpoint.class);
+
+    try {
+        server.start();
+        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
+        System.out.print("Please press a key to stop the server.");
+        reader.readLine();
+    } catch (Exception e) {
+        e.printStackTrace();
+    } finally {
+        server.stop();
+    }
+}</fo:block>
+            </fo:block></fo:block></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>Tyrus Modules and Dependencies</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>Tyrus Modules and Dependencies</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="modules-and-dependencies"><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 2. Tyrus Modules and Dependencies</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">
+        Tyrus is built, assembled and installed using Maven. Tyrus is deployed to maven.org maven repository
+        at the following location:<fo:basic-link external-destination="url(http://search.maven.org/)"><fo:inline>http://search.maven.org/</fo:inline></fo:basic-link>.
+        Jars, jar sources, jar javadoc and samples are all available on the java.net maven repository.
+    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        All Tyrus components are built using Java SE 7 compiler. It means, you will also need at least Java SE 7
+        to be able to compile and run your application. Developers using maven are likely to find it easier to include
+        and
+        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|1.20|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|1.20|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|1.20|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|1.20|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|1.20|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|1.20|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|1.20|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|1.20|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|1.20|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|1.20|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/1.20/tyrus-samples-1.20-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/1.20/tyrus-samples-1.20-all.zip)">http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/1.20/tyrus-samples-1.20-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|1.20|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|1.20|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|1.20|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|1.20|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|1.20|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|1.20|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|1.20|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|1.20|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|1.20|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|1.20|bundle)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|1.20|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.
+    </fo:block><fo:block id="d0e334"><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">Deploying Endpoints as a WAR file</fo:marker><fo:block font-size="20.735999999999997pt">3.1. Deploying Endpoints as a WAR file</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">
+            The classes that are scanned for in WAR are the following ones:
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e339"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e340"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                        Classes that implement the <fo:inline font-family="monospace">javax.websocket.ServerApplicationConfig</fo:inline>.
+                    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e346"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                        Classes annotated with <fo:inline font-family="monospace">javax.websocket.server.ServerEndpoint</fo:inline>.
+                    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e352"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                        Classes that extend <fo:inline font-family="monospace">javax.websocket.Endpoint</fo:inline>.
+                    </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+        </fo:block><fo:block id="d0e359"><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">Deployment Algorithm</fo:marker><fo:block font-size="17.28pt">3.1.1. Deployment Algorithm</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">
+                <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.2em" id="d0e364"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e365"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
+                        If one or more classes implementing ServerApplicationConfiguration are present in the WAR file, Tyrus deploys endpoints
+                        provided by all of these classes. Tyrus doesn't deploy any other classes present in the WAR (annotated by
+                        <fo:inline font-family="monospace">javax.websocket.server.ServerEndpoint</fo:inline> or extending <fo:inline font-family="monospace">javax.websocket.Endpoint</fo:inline>).
+                    </fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e373"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
+                        If no class implementing ServerApplicationConfiguration is present, Tyrus deploys all classes annotated
+                        with @ServerEndpoint or extending Endpoint present in the WAR.
+                    </fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+            </fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            Let's have the following classes in the WAR:
+            <fo:block><fo:block 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="deployment-serverapplicationconfig"><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">Example 3.1. Deployment of WAR containing several classes extending <fo:inline font-family="monospace">javax.websocket.server.ServerApplicationConfig</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="d0e383">  1 public class MyApplicationConfigOne implements ServerApplicationConfig {
+  2     public Set&lt;ServerEndpointConfig&gt; getEndpointConfigs(Set&lt;Class&lt;? extends Endpoint&gt;&gt; endpointClasses);
+  3         Set&lt;Class&lt;? extends Endpoint&gt;&gt; s = new HashSet&lt;Class&lt;? extends Endpoint&gt;&gt;;
+  4         s.add(ProgrammaticEndpointOne.class);
+  5         return s;
+  6     }
+  7 
+  8     public Set&lt;Class&gt; getAnnotatedEndpointClasses(Set&lt;Class&lt;?&gt;&gt; scanned);
+  9        Set&lt;Class&lt;?&gt;&gt; s = new HashSet&lt;Class&lt;?&gt;&gt;;
+ 10         s.add(AnnotatedEndpointOne.class);
+ 11         return s;
+ 12     }
+ 13 }
+ 14 
+ 15 public class MyApplicationConfigTwo implements ServerApplicationConfig {
+ 16     public Set&lt;ServerEndpointConfig&gt; getEndpointConfigs(Set&lt;Class&lt;? extends Endpoint&gt;&gt; endpointClasses);
+ 17         Set&lt;Class&lt;? extends Endpoint&gt;&gt; s = new HashSet&lt;Class&lt;? extends Endpoint&gt;&gt;;
+ 18         s.add(ProgrammaticEndpointTwo.class);
+ 19     return s;
+ 20 }
+ 21 
+ 22 public Set&lt;Class&gt; getAnnotatedEndpointClasses(Set&lt;Class&lt;?&gt;&gt; scanned);
+ 23     Set&lt;Class&lt;?&gt;&gt; s = new HashSet&lt;Class&lt;?&gt;&gt;;
+ 24         s.add(AnnotatedEndpointTwo.class);
+ 25         return s;
+ 26     }
+ 27 }
+ 28 
+ 29 @ServerEndpoint(value = "/annotatedone")
+ 30 public class AnnotatedEndpointOne {
+ 31     ...
+ 32 }
+ 33 
+ 34 @ServerEndpoint(value = "/annotatedtwo")
+ 35     public class AnnotatedEndpointTwo {
+ 36     ...
+ 37 }
+ 38 
+ 39 @ServerEndpoint(value = "/annotatedthree")
+ 40 public class AnnotatedEndpointThree {
+ 41     ...
+ 42 }
+ 43 
+ 44 public class ProgrammaticEndpointOne extends Endpoint {
+ 45     ...
+ 46 }
+ 47 
+ 48 public class ProgrammaticEndpointTwo extends Endpoint {
+ 49     ...
+ 50 }
+ 51 
+ 52 public class ProgrammaticEndpointThree extends Endpoint {
+ 53     ...
+ 54 }</fo:block></fo:block></fo:block>
+            According to the deployment algorithm classes <fo:inline font-family="monospace">AnnotatedEndpointOne</fo:inline>, <fo:inline font-family="monospace">AnnotatedEndpointTwo</fo:inline>,
+            <fo:inline font-family="monospace">ProgrammaticEndpointOne</fo:inline> and <fo:inline font-family="monospace">ProgrammaticEndpointTwo</fo:inline> will be deployed.
+            <fo:inline font-family="monospace">AnnotatedEndpointThree</fo:inline> and <fo:inline font-family="monospace">ProgrammaticEndpointThree</fo:inline> will not be
+            deployed, as these are not returned by the respective
+            methods of <fo:inline font-family="monospace">MyApplicationConfigOne</fo:inline> nor <fo:inline font-family="monospace">MyApplicationConfigTwo</fo:inline>.
+        </fo:block></fo:block><fo:block id="d0e410"><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">Deploying endpoints via <fo:inline font-family="monospace">javax.websocket.server.ServerContainer</fo:inline></fo:marker><fo:block font-size="20.735999999999997pt">3.2. Deploying endpoints via <fo:inline font-family="monospace">javax.websocket.server.ServerContainer</fo:inline></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">
+            Endpoints may be deployed using <fo:inline font-family="monospace">javax.websocket.server.ServerContainer</fo:inline> during the application initialization phase.
+            For websocket enabled web containers, developers may obtain a reference to the ServerContainer instance by
+            retrieving it as an attribute named <fo:inline font-family="monospace">javax.websocket.server.ServerContainer</fo:inline> on the ServletContext, see
+            the following example for annotated endpoint:
+            <fo:block><fo:block 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="deployment-servercontainer"><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">Example 3.2. Deployment of Annotated Endpoint Using ServerContainer</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="d0e426">  1 @WebListener
+  2 @ServerEndpoint("/annotated")
+  3 public class MyServletContextListenerAnnotated implements ServletContextListener {
+  4 
+  5     @Override
+  6     public void contextInitialized(ServletContextEvent servletContextEvent) {
+  7         final ServerContainer serverContainer = (ServerContainer) servletContextEvent.getServletContext()
+  8                                                     .getAttribute("javax.websocket.server.ServerContainer");
+  9 
+ 10         try {
+ 11             serverContainer.addEndpoint(MyServletContextListenerAnnotated.class);
+ 12         } catch (DeploymentException e) {
+ 13             e.printStackTrace();
+ 14         }
+ 15     }
+ 16 
+ 17     @OnMessage
+ 18     public String onMessage(String message) {
+ 19         return message;
+ 20     }
+ 21 
+ 22     @Override
+ 23     public void contextDestroyed(ServletContextEvent servletContextEvent) {
+ 24     }
+ 25 }</fo:block></fo:block></fo:block>
+        </fo:block></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>WebSocket API Endpoints, Sessions and MessageHandlers</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>WebSocket API Endpoints, Sessions and MessageHandlers</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="websocket-api"><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 4. WebSocket API Endpoints, Sessions and MessageHandlers</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">This chapter presents an overview of the core WebSocket API concepts - endpoints, configurations and message
+        handlers.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The JAVA API for WebSocket specification draft can be found online <fo:basic-link external-destination="url(http://jcp.org/aboutJava/communityprocess/pfd/jsr356/index.html)"><fo:inline>here</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://jcp.org/aboutJava/communityprocess/pfd/jsr356/index.html)">http://jcp.org/aboutJava/communityprocess/pfd/jsr356/index.html</fo:basic-link>]</fo:inline>.
+    </fo:block><fo:block id="d0e440"><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">Endpoint Classes</fo:marker><fo:block font-size="20.735999999999997pt">4.1. Endpoint Classes</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">
+            <fo:inline font-style="italic">Server endpoint classes</fo:inline>
+            are POJOs (Plain Old Java Objects) that are annotated with <fo:inline font-family="monospace">javax.websocket.server.ServerEndpoint</fo:inline>.
+            Similarly, <fo:inline font-style="italic">client endpoint classes</fo:inline> are POJOs annotated with javax.websocket.ClientEndpoint.
+            This section shows how to use Tyrus to annotate Java objects to create WebSocket web services.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following code example is a simple example of a WebSocket endpoint using annotations. The example
+            code shown here is from echo sample which ships with Tyrus.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:block><fo:block 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="endpoints-echo-endpoint"><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">Example 4.1. Echo sample server endpoint.</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="d0e461">  1 @ServerEndpoint("/echo")
+  2 public class EchoEndpoint {
+  3 
+  4     @OnOpen
+  5     public void onOpen(Session session) throws IOException {
+  6         session.getBasicRemote().sendText("onOpen");
+  7     }
+  8 
+  9     @OnMessage
+ 10     public String echo(String message) {
+ 11         return message + " (from your server)";
+ 12     }
+ 13 
+ 14     @OnError
+ 15     public void onError(Throwable t) {
+ 16         t.printStackTrace();
+ 17     }
+ 18 
+ 19     @OnClose
+ 20     public void onClose(Session session) {
+ 21 
+ 22     }
+ 23 }</fo:block></fo:block></fo:block>
+            Let's explain the JAVA API for WebSocket annotations.
+        </fo:block><fo:block id="d0e464"><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">javax.websocket.server.ServerEndpoint</fo:marker><fo:block font-size="17.28pt">4.1.1. javax.websocket.server.ServerEndpoint</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">javax.websocket.server.ServerEndpoint has got one mandatory field - <fo:inline font-style="italic">value</fo:inline> and four optional fields.
+                See the example below.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:block><fo:block 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="endpoints-serverendpoint-annotation"><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">Example 4.2. javax.websocket.server.ServerEndpoint with all fields specified</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="d0e477">  1 @ServerEndpoint(
+  2     value = "/sample",
+  3     decoders = ChatDecoder.class,
+  4     encoders = DisconnectResponseEncoder.class,
+  5     subprotocols = {"subprtotocol1", "subprotocol2"},
+  6     configurator = Configurator.class
+  7 )
+  8 public class SampleEndpoint {
+  9 
+ 10     @OnMessage
+ 11     public SampleResponse receiveMessage(SampleType message, Session session) {
+ 12         return new SampleResponse(message);
+ 13     }
+ 14 }</fo:block></fo:block></fo:block>
+            </fo:block><fo:block id="d0e480"><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:block font-size="14.399999999999999pt">4.1.1.1. value</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">
+                 Denotes a relative URI path at which the server endpoint will be deployed. In the example
+                    <fo:basic-link internal-destination="endpoints-serverendpoint-annotation"><fo:inline>"javax.websocket.server.ServerEndpoint with all fields specified"</fo:inline></fo:basic-link>, the
+                    Java class will be hosted at the URI path
+                    <fo:inline font-family="monospace">/sample</fo:inline>. The field <fo:inline font-style="italic">value</fo:inline> must begin with a '/' and may or may
+                    not end in a '/', it makes no difference. Thus request URLs that end or do not end in a '/' will both
+                        be matched. WebSocket API for JAVA supports level 1 URI templates.
+                </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                    <fo:inline font-style="italic">URI path templates</fo:inline>
+                    are URIs with variables embedded within the URI syntax. These variables are substituted at runtime in
+                    order for a resource to respond to a request based on the substituted URI. Variables are denoted by
+                    curly braces. For example, look at the following @ServerEndpoint annotation:
+
+                    <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="d0e499">@ServerEndpoint("/users/{username}")</fo:block>
+
+                    In this type of example, a user will be prompted to enter their name, and then a Tyrus web
+                    service configured
+                    to respond to requests to this URI path template will respond. For example, if the user entered their
+                    username as "Galileo", the web service will respond to the following URL:
+                    <fo:inline font-family="monospace">http://example.com/users/Galileo</fo:inline>
+                </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To obtain the value of the username variable the <fo:inline font-family="monospace">javax.websocket.server.PathParam</fo:inline> may be used on method parameter
+                    of methods annotated with one of @OnOpen, @OnMessage, @OnError, @OnClose.
+                    <fo:block><fo:block 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="d0e510"><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">Example 4.3. Specifying URI path parameter</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="d0e513">  1 @ServerEndpoint("/users/{username}")
+  2 public class UserEndpoint {
+  3 
+  4     @OnMessage
+  5     public String getUser(String message, @PathParam("username") String userName) {
+  6         ...
+  7     }
+  8 }</fo:block></fo:block></fo:block>
+                </fo:block></fo:block><fo:block id="d0e516"><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:block font-size="14.399999999999999pt">4.1.1.2. decoders</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">
+                    Contains list of classes that will be used to decode incoming messages for the endpoint. By decoding
+                    we mean transforming from text / binary websocket message to some user defined type. Each decoder
+                    needs to implement the Decoder interface.
+                </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                    <fo:inline font-family="monospace">SampleDecoder</fo:inline> in the following example decodes String message and produces
+                    SampleType message - see decode method on line 4.
+                </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                    <fo:block><fo:block 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="d0e528"><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">Example 4.4. SampleDecoder</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="d0e531">  1 public class SampleDecoder implements Decoder.Text&lt;SampleType&gt; {
+  2 
+  3     @Override
+  4     public SampleType decode(String s) {
+  5         return new SampleType(s);
+  6     }
+  7 
+  8     @Override
+  9     public boolean willDecode(String s) {
+ 10         return s.startsWith(SampleType.PREFIX);
+ 11     }
+ 12 
+ 13     @Override
+ 14     public void init(EndpointConfig config) {
+ 15         // do nothing.
+ 16     }
+ 17 
+ 18     @Override
+ 19     public void destroy() {
+ 20         // do nothing.
+ 21     }
+ 22 }</fo:block></fo:block></fo:block>
+                </fo:block></fo:block><fo:block id="d0e534"><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:block font-size="14.399999999999999pt">4.1.1.3. encoders</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">
+                    Contains list of classes that will be used to encode outgoing messages. By encoding we mean
+                    transforming message from user defined type to text or binary type. Each encoder needs
+                    to implement the Encoder interface.
+                </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                    <fo:inline font-family="monospace">SampleEncoder</fo:inline> in the following example decodes String message and produces
+                    SampleType message - see decode method on line 4.
+                </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                    <fo:block><fo:block 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="d0e546"><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">Example 4.5. SampleEncoder</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="d0e549">  1 public class SampleEncoder implements Encoder.Text&lt;SampleType&gt; {
+  2 
+  3     @Override
+  4     public String encode(SampleType message) {
+  5         return data.toString();
+  6     }
+  7 
+  8     @Override
+  9     public void init(EndpointConfig config) {
+ 10         // do nothing.
+ 11     }
+ 12 
+ 13     @Override
+ 14     public void destroy() {
+ 15         // do nothing.
+ 16     }
+ 17 }</fo:block></fo:block></fo:block>
+                </fo:block></fo:block><fo:block id="d0e552"><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:block font-size="14.399999999999999pt">4.1.1.4. subprotocols</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">
+                    List of names (Strings) of supported sub-protocols. The first protocol in this list that matches
+                    with sub-protocols provided by the client side is used.
+                </fo:block></fo:block><fo:block id="d0e557"><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:block font-size="14.399999999999999pt">4.1.1.5. configurator</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">
+                    Users may provide their own implementation of ServerEndpointConfiguration.Configurator. It allows
+                    them to control some algorithms used by Tyrus in the connection initialization phase:
+
+                    <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e562"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e563"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                <fo:inline font-family="monospace">public String getNegotiatedSubprotocol(List&lt;String&gt; supported, List&lt;String&gt; requested)</fo:inline>
+                                allows the user to provide their own algorithm for selection of used subprotocol.
+                            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e569"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                <fo:inline font-family="monospace">public List&lt;Extension&gt; getNegotiatedExtensions(List&lt;Extension&gt; installed, List&lt;Extension&gt; requested)</fo:inline>
+                                allows the user to provide their own algorithm for selection of used Extensions.
+                            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e575"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                <fo:inline font-family="monospace">public boolean checkOrigin(String originHeaderValue)</fo:inline>.
+                                allows the user to specify the origin checking algorithm.
+                            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e581"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                <fo:inline font-family="monospace">public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response) </fo:inline>.
+                                allows the user to modify the handshake response that will be sent back to the client.
+                            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e587"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                <fo:inline font-family="monospace">public &lt;T&gt; T getEndpointInstance(Class&lt;T&gt; endpointClass) throws InstantiationException </fo:inline>.
+                                allows the user to provide the way how the instance of an Endpoint is created
+                            </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+
+                </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+<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="d0e596">  1 public class ConfiguratorTest extends ServerEndpointConfig.Configurator{
+  2 
+  3     public String getNegotiatedSubprotocol(List&lt;String&gt; supported, List&lt;String&gt; requested) {
+  4         // Plug your own algorithm here
+  5     }
+  6 
+  7     public List&lt;Extension&gt; getNegotiatedExtensions(List&lt;Extension&gt; installed, List&lt;Extension&gt; requested) {
+  8         // Plug your own algorithm here
+  9     }
+ 10 
+ 11     public boolean checkOrigin(String originHeaderValue) {
+ 12         // Plug your own algorithm here
+ 13     }
+ 14 
+ 15     public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response) {
+ 16         // Plug your own algorithm here
+ 17     }
+ 18 
+ 19     public &lt;T&gt; T getEndpointInstance(Class&lt;T&gt; endpointClass) throws InstantiationException {
+ 20         // Plug your own algorithm here
+ 21     }
+ 22 }</fo:block>
+                </fo:block></fo:block></fo:block><fo:block id="d0e599"><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">javax.websocket.ClientEndpoint</fo:marker><fo:block font-size="17.28pt">4.1.2. javax.websocket.ClientEndpoint</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">The @ClientEndpoint class-level annotation is used to turn a POJO into WebSocket client endpoint.
+                In the following sample the client sends text message "Hello!" and prints out each received message.
+                <fo:block><fo:block 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="d0e604"><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">Example 4.6. SampleClientEndpoint</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="d0e607">  1 @ClientEndpoint(
+  2     decoders = SampleDecoder.class,
+  3     encoders = SampleEncoder.class,
+  4     subprotocols = {"subprtotocol1", "subprotocol2"},
+  5     configurator = ClientConfigurator.class)
+  6 public class SampleClientEndpoint {
+  7 
+  8     @OnOpen
+  9     public void onOpen(Session p) {
+ 10         try {
+ 11             p.getBasicRemote().sendText("Hello!");
+ 12         } catch (IOException e) {
+ 13             e.printStackTrace();
+ 14         }
+ 15     }
+ 16 
+ 17     @OnMessage
+ 18     public void onMessage(String message) {
+ 19         System.out.println(String.format("%s %s", "Received message: ", message));
+ 20     }
+ 21 }
+ 22 </fo:block></fo:block></fo:block>
+            </fo:block><fo:block id="d0e610"><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:block font-size="14.399999999999999pt">4.1.2.1. decoders</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">
+                    Contains list of classes that will be used decode incoming messages for the endpoint. By decoding
+                    we mean transforming from text / binary websocket message to some user defined type. Each decoder
+                    needs to implement the Decoder interface.
+                </fo:block></fo:block><fo:block id="d0e615"><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:block font-size="14.399999999999999pt">4.1.2.2. encoders</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">
+                    Contains list of classes that will be used to encode outgoing messages. By encoding we mean
+                    transforming message from user defined type to text or binary type. Each encoder needs
+                    to implement the Encoder interface.
+                </fo:block></fo:block><fo:block id="d0e620"><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:block font-size="14.399999999999999pt">4.1.2.3. subprotocols</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">
+                    List of names (Strings) of supported sub-protocols.
+                </fo:block></fo:block><fo:block id="d0e625"><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:block font-size="14.399999999999999pt">4.1.2.4. configurator</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">
+                    Users may provide their own implementation of ClientEndpointConfiguration.Configurator. It allows
+                    them to control some algorithms used by Tyrus in the connection initialization phase. Method
+                    <fo:inline font-style="italic">beforeRequest</fo:inline> allows the user to change the request headers constructed by
+                    Tyrus. Method <fo:inline font-style="italic">afterResponse</fo:inline> allows the user to process the handshake response.
+                </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+<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="d0e638">  1 public class Configurator {
+  2 
+  3     public void beforeRequest(Map&lt;String, List&lt;String&gt;&gt; headers) {
+  4         //affect the headers before request is sent
+  5     }
+  6 
+  7     public void afterResponse(HandshakeResponse hr) {
+  8         //process the handshake response
+  9     }
+ 10 }</fo:block>
+                </fo:block></fo:block></fo:block></fo:block><fo:block id="d0e641"><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">Endpoint method-level annotations</fo:marker><fo:block font-size="20.735999999999997pt">4.2. Endpoint method-level annotations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="d0e644"><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">@OnOpen</fo:marker><fo:block font-size="17.28pt">4.2.1. @OnOpen</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">This annotation may be used on certain methods of @ServerEndpoint or @ClientEndpoint, but only once
+                per endpoint. It is used to decorate a method which is called once new connection is established.
+                The connection is represented by the optional Session parameter. The other optional parameter
+                is EndpointConfig, which represents the passed configuration object. Note that the EndpointConfig
+                allows the user to access the user properties.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:block><fo:block 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="d0e651"><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">Example 4.7. @OnOpen with Session and EndpointConfig parameters.</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="d0e654">  1 @ServerEndpoint("/sample")
+  2 public class EchoEndpoint {
+  3 
+  4     private Map&lt;String, Object&gt; properties;
+  5 
+  6     @OnOpen
+  7     public void onOpen(Session session, EndpointConfig config) throws IOException {
+  8         session.getBasicRemote().sendText("onOpen");
+  9         properties = config.getUserProperties();
+ 10     }
+ 11 }</fo:block></fo:block></fo:block>
+            </fo:block></fo:block><fo:block id="d0e657"><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">@OnClose</fo:marker><fo:block font-size="17.28pt">4.2.2. @OnClose</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">This annotation may be used on any method of @ServerEndpoint or @ClientEndpoint, but only once
+                per endpoint. It is used to decorate a method which is called once the connection is being closed.
+                The method may have one Session parameter, one CloseReason parameter and parameters
+                annotated with @PathParam.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:block><fo:block 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="d0e664"><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">Example 4.8. @OnClose with Session and CloseReason parameters.</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="d0e667">  1 @ServerEndpoint("/sample")
+  2 public class EchoEndpoint {
+  3 
+  4     @OnClose
+  5     public void onClose(Session session, CloseReason reason) throws IOException {
+  6        //prepare the endpoint for closing.
+  7     }
+  8 }</fo:block></fo:block></fo:block>
+            </fo:block></fo:block><fo:block id="d0e670"><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">@OnError</fo:marker><fo:block font-size="17.28pt">4.2.3. @OnError</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">This annotation may be used on any method of @ServerEndpoint or @ClientEndpoint, but only once
+                per endpoint. It is used to decorate a method which is called once Exception is being thrown by
+                any method annotated with @OnOpen, @OnMessage and @OnClose.
+                The method may have optional Session parameter and Throwable parameters.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:block><fo:block 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="d0e677"><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">Example 4.9. @OnError with Session and Throwable parameters.</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="d0e680">  1 @ServerEndpoint("/sample")
+  2 public class EchoEndpoint {
+  3 
+  4     @OnError
+  5     public void onError(Session session, Throwable t) {
+  6         t.printStackTrace();
+  7     }
+  8 }</fo:block></fo:block></fo:block>
+            </fo:block></fo:block><fo:block id="d0e683"><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">@OnMessage</fo:marker><fo:block font-size="17.28pt">4.2.4. @OnMessage</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">This annotation may be used on certain methods of @ServerEndpoint or @ClientEndpoint, but
+                only once per endpoint. It is used to decorate a method which is called once new message is received.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:block><fo:block 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="d0e690"><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">Example 4.10. @OnError with Session and Throwable parameters.</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="d0e693">  1 @ServerEndpoint("/sample")
+  2 public class EchoEndpoint {
+  3 
+  4     @OnMessage
+  5     public void onMessage(Session session, String message) {
+  6         System.out.println("Received message: " + message);
+  7     }
+  8 }</fo:block></fo:block></fo:block>
+            </fo:block></fo:block></fo:block><fo:block id="d0e696"><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">MessageHandlers</fo:marker><fo:block font-size="20.735999999999997pt">4.3. MessageHandlers</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">
+            Implementing the <fo:inline font-family="monospace">javax.websocket.MessageHandler</fo:inline> interface is one of the ways how to receive messages
+            on endpoints (both server and client). It is aimed primarily on programmatic endpoints, as the annotated ones
+            use the method level annotation <fo:inline font-family="monospace">javax.websocket.OnMessage</fo:inline> to denote the method which
+            receives messages.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            The MessageHandlers get registered on the Session instance:
+        <fo:block><fo:block 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="d0e709"><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">Example 4.11. MessageHandler basic example</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="d0e712">  1 public class MyEndpoint extends Endpoint {
+  2 
+  3     @Override
+  4     public void onOpen(Session session, EndpointConfig EndpointConfig) {
+  5         session.addMessageHandler(new MessageHandler.Whole&lt;String&gt;() {
+  6             @Override
+  7             public void onMessage(String message) {
+  8                 System.out.println("Received message: "+message);
+  9             }
+ 10         });
+ 11     }
+ 12 }</fo:block></fo:block></fo:block>
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            There are two orthogonal criterions which classify MessageHandlers.
+            According the WebSocket Protocol (RFC 6455) the message may be sent either complete, or in chunks. In Java API for WebSocket this fact is reflected
+            by the interface which the handler implements. Whole messages are processed by handler which implements
+            <fo:inline font-family="monospace">javax.websocket.MessageHandler.Whole</fo:inline> interface. Partial
+            messages are processed by handlers that implement <fo:inline font-family="monospace">javax.websocket.MessageHandler.Partial</fo:inline>
+            interface. However, if user registers just the whole message handler, it doesn't mean that the handler will
+            process solely whole messages. If partial message is received, the parts are cached by Tyrus until the final
+            part is received. Then the whole message is passed to the handler. Similarly, if the user registers just the
+            partial message handler and whole message is received, it is passed directly to the handler.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            The second criterion is the data type of the message. WebSocket Protocol (RFC 6455) defines four message data type - text message,
+            According to Java API for WebSocket the text messages will be processed by MessageHandlers with the following types:
+
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e725"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e726"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                        <fo:inline font-style="italic">java.lang.String</fo:inline>
+                    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e732"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                        <fo:inline font-style="italic">java.io.Reader</fo:inline>
+                    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e738"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                        any developer object for which there is a corresponding <fo:inline font-style="italic">javax.websocket.Decoder.Text</fo:inline>
+                      or <fo:inline font-style="italic">javax.websocket.Decoder.TextStream</fo:inline>.
+                    </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+
+            The binary messages will be processed by MessageHandlers with the following types:
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e748"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e749"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                        <fo:inline font-style="italic">java.nio.ByteBuffer</fo:inline>
+                    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e755"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                        <fo:inline font-style="italic">java.io.InputStream</fo:inline>
+                    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e761"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                        any developer object for which there is a corresponding <fo:inline font-style="italic">javax.websocket.Decoder.Binary</fo:inline>
+                        or <fo:inline font-style="italic">javax.websocket.Decoder.BinaryStream</fo:inline>.
+                    </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            The Java API for WebSocket limits the registration of MessageHandlers per Session to be one MessageHandler per native
+            websocket message type. In other words, the developer can only register at most one MessageHandler for
+            incoming text messages, one MessageHandler for incoming binary messages, and one MessageHandler for
+            incoming pong messages. This rule holds for both whole and partial message handlers, i.e there may be one
+            text MessageHandler - either whole, or partial, not both.
+        </fo:block></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>Configurations</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>Configurations</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="configurations"><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 5. Configurations</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">
+        <fo:inline font-family="monospace">javax.websocket.server.ServerEndpointConfig</fo:inline> and <fo:inline font-family="monospace">javax.websocket.ClientEndpointConfig</fo:inline> objects
+        are used to provide the user the ability to configure websocket endpoints. Both server and client endpoints have some
+        part of configuration in common, namely encoders, decoders, and user properties. The user properties may developers
+        use to store the application specific data. For the developer's convenience the builders are provided for both
+        ServerEndpointConfig and ClientEndpointConfig.
+    </fo:block><fo:block id="d0e785"><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"><fo:inline font-family="monospace">javax.websocket.server.ServerEndpointConfig</fo:inline></fo:marker><fo:block font-size="20.735999999999997pt">5.1. <fo:inline font-family="monospace">javax.websocket.server.ServerEndpointConfig</fo:inline></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">
+            The <fo:inline font-family="monospace">javax.websocket.server.ServerEndpointConfig</fo:inline> is used when deploying the endpoint either via
+            implementing the <fo:inline font-family="monospace">javax.websocket.server.ServerApplicationConfig</fo:inline>, or via registering the programmatic endpoint
+            at the <fo:inline font-family="monospace">javax.websocket.server.ServerContainer</fo:inline> instance. It allows the user to create the configuration
+            programmatically.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            The following example is used to deploy the EchoEndpoint programmatically. In the method
+            <fo:inline font-family="monospace">getEndpointClass()</fo:inline> the user has to specify the class of the deployed endpoint. In
+            the example Tyrus will create an instance of <fo:inline font-family="monospace">EchoEndpoint</fo:inline> and deploy it.
+            This is the way how to tie together endpoint and it's configuration. In the method
+            <fo:inline font-family="monospace">getPath()</fo:inline> the user specifies that that the endpoint instance will be deployed at the
+            path "/echo". In the method <fo:inline font-family="monospace">public List&lt;String&gt; getSubprotocols()</fo:inline> the user
+            specifies that the supported subprotocols are "echo1" and "echo2". The method <fo:inline font-family="monospace">getExtensions()</fo:inline>
+            defines the extensions the endpoint supports. Similarly the example configuration does not use any configurator.
+            Method <fo:inline font-family="monospace">public List&lt;Class&lt;? extends Encoder&gt;&gt; getEncoders()</fo:inline> defines the encoders
+            used by the endpoint. The decoders and user properties map are defined in similar fashion.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            If the endpoint class which is about to be deployed is an annotated endpoint, note that the endpoint configuration
+            will be taken from configuration object, not from the annotation on the endpoint class.
+        </fo:block><fo:block><fo:block 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="d0e822"><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">Example 5.1. Configuration for EchoEndpoint Deployment</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="d0e825">  1 public class EchoEndpointConfig implements ServerEndpointConfig{
+  2 
+  3     private final Map&lt;String, Object&gt; userProperties = new HashMap&lt;String, Object&gt;();
+  4 
+  5     @Override
+  6     public Class&lt;?&gt; getEndpointClass() {
+  7         return EchoEndpoint.class;
+  8     }
+  9 
+ 10     @Override
+ 11     public String getPath() {
+ 12         return "/echo";
+ 13     }
+ 14 
+ 15     @Override
+ 16     public List&lt;String&gt; getSubprotocols() {
+ 17         return Arrays.asList("echo1","echo2");
+ 18     }
+ 19 
+ 20     @Override
+ 21     public List&lt;Extension&gt; getExtensions() {
+ 22         return null;
+ 23     }
+ 24 
+ 25     @Override
+ 26     public Configurator getConfigurator() {
+ 27         return null;
+ 28     }
+ 29 
+ 30     @Override
+ 31     public List&lt;Class&lt;? extends Encoder&gt;&gt; getEncoders() {
+ 32         return Arrays.asList(SampleEncoder.class);
+ 33     }
+ 34 
+ 35     @Override
+ 36     public List&lt;Class&lt;? extends Decoder&gt;&gt; getDecoders() {
+ 37         return Arrays.asList(SampleDecoder.class);
+ 38     }
+ 39 
+ 40     @Override
+ 41     public Map&lt;String, Object&gt; getUserProperties() {
+ 42         return userProperties;
+ 43     }
+ 44 }</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            To make the development easy the <fo:inline font-style="italic">javax.websocket.server.ServerEndpointConfig</fo:inline> provides a builder to construct
+            the configuration object:
+            <fo:block><fo:block 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="d0e832"><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">Example 5.2. ServerEndpointConfigu built using Builder</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="d0e835">  1 ServerEndpointConfig config = ServerEndpointConfig.Builder.create(EchoEndpoint.class,"/echo").
+  2     decoders(Arrays.&lt;Class&lt;? extends Decoder&gt;&gt;asList(JsonDecoder.class)).
+  3     encoders(Arrays.&lt;Class&lt; extends Encoder&gt;&gt;asList(JsonEncoder.class)).build();</fo:block></fo:block></fo:block>
+        </fo:block></fo:block><fo:block id="d0e838"><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"><fo:inline font-family="monospace">javax.websocket.ClientEndpointConfig</fo:inline></fo:marker><fo:block font-size="20.735999999999997pt">5.2. <fo:inline font-family="monospace">javax.websocket.ClientEndpointConfig</fo:inline></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">
+            The <fo:inline font-family="monospace">javax.websocket.ClientEndpointConfig</fo:inline> is used when deploying the programmatic client endpoint
+            via registering the programmatic endpoint at the <fo:inline font-family="monospace">WebSocketContainer</fo:inline> instance. Some of
+            the configuration methods come from the <fo:inline font-family="monospace">EndpointConfig</fo:inline>class, which is extended by both
+            <fo:inline font-family="monospace">javax.websocket.server.ServerEndpointConfig</fo:inline> and <fo:inline font-family="monospace">javax.websocket.ClientEndpointConfig</fo:inline>. Then there are methods
+            for configuring the preferred subprotocols the client endpoint wants to use and supported extensions. It is
+            also possible to use the ClientEndpointConfig.Configurator in order to be able to affect the endpoint behaviour
+            before and after request.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            Similarly to the ServerEndpointConfig, there is a Builder provided to construct the configuration easily:
+        </fo:block><fo:block><fo:block 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="d0e861"><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">Example 5.3. ClientEndpointConfig built using Builder</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="d0e864">  1 ClientEndpointConfig.Builder.create().
+  2     decoders(Arrays.&lt;Class&lt;? extends Decoder&gt;&gt;asList(JsonDecoder.class)).
+  3     encoders(Arrays.&lt;Class&lt;? extends Encoder&gt;&gt;asList(JsonEncoder.class)).
+  4     preferredSubprotocols(Arrays.asList("echo1", "echo2")).build();</fo:block></fo:block></fo:block></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>Endpoint Lifecycle, Sessions, Sending Messages</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>Endpoint Lifecycle, Sessions, Sending Messages</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="lifecycle"><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 6. Endpoint Lifecycle, Sessions, Sending Messages</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="d0e870"><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">Endpoint Lifecycle</fo:marker><fo:block font-size="20.735999999999997pt">6.1. Endpoint Lifecycle</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">
+                As mentioned before, the endpoint in Java API for WebSocket is represented either by instance of <fo:inline font-family="monospace">javax.websocket.Endpoint</fo:inline>,
+                or by class annotated with either <fo:inline font-family="monospace">javax.websocket.server.ServerEndpoint</fo:inline> or
+                <fo:inline font-family="monospace">javax.websocket.ClientEndpoint</fo:inline>. Unless otherwise defined by developer provided configurator
+                (defined in instance of <fo:inline font-family="monospace">javax.websocket.server.ServerEndpointConfig</fo:inline> or
+                <fo:inline font-family="monospace">javax.websocket.ClientEndpointConfig</fo:inline>, Tyrus uses one endpoint instance per VM per connected
+                peer. Therefore one endpoint instance typically handles connections from one peer.
+            </fo:block></fo:block><fo:block id="d0e890"><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"><fo:inline font-family="monospace">javax.websocket.Session</fo:inline></fo:marker><fo:block font-size="20.735999999999997pt">6.2. <fo:inline font-family="monospace">javax.websocket.Session</fo:inline></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">
+                The sequence of interactions between an endpoint instance and remote peer is in Java API for WebSocket modelled by
+                <fo:inline font-family="monospace">javax.websocket.Session</fo:inline> instance. This interaction starts by mandatory open notification,
+                continues by 0 - n websocket messages and is finished by mandatory closing notification.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                The <fo:inline font-family="monospace">javax.websocket.Session</fo:inline> instance is passed by Tyrus to the user in the following methods
+                for programmatic endpoints:
+                <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e904"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e905"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                            <fo:inline font-family="monospace">public void onOpen(Session session, EndpointConfig config)</fo:inline>
+                        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e911"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                            <fo:inline font-family="monospace">public void onClose(Session session, CloseReason closeReason)</fo:inline>
+                        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e917"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                            <fo:inline font-family="monospace">public void onError(Session session, Throwable thr)</fo:inline>
+                        </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                The <fo:inline font-family="monospace">javax.websocket.Session</fo:inline> instance is passed by Tyrus to the user in the methods
+                annotated by following annotations for annotated endpoints:
+                <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e929"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e930"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                            method annotated with <fo:inline font-family="monospace">javax.websocket.OnOpen</fo:inline>
+                        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e936"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                            method annotated with <fo:inline font-family="monospace">javax.websocket.OnMessage</fo:inline>
+                        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e942"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                            method annotated with <fo:inline font-family="monospace">javax.websocket.OnClose</fo:inline>
+                        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e948"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                            method annotated with <fo:inline font-family="monospace">javax.websocket.OnError</fo:inline>
+                        </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+                In each of the methods annotated with the preceeding annotations the user may use parameter of type
+                <fo:inline font-family="monospace">javax.websocket.Session</fo:inline>. In the following example the developer wants to send a message in
+                the method annotated with <fo:inline font-family="monospace">javax.websocket.OnOpen</fo:inline>. As we will demonstrate later, the developer
+                needs the session instance to do so. According to Java API for WebSocket Session is one of the allowed parameters in
+                methods annotated with  <fo:inline font-family="monospace">javax.websocket.OnOpen</fo:inline>. Once the annotated method gets called,
+                Tyrus passes in the correct instance of <fo:inline font-family="monospace">javax.websocket.Session</fo:inline>.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:block><fo:block 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="lifecycle-echo-sample"><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">Example 6.1. Lifecycle echo sample</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="d0e972">  1 @ServerEndpoint("/echo")
+  2 public class EchoEndpoint {
+  3 
+  4     @OnOpen
+  5     public void onOpen(Session session) throws IOException {
+  6         session.getBasicRemote().sendText("onOpen");
+  7     }
+  8 
+  9     @OnMessage
+ 10     public String echo(String message) {
+ 11         return message;
+ 12     }
+ 13 
+ 14     @OnError
+ 15     public void onError(Throwable t) {
+ 16         t.printStackTrace();
+ 17     }
+ 18 }</fo:block></fo:block></fo:block>
+            </fo:block></fo:block><fo:block id="d0e975"><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">Sending Messages</fo:marker><fo:block font-size="20.735999999999997pt">6.3. Sending Messages</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">
+                Generally there are two ways how to send message to the peer endpoint. First one is usable for annotated
+                endpoints only. The user may send the message by returning the message content from the method annotated
+                with <fo:inline font-family="monospace">javax.websocket.OnMessage</fo:inline>. In the following example the message m is sent back to the
+                remote endpoint.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:block><fo:block 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="lifecycle-onmessage-sample"><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">Example 6.2. Sending message in @OnMessage</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="d0e988">  1 @OnMessage
+  2 public String echo(String m) {
+  3     return m;                                                                                                                               
+  4 }</fo:block></fo:block></fo:block>
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            The other option how to send a message is to obtain the <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint</fo:inline> instance
+            via the <fo:inline font-family="monospace">javax.websocket.Session</fo:inline> instance. See the following example:
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:block><fo:block 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="lifecycle-remote-endpoint-sample"><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">Example 6.3. Sending message via RemoteEndpoint.Basic instance</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="d0e1004">  1 @OnMessage
+  2 public void echo(String message, Session session) {
+  3     session.getBasicRemote().sendText(message);
+  4 }</fo:block></fo:block></fo:block>
+        </fo:block></fo:block><fo:block id="d0e1007"><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">RemoteEndpoint</fo:marker><fo:block font-size="20.735999999999997pt">6.4. RemoteEndpoint</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">
+            The interface <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint</fo:inline>, part of Java API for WebSocket, is designed to represent the
+            other end of the communication (related to the endpoint), so the developer uses it to send the message.
+            There are two basic interfaces the user may use - <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint$Basic</fo:inline> and
+            <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint$Async</fo:inline>.
+        </fo:block><fo:block id="d0e1021"><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"><fo:inline font-family="monospace">javax.websocket.RemoteEndpoint.Basic</fo:inline></fo:marker><fo:block font-size="17.28pt">6.4.1. <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint.Basic</fo:inline></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">
+                This representation of the peer of a web socket conversation is used to send synchronous messages. The point
+                of completion of the send is defined when all the supplied data has been written to the underlying connection.
+                The methods for sending messages on the
+                <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint$Basic</fo:inline> block until this point of completion is reached, except for
+                <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint$Basic#getSendStream()</fo:inline> and
+                <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint$Basic#getSendWriter()</fo:inline> which present traditional blocking I/O streams
+                to write messages. See the example
+                <fo:basic-link internal-destination="lifecycle-remote-endpoint-sample"><fo:inline>"Sending message via RemoteEndpoint.Basic instance"</fo:inline></fo:basic-link>
+                to see how the whole text message is send. The following example demonstrates a method which sends the
+                partial text method to the peer:
+                <fo:block><fo:block 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="lifecycle-remote-endpoint-partial-sample"><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">Example 6.4. Method for sending partial text message</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="d0e1042">  1 public void sendPartialTextMessage(String message, Boolean isLast, Session session){
+  2     try {
+  3         session.getBasicRemote().sendText(message, isLast);
+  4     } catch (IOException e) {
+  5         e.printStackTrace();
+  6     }
+  7 }</fo:block></fo:block></fo:block>
+            </fo:block></fo:block><fo:block id="d0e1045"><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"><fo:inline font-family="monospace">javax.websocket.RemoteEndpoint.Async</fo:inline></fo:marker><fo:block font-size="17.28pt">6.4.2. <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint.Async</fo:inline></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">
+                This representation of the peer of a web socket conversation has the ability to send messages
+                asynchronously. The point of completion of the send is defined when all the supplied data has been
+                written to the underlying connection. The completion handlers for the asynchronous methods are always
+                called with a different thread from that which initiated the send.
+                <fo:block><fo:block 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="lifecycle-remote-endpoint-async-future"><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">Example 6.5. Sending mesage the async way using Future</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="d0e1054">  1 public void sendWholeAsyncMessage(String message, Session session){
+  2     Future&lt;Void&gt; future = session.getAsyncRemote().sendText(message);
+  3 }</fo:block></fo:block></fo:block>
+            </fo:block></fo:block></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>Injection Support</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>Injection Support</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="injection"><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 7. Injection Support</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">
+        As required in Java API for WebSocket, Tyrus supports full field, method and constructor injection using <fo:inline font-family="monospace">javax.inject.Inject</fo:inline>
+        into all websocket endpoint classes as well as the use of the interceptors on these classes.
+        Except this,  Tyrus also supports some of the EJB annotations. Currently <fo:inline font-family="monospace">javax.ejb.Stateful</fo:inline>,
+        <fo:inline font-family="monospace">javax.ejb.Singleton</fo:inline> and <fo:inline font-family="monospace">javax.ejb.Stateless</fo:inline> annotations are supported.
+    </fo:block><fo:block id="d0e1075"><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"><fo:inline font-family="monospace">javax.inject.Inject</fo:inline> sample</fo:marker><fo:block font-size="20.735999999999997pt">7.1. <fo:inline font-family="monospace">javax.inject.Inject</fo:inline> sample</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">
+            The following example presents how to inject a bean to the <fo:inline font-family="monospace">javax.websocket.server.ServerEndpoint</fo:inline>
+            annotated class using <fo:inline font-family="monospace">javax.inject.Inject</fo:inline>. Class <fo:inline font-family="monospace">InjectedSimpleBean</fo:inline> gets injected
+            into class <fo:inline font-family="monospace">SimpleEndpoint</fo:inline> on line 15.
+            <fo:block><fo:block 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="cdi-simple-bean"><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">Example 7.1. Injecting bean into <fo:inline font-family="monospace">javax.websocket.server.ServerEndpoint</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="d0e1099">  1 public class InjectedSimpleBean {
+  2 
+  3     private static final String TEXT = " (from your server)";
+  4 
+  5     public String getText() {
+  6         return TEXT;
+  7     }
+  8 }
+  9 
+ 10 @ServerEndpoint(value = "/simple")
+ 11 public class SimpleEndpoint {
+ 12 
+ 13     private boolean postConstructCalled = false;
+ 14 
+ 15     @Inject
+ 16     InjectedSimpleBean bean;
+ 17 
+ 18     @OnMessage
+ 19     public String echo(String message) {
+ 20         return String.format("%s%s", message, bean.getText());
+ 21     }
+ 22 }</fo:block></fo:block></fo:block>
+        </fo:block></fo:block><fo:block id="d0e1102"><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">EJB sample</fo:marker><fo:block font-size="20.735999999999997pt">7.2. EJB sample</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">
+            The following sample presents how to turn <fo:inline font-family="monospace">javax.websocket.server.ServerEndpoint</fo:inline> annotated class
+            into <fo:inline font-family="monospace">javax.ejb.Singleton</fo:inline> and use interceptor on it.
+            <fo:block><fo:block 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="cdi-singleton-bean"><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">Example 7.2. Echo sample server endpoint.</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="d0e1116">  1 @ServerEndpoint(value = "/singleton")
+  2 @Singleton
+  3 @Interceptors(LoggingInterceptor.class)
+  4 public class SingletonEndpoint {
+  5 
+  6     int counter = 0;
+  7     public static boolean interceptorCalled = false;
+  8 
+  9     @OnMessage
+ 10     public String echo(String message) {
+ 11         return interceptorCalled ? String.format("%s%s", message, counter++) : "LoggingInterceptor not called.";
+ 12     }
+ 13 }
+ 14 
+ 15 public class LoggingInterceptor {
+ 16 
+ 17     @AroundInvoke
+ 18     public Object manageTransaction(InvocationContext ctx) throws Exception {
+ 19         SingletonEndpoint.interceptorCalled = true;
+ 20         Logger.getLogger(getClass().getName()).info("LOGGING.");
+ 21         return ctx.proceed();
+ 22     }
+ 23 }
+ 24 </fo:block></fo:block></fo:block>
+        </fo:block></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>Tyrus proprietary configuration</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>Tyrus proprietary configuration</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="tyrus-proprietary-config"><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 8. Tyrus proprietary configuration</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">Following settings do have influence on Tyrus behaviour and are <fo:inline font-style="italic">NOT</fo:inline> part of WebSocket
+    specification. If you are using following configurable options, your application might not be easily transferable to
+    other WebSocket API implementation.</fo:block><fo:block id="d0e1128"><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/1.20/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/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/1.20/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
+            allowing more control of host verification during the SSL handshake. For more details
+            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/1.20/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/1.20/org/glassfish/tyrus/client/ClientManager.html)">https://tyrus.java.net/apidocs/1.20/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="d0e1145">  1 final ClientManager client = ClientManager.createClient();
+  2 
+  3 System.getProperties().put("javax.net.debug", "all");
+  4 System.getProperties().put(SSLContextConfigurator.KEY_STORE_FILE, "...");
+  5 System.getProperties().put(SSLContextConfigurator.TRUST_STORE_FILE, "...");
+  6 System.getProperties().put(SSLContextConfigurator.KEY_STORE_PASSWORD, "...");
+  7 System.getProperties().put(SSLContextConfigurator.TRUST_STORE_PASSWORD, "...");
+  8 final SSLContextConfigurator defaultConfig = new SSLContextConfigurator();
+  9 
+ 10 defaultConfig.retrieve(System.getProperties());
+ 11     // or setup SSLContextConfigurator using its API.
+ 12 
+ 13 SSLEngineConfigurator sslEngineConfigurator =
+ 14     new SSLEngineConfigurator(defaultConfig, true, false, false);
+ 15 client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR,
+ 16     sslEngineConfigurator);
+ 17 client.connectToServer(... , ClientEndpointConfig.Builder.create().build(),
+ 18     new URI("wss://localhost:8181/sample-echo/echo"));
+ 19 }</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            If there seems to be a problem with Tyrus SSL connection, it is strongly recommended to use -Djavax.net.debug=all
+            system property as it provides invaluable information for troubleshooting.
+        </fo:block><fo:block id="d0e1149"><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">Host verification</fo:marker><fo:block font-size="17.28pt">8.1.1. Host verification</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">
+                One of the key steps when establishing SSL connections is verifying that the host on the certificate
+                sent by the server matches the host Tyrus client tries to connect to and thus preventing a possibility of
+                a man-in-the-middle attack. Host verification is turned on by default in Tyrus, which means that Tyrus
+                will automatically check that the host provided in the URI in
+                <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="d0e1154">  1 client.connectToServer(... , new URI("wss://target-server:8181/application/endpoint"));
+  2                 </fo:block> matches exactly the host the certificate has been issued for. Exact match is
+                the key word in the previous sentence as host can be either hostname or IP address and those two cannot be used
+                interchangeably. For instance when a certificate has been issued for "localhost", establishing an SSL connection
+                to "wss://127.0.0.1:8181/application/endpoint" will fail as the host does not match the one in the certificate.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                The default host verification can be too restrictive for some cases and therefore Tyrus provides users
+                with means to to either disable the host verification (highly unrecommended in production) or to implement
+                their own host verifier. Providing custom host verifier will disable the default one. It is also important
+                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/1.20/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/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/1.20/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="d0e1165">  1 SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(new SslContextConfigurator());
+  2 sslEngineConfigurator.setHostVerificationEnabled(false)
+  3 client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
+  4                 </fo:block>
+                The following sample shows how to register a custom host verifier:
+                <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="d0e1168">  1 SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(new SslContextConfigurator());
+  2 sslEngineConfigurator.setHostnameVerifier(new HostnameVerifier() {
+  3     @Override
+  4     public boolean verify(String host, SSLSession sslSession) {
+  5         Certificate certificate = sslSession.getPeerCertificates()[0];
+  6         // validate the host in the certificate
+  7     }
+  8 });
+  9 client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
+ 10                 </fo:block>
+            </fo:block></fo:block></fo:block><fo:block id="d0e1171"><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">Asynchronous connectToServer methods</fo:marker><fo:block font-size="20.735999999999997pt">8.2. Asynchronous connectToServer methods</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">WebSocketContainer.connectToServer(...) methods are by definition blocking - declared exceptions needs to
+        be thrown after connection attempt is made and it returns Session instance, which needs to be ready for sending
+        messages and invoking other methods, which require already established connection.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Existing connectToServer methods are fine for lots of uses, but it might cause issue when you are designing
+        application with highly responsible user interface. Tyrus introduces asynchronous variants to each connectToServer
+        method (prefixed with "async"), which returns Future&lt;Session&gt;. These methods do only simple check for provided
+        URL and the rest is executed in separate thread. All exceptions thrown during this phase are reported as cause
+        of ExecutionException thrown when calling Future&lt;Session&gt;.get().</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Asynchronous connect methods are declared on Tyrus implementation of WebSocketContainer called ClientManager.</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="d0e1180">  1 ClientManager client = ClientManager.createClient();
+  2   final Future&lt;Session&gt; future = client.asyncConnectToServer(ClientEndpoint.class, URI.create("..."));
+  3   try {
+  4     future.get();
+  5   } catch (...) {
+  6 }</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ClientManager contains async alternative to each connectToServer method.</fo:block></fo:block><fo:block id="d0e1184"><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">Optimized broadcast</fo:marker><fo:block font-size="20.735999999999997pt">8.3. Optimized broadcast</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">One of the typical usecases we've seen so far for WebSocket server-side endpoints is broadcasting messages
+        to all connected clients, something like:</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="d0e1189">  1 @OnMessage
+  2 public void onMessage(Session session, String message) throws IOException {
+  3   for (Session s : session.getOpenSessions()) {
+  4     s.getBasicRemote().sendText(message);
+  5   }
+  6 }</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Executing this code might cause serious load increase on your application server. Tyrus provides optimized
+        broadcast implementation, which takes advantage of the fact, that we are sending exactly same message to all clients,
+        so dataframe can be created and serialized only once. Furthermore, Tyrus can iterate over set of opened connections
+        faster than Session.getOpenSession().</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="d0e1193">  1 @OnMessage
+  2 public void onMessage(Session session, String message) {
+  3   ((TyrusSession) session).broadcast(message);
+  4 }</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Unfortunately, WebSocket API forbids anything else than Session in @OnMessage annotated method parameter,
+        so you cannot use TyrusSession there directly and you might need to perform instanceof check.</fo:block></fo:block><fo:block id="d0e1197"><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">Incoming buffer size</fo:marker><fo:block font-size="20.735999999999997pt">8.4. Incoming buffer size</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">Sevlet container buffers incoming WebSocket frames and there must be a size limit to precede OutOfMemory
+        Exception and potentially DDoS attacks.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Configuration property is named <fo:inline font-family="monospace">"org.glassfish.tyrus.servlet.incoming-buffer-size"</fo:inline> and you can
+        set it in web.xml (this particular snipped sets the buffer size to 17000000 bytes (~16M payload):</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="d0e1207">  1 &lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  2   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+  3 
+  4   &lt;context-param&gt;
+  5     &lt;param-name&gt;org.glassfish.tyrus.servlet.incoming-buffer-size&lt;/param-name&gt;
+  6     &lt;param-value&gt;17000000&lt;/param-value&gt;
+  7   &lt;/context-param&gt;
+  8 &lt;/web-app&gt;</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Default value is 4194315, which correspond to 4M plus few bytes to frame headers, so you should be able to
+        receive up to 4M long message without the need to care about this property.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Same issue is present on client side. There you can set this property via ClientManager:</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="d0e1213">  1 ClientManager client = ClientManager.createClient();
+  2 client.getProperties().put("org.glassfish.tyrus.incomingBufferSize", 6000000); // sets the incoming buffer size to 6000000 bytes.
+  3 client.connectToServer( ... )</fo:block></fo:block><fo:block id="d0e1215"><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">Shared client container</fo:marker><fo:block font-size="20.735999999999997pt">8.5. Shared client container</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">By default, WebSocket client implementation in Tyrus re-creates client runtime whenever WebSocketContainer#connectToServer
+            is invoked. This approach gives us some perks like out-of-the-box isolation and relatively low thread count
+            (currently we have 1 selector thread and 2 worker threads). Also it gives you the ability to stop the client
+            runtime – one Session instance is tied to exactly one client runtime, so we can stop it when Session is closed.
+            This seems as a good solution for most of WebSocket client use cases – you usually use java client from
+            application which uses it for communicating with server side and you typically don’t need more than 10 instances
+            (my personal estimate is that more than 90% applications won’t use more than 1 connection). There are several
+            reasons for it – of it is just a client, it needs to preserve server resources – one WebSocket connection means
+            one TCP connection and we don’t really want clients to consume more than needed. Previous statement may be
+            invalidated by WebSocket multiplexing extension, but for now, it is still valid.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">On the other hand, WebSocket client implementations in some other containers took another (also correct)
+            approach – they share client runtime for creating all client connections. That means they might not have this
+            strict one session one runtime policy, they cannot really give user way how he to control system resources,
+            but surely it has another advantage – it can handle much more opened connections. Thread pools are share among
+            client sessions which may or may not have some unforeseen consequences, but if its implemented correctly, it
+            should outperform Tyrus solution mentioned in previous paragraph in some use cases, like the one mentioned
+            in <fo:basic-link external-destination="url(https://java.net/jira/browse/TYRUS-275)"><fo:inline>TYRUS-275</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(https://java.net/jira/browse/TYRUS-275)">https://java.net/jira/browse/TYRUS-275</fo:basic-link>]</fo:inline> - performance tests. Reporter
+            created simple program which used WebSocket API to create clients and connect to remote endpoint and he measured
+            how many clients can he create (or in other words: how many parallel client connections can be created; I guess
+            that original test case is to measure possible number of concurrent clients on server side, but that does not
+            really matter for this post). Tyrus implementation loose compared to some other and it was exactly because it
+            did not have shared client runtime capability.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">How can you use this feature?</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="d0e1227">  1 ClientManager client = ClientManager.createClient();
+  2 
+  3 client.getProperties().put(ClientProperties.SHARED_CONTAINER, true);</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You might also want to specify container idle timeout:</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="d0e1231">  1 client.getProperties().put(ClientProperties.SHARED_CONTAINER_IDLE_TIMEOUT, 5);</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Last but not least, you might want to specify thread pool sizes used by shared container (please use this feature only when you do know what are you doing. Grizzly by default does not limit max number of used threads,
+            so if you do that, please make sure thread pool size fits your purpose). Even though the default unlimited thread pool size is sufficient for the vast majority of client usages, it is also important ot note that
+            if the max. thread pool size is not specified and the clients which share the thread pool receive a large number of messages at the same moment, a new thread can be created for each of the received messages
+            which might demand large amount of system resources and might even lead to a program failure if the required resources are not available. Therefore for particularly busy clients setting the max thread pool
+            size can be only recommended. The following example shows how to set the maximal thread poll size.</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="d0e1235">  1 client.getProperties().put(GrizzlyClientProperties.SELECTOR_THREAD_POOL_CONFIG, ThreadPoolConfig.defaultConfig().setMaxPoolSize(3));
+  2 client.getProperties().put(GrizzlyClientProperties.WORKER_THREAD_POOL_CONFIG, ThreadPoolConfig.defaultConfig().setMaxPoolSize(10));</fo:block><fo:block id="d0e1237"><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">Custom masking key generator</fo:marker><fo:block font-size="17.28pt">8.5.1. Custom masking key generator</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">
+                As a security measure, all frames originating on a websocket client have to be masked with a random 4B value, which must be generated for each frame.
+                Moreover to fully comply with the security requirements of RFC 6455, a masking key of a frame must not be predictable from masking keys of previous frames
+                and therefore Tyrus uses <fo:inline font-family="monospace">java.security.SecureRandom</fo:inline> as a default masking key generator. While this is perfectly OK for most Tyrus client use cases,
+                usage of <fo:inline font-family="monospace">java.security.SecureRandom</fo:inline> might prove to be a performance issue, when the client is used for instance for highly parallel stress testing,
+                as it uses a synchronized singleton as a random entropy provider in its internals.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                To overcome the limitations mentioned above, Tyrus allows replacing the default <fo:inline font-family="monospace">java.security.SecureRandom</fo:inline> with more scalable masking key generator.
+                Please, be aware that there might be security implications if you decide not to use a cryptographically secure random number generator
+                in production like the one in the following sample. Moreover the supplied random number generator should be also thread safe.
+                The following example shows, how a custom masking key generator can be configured:
+                <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="d0e1253">  1 ClientManager client = ClientManager.createClient();
+  2 client.getProperties().put(ClientProperties.MASKING_KEY_GENERATOR, new MaskingKeyGenerator() {
+  3 
+  4     private final Random random = new Random();
+  5 
+  6     @Override
+  7     public int nextInt() {
+  8         return random.nextInt();
+  9     }
+ 10 });</fo:block>
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                It is also important to note that the scalability issue connected to the default masking key generator is not limited to the shared container client configuration,
+                but it is discussed in this section as it is assumed that shared container is used for highly parallel clients handling a lot of traffic, where the method
+                of masking key generation starts to matter.
+            </fo:block></fo:block></fo:block><fo:block id="d0e1258"><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">WebSocket Extensions</fo:marker><fo:block font-size="20.735999999999997pt">8.6. WebSocket Extensions</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">Please note that Extensions support is considered to be experimental and any API can be changed anytime. Also,
+        you should ask yourself at least twice whether you don't want to achieve your goal by other means - WebSocket
+        Extension is very powerful and can easily break your application when not used with care or enough expertise.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">WebSocket frame used in ExtendedExtension:</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="d0e1265">  1 public class Frame {
+  2 
+  3     public boolean isFin() { .. }
+  4     public boolean isRsv1() { .. }
+  5     public boolean isRsv2() { .. }
+  6     public boolean isRsv3() { .. }
+  7     public boolean isMask() { .. }
+  8     public byte getOpcode() { .. }
+  9     public long getPayloadLength() { .. }
+ 10     public int getMaskingKey() { .. }
+ 11     public byte[] getPayloadData() { .. }
+ 12     public boolean isControlFrame() { .. }
+ 13 
+ 14     public static Builder builder() { .. }
+ 15     public static Builder builder(Frame frame) { .. }
+ 16 
+ 17     public final static class Builder {
+ 18 
+ 19     public Builder() { .. }
+ 20     public Builder(Frame frame) { .. }
+ 21     public Frame build() { .. }
+ 22     public Builder fin(boolean fin) { .. }
+ 23     public Builder rsv1(boolean rsv1) { .. }
+ 24     public Builder rsv2(boolean rsv2) { .. }
+ 25     public Builder rsv3(boolean rsv3) { .. }
+ 26     public Builder mask(boolean mask) { .. }
+ 27     public Builder opcode(byte opcode) { .. }
+ 28     public Builder payloadLength(long payloadLength) { .. }
+ 29     public Builder maskingKey(int maskingKey) { .. }
+ 30     public Builder payloadData(byte[] payloadData) { .. }
+ 31 }</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Frame is immutable, so if you want to create new one, you need to create new builder, modify what you want
+        and build it:</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="d0e1269">  1 Frame newFrame = Frame.builder(originalFrame).rsv1(true).build();</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note that there is only one convenience method: isControlFrame. Other information about frame type etc needs
+            to be evaluated directly from opcode, simply because there might not be enough information to get the correct
+            outcome or the information itself would not be very useful. For example: opcode 0×00 means continuation frame,
+            but you don’t have any chance to get the information about actual type (text or binary) without intercepting
+            data from previous frames. Consider Frame class as raw representation as possible. isControlFrame() can be also
+            gathered from opcode, but it is at least always deterministic and it will be used by most of extension
+            implementations. It is not usual to modify control frames as it might end with half closed connections or
+            unanswered ping messages.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ExtendedExtension representation needs to be able to handle extension parameter negotiation and actual processing
+        of incoming and outgoing frames. It also should be compatible with existing javax.websocket.Extension class, since we
+        want to re-use existing registration API and be able to return new extension instance included in response
+        from List&lt;Extension&gt; Session.getNegotiatedExtensions() call. Consider following:</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="d0e1275">  1 public interface ExtendedExtension extends Extension {
+  2 
+  3     Frame processIncoming(ExtensionContext context, Frame frame);
+  4     Frame processOutgoing(ExtensionContext context, Frame frame);
+  5 
+  6     List onExtensionNegotiation(ExtensionContext context, List requestedParameters);
+  7     void onHandshakeResponse(ExtensionContext context, List responseParameters);
+  8 
+  9     void destroy(ExtensionContext context);
+ 10 
+ 11     interface ExtensionContext {
+ 12 
+ 13         Map&lt;String, Object&gt; getProperties();
+ 14     }
+ 15 }</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ExtendedExtension is capable of processing frames and influence parameter values during the handshake.
+            Extension is used on both client and server side and since the negotiation is only place where this fact
+            applies, we needed to somehow differentiate these sides. On server side, only onExtensionNegotiation(..)
+            method is invoked and on client side onHandshakeResponse(..). Server side method is a must, client side could
+            be somehow solved by implementing ClientEndpointConfig.Configurator#afterResponse(..) or calling
+            Session.getNegotiatedExtenions(), but it won’t be as easy to get this information back to extension instance
+            and even if it was, it won’t be very elegant. Also, you might suggest replacing processIncoming and
+            processOutgoing methods by just oneprocess(Frame) method. That is also possible, but then you might have to
+            assume current direction from frame instance or somehow from ExtensionContext, which is generally not a bad
+            idea, but it resulted it slightly less readable code.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ExtensionContext and related lifecycle method is there because original javax.websocket.Extension is singleton
+        and ExtendedExtension must obey this fact. But it does not meet some requirements we stated previously, like per
+        connection parameter negotiation and of course processing itself will most likely have some connection state.
+        Lifecycle of ExtensionContext is defined as follows: ExtensionContext instance is created right before onExtensionNegotiation
+        (server side) or onHandshakeResponse (client side) and destroyed after destroy method invocation. Obviously, processIncoming
+        or processOutgoing cannot be called before ExtensionContext is created or after is destroyed. You can think of handshake
+        related methods as @OnOpenand destroy as @OnClose.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For those more familiar with WebSocket protocol: process*(ExtensionContext, Frame) is always invoked with unmasked
+        frame, you don’t need to care about it. On the other side, payload is as it was received from the wire, before any
+            validation (UTF-8 check for text messages). This fact is particularly important when you are modifying text
+            message content, you need to make sure it is properly encoded in relation to other messages, because encoding/decoding
+            process is stateful – remainder after UTF-8 coding is used as input to coding process for next message. If you
+            want just test this feature and save yourself some headaches, don’t modify text message content or try binary
+            messages instead.</fo:block><fo:block id="d0e1283"><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">ExtendedExtension sample</fo:marker><fo:block font-size="17.28pt">8.6.1. ExtendedExtension sample</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">Let’s say we want to create extension which will encrypt and decrypt first byte of every binary message. Assume we have a key (one byte) and our symmetrical cipher will be XOR. (Just for simplicity (a XOR key XOR key) = a, so encrypt() and decrypt() functions are the same).</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="d0e1288">  1 public class CryptoExtension implements ExtendedExtension {
+  2 
+  3     @Override
+  4     public Frame processIncoming(ExtensionContext context, Frame frame) {
+  5          return lameCrypt(context, frame);
+  6     }
+  7 
+  8     @Override
+  9     public Frame processOutgoing(ExtensionContext context, Frame frame) {
+ 10         return lameCrypt(context, frame);
+ 11     }
+ 12 
+ 13     private Frame lameCrypt(ExtensionContext context, Frame frame) {
+ 14         if(!frame.isControlFrame() &amp;&amp; (frame.getOpcode() == 0x02)) {
+ 15             final byte[] payloadData = frame.getPayloadData();
+ 16             payloadData[0] ^= (Byte)(context.getProperties().get("key"));
+ 17 
+ 18             return Frame.builder(frame).payloadData(payloadData).build();
+ 19         } else {
+ 20             return frame;
+ 21         }
+ 22     }
+ 23 
+ 24     @Override
+ 25     public List onExtensionNegotiation(ExtensionContext context,
+ 26                                        List requestedParameters) {
+ 27         init(context);
+ 28         // no params.
+ 29         return null;
+ 30     }
+ 31 
+ 32     @Override
+ 33     public void onHandshakeResponse(ExtensionContext context,
+ 34     List responseParameters) {
+ 35         init(context);
+ 36     }
+ 37 
+ 38     private void init(ExtensionContext context) {
+ 39         context.getProperties().put("key", (byte)0x55);
+ 40     }
+ 41 
+ 42     @Override
+ 43     public void destroy(ExtensionContext context) {
+ 44         context.getProperties().clear();
+ 45     }
+ 46 
+ 47     @Override
+ 48     public String getName() {
+ 49         return "lame-crypto-extension";
+ 50     }
+ 51 
+ 52     @Override
+ 53     public List getParameters() {
+ 54         // no params.
+ 55         return null;
+ 56     }
+ 57 }</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You can see that ExtendedExtension is slightly more complicated that original Extension so the implementation
+            has to be also not as straightforward.. on the other hand, it does something. Sample code above shows possible
+            simplification mentioned earlier (one process method will be enough), but please take this as just sample
+            implementation. Real world case is usually more complicated.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Now when we have our CryptoExtension implemented, we want to use it. There is nothing new compared to standard
+            WebSocket Java API, feel free to skip this part if you are already familiar with it. Only programmatic version
+            will be demonstrated. It is possible to do it for annotated version as well, but it is little bit more complicated
+            on the server side and I want to keep the code as compact as possible.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Client registration</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="d0e1296">  1 ArrayList extensions = new ArrayList();
+  2 extensions.add(new CryptoExtension());
+  3 
+  4 final ClientEndpointConfig clientConfiguration =
+  5     ClientEndpointConfig.Builder.create()
+  6     .extensions(extensions).build();
+  7 
+  8 WebSocketContainer client = ContainerProvider.getWebSocketContainer();
+  9 final Session session = client.connectToServer(new Endpoint() {
+ 10     @Override
+ 11     public void onOpen(Session session, EndpointConfig config) {
+ 12         // ...
+ 13     }
+ 14 }, clientConfiguration, URI.create(/* ... */));</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Server registration:</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="d0e1300">  1 public class CryptoExtensionApplicationConfig implements ServerApplicationConfig {
+  2 
+  3     @Override
+  4     public Set getEndpointConfigs(Set&lt;Class&lt;? extends Endpoint&gt;&gt; endpointClasses) {
+  5         Set endpointConfigs = new HashSet();
+  6         endpointConfigs.add(
+  7             ServerEndpointConfig.Builder.create(EchoEndpoint.class, "/echo")
+  8             .extensions(Arrays.asList(new CryptoExtension())).build()
+  9         );
+ 10         return endpointConfigs;
+ 11     }
+ 12 
+ 13     @Override
+ 14     public Set&lt;Class&lt;?&gt;&gt; getAnnotatedEndpointClasses(Set&lt;Class&lt;?&gt;&gt; scanned) {
+ 15         // all scanned endpoints will be used.
+ 16         return scanned;
+ 17     }
+ 18 }
+ 19 
+ 20 public class EchoEndpoint extends Endpoint {
+ 21     @Override
+ 22     public void onOpen(Session session, EndpointConfig config) {
+ 23         // ...
+ 24     }
+ 25 }</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">CryptoExtensionApplicationConfig will be found by servlets scanning mechanism and automatically used for
+                application configuration, no need to add anything (or even have) web.xml.</fo:block></fo:block><fo:block id="d0e1304"><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">Per Message Deflate Extension</fo:marker><fo:block font-size="17.28pt">8.6.2. Per Message Deflate Extension</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">The original goal of whole extension support was to implement Permessage extension as defined in
+                draft-ietf-hybi-permessage-compression-15 and we were able to achieve that goal. Well, not completely, current
+                implementation ignores parameters. But it seems like it does not matter much, it was tested with Chrome and it
+                works fine. Also it passes newest version of Autobahn test suite, which includes tests for this extension.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">see PerMessageDeflateExtension.java (compatible with draft-ietf-hybi-permessage-compression-15, autobahn test suite) and
+                XWebKitDeflateExtension.java (compatible with Chrome and Firefox – same as previous, just different extension name)
+                </fo:block></fo:block></fo:block><fo:block id="d0e1311"><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 reconnect</fo:marker><fo:block font-size="20.735999999999997pt">8.7. Client reconnect</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">If you need semi-persistent client connection, you can always implement some reconnect logic by yourself,
+        but Tyrus Client offers useful feature which should be much easier to use. See short sample code:</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="d0e1316">  1 ClientManager client = ClientManager.createClient();
+  2 ClientManager.ReconnectHandler reconnectHandler = new ClientManager.ReconnectHandler() {
+  3 
+  4   private int counter = 0;
+  5 
+  6   @Override
+  7   public boolean onDisconnect(CloseReason closeReason) {
+  8     counter++;
+  9     if (counter &lt;= 3) {
+ 10       System.out.println("### Reconnecting... (reconnect count: " + counter + ")");
+ 11       return true;
+ 12     } else {
+ 13       return false;
+ 14     }
+ 15   }
+ 16 
+ 17   @Override
+ 18   public boolean onConnectFailure(Exception exception) {
+ 19     counter++;
+ 20     if (counter &lt;= 3) {
+ 21       System.out.println("### Reconnecting... (reconnect count: " + counter + ") " + exception.getMessage());
+ 22 
+ 23       // Thread.sleep(...) or something other "sleep-like" expression can be put here - you might want
+ 24       // to do it here to avoid potential DDoS when you don't limit number of reconnects.
+ 25       return true;
+ 26     } else {
+ 27       return false;
+ 28     }
+ 29   }
+ 30 
+ 31   @Override
+ 32   public long getDelay() {
+ 33     return 1;
+ 34   }
+ 35 };
+ 36 
+ 37 client.getProperties().put(ClientProperties.RECONNECT_HANDLER, reconnectHandler);
+ 38 
+ 39 client.connectToServer(...)</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ReconnectHandler contains three methods, onDisconnect, onConnectFailure and getDelay. First will be executed
+        whenever @OnClose annotated method (or Endpoint.onClose(..)) is executed on client side - this should happen when
+        established connection is lost for any reason. You can find the reason in methods parameter. Other one, called
+        onConnectFailure is invoked when client fails to connect to remote endpoint, for example due to temporary network
+        issue or current high server load. Method getDelay is called after any of previous methods returns <fo:inline font-family="monospace">true</fo:inline>
+        and the returned value will be used to determine delay before next connection attempt. Default value is 5 seconds.</fo:block></fo:block><fo:block id="d0e1323"><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 behind proxy</fo:marker><fo:block font-size="20.735999999999997pt">8.8. Client behind proxy</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">
+            Tyrus client supports traversing proxies, but it is Tyrus specific feature and its configuration is shown
+            in the following code sample:
+            <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="d0e1328">  1 
+  2 ClientManager client = ClientManager.createClient();
+  3 client.getProperties().put(ClientProperties.PROXY_URI, "http://my.proxy.com:80");
+  4             </fo:block>
+            Value is expected to be proxy URI. Protocol part is currently ignored, but must be present.
+        </fo:block></fo:block><fo:block id="d0e1331"><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">JDK 7 client</fo:marker><fo:block font-size="20.735999999999997pt">8.9. JDK 7 client</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">
+            As has been said in previous chapters both Tyrus client and server were implemented on top of Grizzly NIO framework.
+            This still remains true, but an alternative Tyrus Websocket client implementation based on Java 7 Asynchronous Channel
+            API has been available since version 1.6. There are two options how to switch between client implementations.
+            If you do not mind using Tyrus specific API, the most straightforward way is to use:
+            <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="d0e1336">  1 
+  2 final ClientManager client = ClientManager.createClient(JdkClientContainer.class.getName());
+  3             </fo:block>
+            You just have to make sure that the dependency on JDK client is included in your project:
+            <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="d0e1339">
+&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;1.20&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.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            There is also an option how to use JDK client with the standard Websocket API.
+            <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="d0e1344">  1 
+  2 final WebSocketContainer client = ContainerProvider.getWebSocketContainer();
+  3             </fo:block>
+            The code listed above will scan class path for Websocket client implementations. A slight problem with this
+            approach is that if there is more than one client on the classpath, the first one discovered will be used.
+            Therefore if you intend to use JDK client with the standard API, you have to make sure that there is not
+            a Grizzly client on the classpath as it might be used instead.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            The main reason why JDK client has been implemented is that it does not have any extra dependencies
+            except JDK 7 and of course some other Tyrus modules, which makes it considerable more lightweight compared
+            to Tyrus Grizzly client, which requires 1.4 MB of dependencies.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            It is also important to note that the JDK client has been implemented in a way similar to Grizzly client
+            shared container option, which means that there is one thread pool shared among all clients.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            Proxy configuration for JDK client is the same as for Grizzly client shown above.
+        </fo:block><fo:block id="d0e1353"><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">SSL configuration</fo:marker><fo:block font-size="17.28pt">8.9.1. 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">
+                Alike in case of Grizzly client, accessing "wss" URLs will cause Tyrus client to pick up whatever keystore
+                and trust store is actually set for the current JVM instance. However, specifying SSL parameters
+                to be used with JDK client instance is little different from Grizzly client, because Grizzly client supports
+                both
+                <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>
+                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/1.20/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/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html</fo:basic-link>]</fo:inline>
+                and
+                <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/1.20/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/1.20/org/glassfish/tyrus/client/SslContextConfigurator.html)">https://tyrus.java.net/apidocs/1.20/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="d0e1370">  1 
+  2 SslContextConfigurator sslContextConfigurator = new SslContextConfigurator();
+  3 sslContextConfigurator.setTrustStoreFile("...");
+  4 sslContextConfigurator.setTrustStorePassword("...");
+  5 sslContextConfigurator.setTrustStoreType("...");
+  6 sslContextConfigurator.setKeyStoreFile("...");
+  7 sslContextConfigurator.setKeyStorePassword("...");
+  8 sslContextConfigurator.setKeyStoreType("...");
+  9 SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(sslContextConfigurator, true, false, false);
+ 10 
+ 11 client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
+ 12                 </fo:block>
+            </fo:block></fo:block></fo:block><fo:block id="d0e1373"><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">Tracing support</fo:marker><fo:block font-size="20.735999999999997pt">8.10. Tracing support</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">
+            Apart from logging, Tyrus supports another useful means for debugging and diagnosing a deployed application which will
+            be referred to as tracing on the following lines. Tracing consists of including vital information about handshake
+            handling into a handshake response. The provided information includes among other things an insight into how Tyrus matches
+            handshake request URI against the URI of the deployed endpoints and how the best matching endpoint is selected.
+            The tracing information is included in a handshake response as a content of HTTP headers with
+            <fo:inline font-family="monospace">X-Tyrus-Tracing-</fo:inline> as the header names prefix.
+            All the tracing information will also be available in the server log if the appropriate logging level is set.
+            If it is still unclear, how Tyrus tracing works, please refer to the subsection with title Tracing Examples.
+        </fo:block><fo:block id="d0e1381"><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">Configuration</fo:marker><fo:block font-size="17.28pt">8.10.1. 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">
+                Tracing support is disabled by default. You can enable it either "globally" for all application handshake requests
+                or selectively per handshake request. The tracing support activation is controlled by setting the
+                <fo:inline font-family="monospace">org.glassfish.tyrus.server.tracingType</fo:inline> configuration property. The property value is expected to be one of the following:
+
+                <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1389"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1390"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>OFF - tracing support is disabled (default value).</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1393"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>ON_DEMAND - tracing support is in a stand-by mode; it is enabled selectively per handshake, via a special
+                            X-Tyrus-Tracing-Accept HTTP header in a handshake request.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1396"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>ALL - tracing support is enabled for all handshake requests.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+
+                The level of detail of the information provided by Tyrus tracing facility - the tracing threshold - can be customized.
+                The tracing threshold can be set at the application level via <fo:inline font-family="monospace">org.glassfish.tyrus.server.tracingThreshold</fo:inline>
+                application configuration property in both Glassfish and Grizzly as will be shown in the following samples,
+                or at a request level, via X-Tyrus-Tracing-Threshold HTTP header in a handshake request. The request-level configuration
+                overrides any application level setting. There are 2 supported levels of detail for Tyrus tracing:
+
+                <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1403"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1404"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>SUMMARY - very basic summary information about handshake processing</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1407"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>TRACE - detailed information about  handshake processing (default threshold value).</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+            </fo:block><fo:block id="d0e1411"><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:block font-size="14.399999999999999pt">8.10.1.1. Global configuration examples</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">
+                        As has been already said, tracing is disabled by default. The following code sample shows, how <fo:inline font-family="monospace">ON_DEMAND</fo:inline> tracing with
+                        level set to <fo:inline font-family="monospace">SUMMARY</fo:inline> can be enabled on Grizzly server:
+                        <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="d0e1422">  1 
+  2                             serverProperties.put(TyrusWebSocketEngine.TRACING_TYPE, ON_DEMAND);
+  3                             serverProperties.put(TyrusWebSocketEngine.TRACING_THRESHOLD, SUMMARY);
+  4                         </fo:block>
+                        Similarly <fo:inline font-family="monospace">ALL</fo:inline> tracing with level set to <fo:inline font-family="monospace">TRACE</fo:inline> (the default) can be enabled on Glassfish server in web.xml:
+                        <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="d0e1431">  1 &lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  2                 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+  3 
+  4     &lt;context-param&gt;
+  5         &lt;param-name&gt;org.glassfish.tyrus.server.tracingType&lt;/param-name&gt;
+  6         &lt;param-value&gt;ALL&lt;/param-value&gt;
+  7     &lt;/context-param&gt;
+  8 &lt;/web-app&gt;</fo:block>
+
+                        It has been also already mentioned that the tracing threshold configured on application level can be overridden per handshake request as
+                        will be shown in the following section.
+                    </fo:block></fo:block><fo:block id="d0e1434"><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:block font-size="14.399999999999999pt">8.10.1.2. Configuring tracing via handshake request headers</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">
+                    Whenever the tracing support is active (ON_DEMAND or ALL) you can customize the tracing behaviour by including one or more of the following request HTTP headers
+                    in the individual handshake requests:
+
+                    <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1439"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1440"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>X-Tyrus-Tracing-Accept - used to enable the tracing support for the particular request. It is applied only when the application-level tracing support is configured to
+                                ON_DEMAND mode. The value of the header is not used by the Tyrus tracing facility and as such it can be any arbitrary (even empty) string.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1443"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>X-Tyrus-Tracing-Threshold - used to override the tracing threshold. Allowed values are: SUMMARY, TRACE.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+                </fo:block></fo:block></fo:block><fo:block id="d0e1447"><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">Tracing Examples</fo:marker><fo:block font-size="17.28pt">8.10.2. Tracing Examples</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">
+                An example of a handshake request to a server in <fo:inline font-family="monospace">ON_DEMAND</fo:inline> tracing mode requesting <fo:inline font-family="monospace">SUMMARY</fo:inline> tracing information:
+                <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="d0e1458">  1 GET /endpoint/b HTTP/1.1
+  2 Connection: Upgrade
+  3 Host: localhost:8025
+  4 Origin: localhost:8025
+  5 Sec-WebSocket-Key: YrFldD8nhRW+6hJ2K/TMqw==
+  6 Sec-WebSocket-Version: 13
+  7 Upgrade: websocket
+  8 X-Tyrus-Tracing-Accept: Whatever
+  9 X-Tyrus-Tracing-Threshold: SUMMARY</fo:block>
+                An example of a possible response to the request above:
+                <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="d0e1461">  1 HTTP/1.1 404 Not found
+  2 x-tyrus-tracing-00 : [0 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/{a}/b
+  3 x-tyrus-tracing-01 : [0 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/{a}/b have different length
+  4 x-tyrus-tracing-02 : [0 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/{a}/{b}
+  5 x-tyrus-tracing-03 : [0 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/{a}/{b} have different length
+  6 x-tyrus-tracing-04 : [0 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/a/b
+  7 x-tyrus-tracing-05 : [1 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/a/b have different length
+  8 x-tyrus-tracing-06 : [1 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/a/a
+  9 x-tyrus-tracing-07 : [1 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/a/a have different length
+ 10 x-tyrus-tracing-08 : [1 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/a
+ 11 x-tyrus-tracing-09 : [1 ms] Segment "a" does not match
+ 12 x-tyrus-tracing-10 : [1 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/a/{b}
+ 13 x-tyrus-tracing-11 : [1 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/a/{b} have different length
+ 14 x-tyrus-tracing-12 : [3 ms] Endpoints matched to the request URI: []</fo:block>
+                The time in the square brackets in the sample above is the time since the handshake request has been received.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                An example of a possible handshake response from a server in <fo:inline font-family="monospace">ALL</fo:inline> tracing mode with tracing threshold set to <fo:inline font-family="monospace">TRACE</fo:inline>:
+                <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="d0e1472">  1 HTTP/1.1 101
+  2 connection: Upgrade
+  3 sec-websocket-accept: C8/QbF4Mx9sX31sihUcnI19yqto=
+  4 upgrade: websocket
+  5 x-tyrus-tracing-00 : [0 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/{a}/b
+  6 x-tyrus-tracing-01 : [0 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/{a}/{b}
+  7 x-tyrus-tracing-02 : [0 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/a/b
+  8 x-tyrus-tracing-03 : [1 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/a/a
+  9 x-tyrus-tracing-04 : [1 ms] Segment "a" does not match
+ 10 x-tyrus-tracing-05 : [1 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/a
+ 11 x-tyrus-tracing-06 : [1 ms] URIs /samples-debug/endpoint/a/b and /samples-debug/endpoint/a have different length
+ 12 x-tyrus-tracing-07 : [1 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/a/{b}
+ 13 x-tyrus-tracing-08 : [3 ms] Choosing better match from /samples-debug/endpoint/{a}/b and /samples-debug/endpoint/a/b
+ 14 x-tyrus-tracing-09 : [3 ms] /samples-debug/endpoint/a/b is an exact match
+ 15 x-tyrus-tracing-10 : [3 ms] Choosing better match from /samples-debug/endpoint/a/{b} and /samples-debug/endpoint/{a}/b
+ 16 x-tyrus-tracing-11 : [3 ms] /samples-debug/endpoint/a/{b} is a  better match, because it has longer exact path
+ 17 x-tyrus-tracing-12 : [3 ms] Choosing better match from /samples-debug/endpoint/a/{b} and /samples-debug/endpoint/{a}/b
+ 18 x-tyrus-tracing-13 : [3 ms] /samples-debug/endpoint/a/{b} is a  better match, because it has longer exact path
+ 19 x-tyrus-tracing-14 : [3 ms] Choosing better match from /samples-debug/endpoint/a/{b} and /samples-debug/endpoint/a/b
+ 20 x-tyrus-tracing-15 : [3 ms] /samples-debug/endpoint/a/b is an exact match
+ 21 x-tyrus-tracing-16 : [3 ms] Choosing better match from /samples-debug/endpoint/{a}/{b} and /samples-debug/endpoint/a/{b}
+ 22 x-tyrus-tracing-17 : [4 ms] /samples-debug/endpoint/a/{b} is a  better match, because it has longer exact path
+ 23 x-tyrus-tracing-18 : [4 ms] Choosing better match from /samples-debug/endpoint/{a}/{b} and /samples-debug/endpoint/{a}/b
+ 24 x-tyrus-tracing-19 : [4 ms] /samples-debug/endpoint/{a}/b is a  better match, because /samples-debug/endpoint/{a}/{b} has more variables
+ 25 x-tyrus-tracing-20 : [4 ms] Endpoints matched to the request URI: [/samples-debug/endpoint/a/b, /samples-debug/endpoint/a/{b}, /samples-debug/endpoint/{a}/b, /samples-debug/endpoint/{a}/{b}]
+ 26 x-tyrus-tracing-21 : [4 ms] Endpoint selected as a match to the handshake URI: /samples-debug/endpoint/a/b </fo:block>
+            </fo:block></fo:block></fo:block><fo:block id="d0e1475"><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 handshake request and response logging</fo:marker><fo:block font-size="20.735999999999997pt">8.11. Client handshake request and response logging</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">
+            Tyrus client offers a possibility, how to enable printing of handshake requests and responses to standard output without having to configure Java logging,
+            which is essential when debugging a misbehaving websocket application. This feature is particularly useful with tracing enabled. The following sample shows,
+            how the handshake logging can be enabled:
+            <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="d0e1480">  1 
+  2                 ClientManager client = ClientManager.createClient();
+  3                 client.getProperties().put(ClientProperties.LOG_HTTP_UPGRADE, true);
+  4             </fo:block>
+        </fo:block></fo:block><fo:block id="d0e1483"><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">JMX Monitoring</fo:marker><fo:block font-size="20.735999999999997pt">8.12. JMX Monitoring</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">
+            Tyrus allows monitoring and accessing some runtime properties and metrics at the server side using JMX (Java management extension technology).
+            The monitoring API has been available since version 1.6 and the following properties are available at runtime
+            through MXBeans. Number of open sessions, maximal number of open session since the start of monitoring and
+            list of deployed endpoint class names and paths are available for each application. Endpoint class name and path
+            the endpoint is registered on, number of open session and maximal number of open sessions are available for each
+            endpoint. Apart from that message as well as error statistics are collected both per application and per individual endpoint.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            The following message statistics are monitored for both sent and received messages:
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1490"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1491"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>messages count</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1494"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>messages count per second</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1497"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>average message size</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1500"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>smallest message size</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1503"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>largest message size</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+            Moreover all of them are collected separately for text, binary and control messages and apart from the statistics being available
+            for the three separate categories, total numbers summing up statistics from the three types of messages are also available.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            As has been already mentioned above, Tyrus also monitors errors on both application and endpoint level.
+            An error is identified by the Throwable class name that has been thrown. Statistics are collected about number of times each
+            Throwable has been thrown, so a list of errors together with a number of times each error occurred is available on both application and endpoint level.
+            The monitored errors correspond to invocation of @OnError method on an annotated endpoint or its equivalent on a programmatic endpoint
+            (The invocation of @OnError method is just an analogy and an error will be monitored even if no @OnError method is provided on the endpoint).
+            Errors that occur in @OnOpen, @OnClose methods and methods handling incoming messages are monitored. Errors that occurred during handshake
+            will not be among the monitored errors.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            The collected metrics as well as the endpoint properties mentioned above are accessible at runtime through Tyrus MXBeans.
+            As has been already mention the information is available on both application and endpoint level with each application
+            or endpoint being represented with four MXBeans. One of those MXBeans contains total message statistics for both sent and received
+            messages as well as any properties specific for applications or endpoints such as endpoint path in the case of an endpoint.
+            The other three MXBeans contain information about sent and received text, binary and control messages.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            When a user connects to a tyrus application MBean server using an JMX client such as JConsole, they will see
+            the following structure:
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1513"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1514"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                        Application 1 - MXBean containing a list of deployed endpoint class names and paths, number of open sessions,
+                        maximal number of open sessions, error and total message statistics for the application.
+                    </fo:block><fo:list-block provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1517"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1518"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                message statistics - a directory containing message statistics MXBeans
+                            </fo:block><fo:list-block provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1521"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1522"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                        text - MXBean containing text message statistics
+                                    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1525"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                        binary - MXBean containing binary message statistics
+                                    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1528"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                        control -  MXBean containing control message statistics
+                                    </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1531"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                endpoints - a directory containing application endpoint MXBeans
+                            </fo:block><fo:list-block provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1534"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1535"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                        Endpoint 1 - MXBean containing Endpoint 1 class name and path, number of open sessions,
+                                        maximal number of open sessions, error and total message statistics for the endpoint.
+                                    </fo:block><fo:list-block provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1538"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1539"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                                text - MXBean containing text message statistics
+                                            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1542"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                                binary - MXBean containing binary message statistics
+                                            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1545"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                                control -  MXBean containing control message statistics
+                                            </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1548"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                                        Endpoint 2
+                                    </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1551"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                        Application 2
+                    </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            In fact the monitoring structure described above was a little bit simplistic, because there is an additional
+            monitoring level available, which causes message metrics being also available per session.
+            The monitoring structure is very similar to the one described above, with a small difference that there are
+            four MXBeans registered for each session, which contain text, binary, control and total message statistics.
+            In order to distinguish the two monitoring levels, they will be referred to as endpoint-level monitoring
+            and session-level monitoring.
+        </fo:block><fo:block id="d0e1557"><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">Configuration</fo:marker><fo:block font-size="17.28pt">8.12.1. 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">
+                As has been already mentioned, monitoring is supported only on the server side and is disabled by default.
+                The following code sample shows, how endpoint-level monitoring can be enabled on Grizzly server:
+                <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="d0e1562">  1 
+  2 serverProperties.put(ApplicationEventListener.APPLICATION_EVENT_LISTENER, new SessionlessApplicationMonitor());
+  3                 </fo:block>
+                Similarly endpoint-level monitoring can be enabled on Grizzly server in the following way:
+                <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="d0e1565">  1 
+  2 serverProperties.put(ApplicationEventListener.APPLICATION_EVENT_LISTENER, new SessionAwareApplicationMonitor());
+  3                 </fo:block>
+                Monitoring can be configured on Glassfish in web.xml and the following code sample shows endpoint-level configuration:
+                <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="d0e1568">  1 &lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  2                     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+  3 
+  4     &lt;context-param&gt;
+  5         &lt;param-name&gt;org.glassfish.tyrus.core.monitoring.ApplicationEventListener&lt;/param-name&gt;
+  6         &lt;param-value&gt;org.glassfish.tyrus.ext.monitoring.jmx.SessionlessApplicationMonitor&lt;/param-value&gt;
+  7     &lt;/context-param&gt;
+  8 &lt;/web-app&gt;
+  9                 </fo:block>
+                Similarly session-level monitoring can be configured on Glassfish in web.xml in the following way:
+                <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="d0e1571">  1 &lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  2                     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+  3 
+  4     &lt;context-param&gt;
+  5         &lt;param-name&gt;org.glassfish.tyrus.core.monitoring.ApplicationEventListener&lt;/param-name&gt;
+  6         &lt;param-value&gt;org.glassfish.tyrus.ext.monitoring.jmx.SessionAwareApplicationMonitor&lt;/param-value&gt;
+  7     &lt;/context-param&gt;
+  8 &lt;/web-app&gt;
+  9                 </fo:block>
+            </fo:block></fo:block></fo:block><fo:block id="d0e1574"><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">Maximal number of open sessions on server-side</fo:marker><fo:block font-size="20.735999999999997pt">8.13. Maximal number of open sessions on server-side</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">
+            Tyrus offers a few ways to limit the number of open sessions, which can be used to save limited resources
+            on a server hosting system. The limits can be configured in several scopes:
+        </fo:block><fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1579"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1580"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>per whole application</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1583"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>per endpoint</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1586"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>per remote address (client IP address)</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            If the number of simultaneously opened sessions exceeds any of these limits, Tyrus will close the session
+            with close code 1013 - Try Again Later.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            Limits mentioned above can be combined together. For example, let's say we have
+            an application with two endpoints. Overall limit per application will be 1000 open sessions and the first
+            one, non-critical endpoint, will be limited to 75 open sessions at maximum. So we know that the second
+            endpoint can handle 925-1000 opened sessions, depends on how many open sessions are connected to
+            the first endpoint (0-75).
+        </fo:block><fo:block id="d0e1593"><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">Maximal number of open sessions per application</fo:marker><fo:block font-size="17.28pt">8.13.1. Maximal number of open sessions per application</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">
+                This configuration property can be used to limit overall number of open sessions per whole application.
+                The main purpose of this configurable limit is to restrict how many resources the application can
+                consume.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                The number of open sessions per whole application can be configured by setting property
+                <fo:inline font-family="monospace">org.glassfish.tyrus.maxSessionsPerApp</fo:inline>. Property can be used as
+                <fo:inline font-family="monospace">&lt;context-param&gt;</fo:inline>
+                in
+                <fo:inline font-family="monospace">web.xml</fo:inline>
+                or as an entry in parameter map in (standalone) Server properties.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                Note that only positive integer is allowed.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This example will set maximal number of open sessions per whole application to 500:</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="d0e1613">
+
+&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+    &lt;context-param&gt;
+        &lt;param-name&gt;org.glassfish.tyrus.maxSessionsPerApp&lt;/param-name&gt;
+        &lt;param-value&gt;500&lt;/param-value&gt;
+    &lt;/context-param&gt;
+&lt;/web-app&gt;
+
+            </fo:block></fo:block><fo:block id="d0e1615"><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">Maximal number of open sessions per remote address</fo:marker><fo:block font-size="17.28pt">8.13.2. Maximal number of open sessions per remote address</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">
+                The number of open sessions per remote address can be configured by setting property
+                <fo:inline font-family="monospace">org.glassfish.tyrus.maxSessionsPerRemoteAddr</fo:inline>. Property can be used as
+                <fo:inline font-family="monospace">&lt;context-param&gt;</fo:inline>
+                in
+                <fo:inline font-family="monospace">web.xml</fo:inline>
+                or as an entry in parameter map in (standalone) Server properties.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:inline font-family="monospace">Remote address</fo:inline>
+                value is obtained from
+                <fo:basic-link external-destination="url(http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getRemoteAddr())"><fo:inline>
+                    ServletRequest#getRemoteAddr()
+                </fo:inline></fo:basic-link><fo:inline hyphenate="false"> [<fo:basic-link external-destination="url(http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getRemoteAddr())">http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getRemoteAddr()</fo:basic-link>]</fo:inline>
+                or its alternative when using Grizzly server implementation.
+                Beware that this method returns always the last node which sending HTTP request, so all clients
+                behind one proxy will be treated as clients from single remote address.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                Note that only positive integer is allowed.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This example will set maximal number of open sessions from unique IP address or last proxy to 5:
+            </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="d0e1641">
+                
+&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+    &lt;context-param&gt;
+        &lt;param-name&gt;org.glassfish.tyrus.maxSessionsPerRemoteAddr&lt;/param-name&gt;
+        &lt;param-value&gt;5&lt;/param-value&gt;
+    &lt;/context-param&gt;
+&lt;/web-app&gt;
+
+            </fo:block></fo:block><fo:block id="d0e1643"><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">Maximal number of open sessions per endpoint</fo:marker><fo:block font-size="17.28pt">8.13.3. Maximal number of open sessions per endpoint</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">
+                Set maximum number of sessions in annotated endpoint:
+                <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="d0e1648">  1 
+  2 import javax.websocket.OnOpen;
+  3 import javax.websocket.Session;
+  4 import javax.websocket.server.ServerEndpoint;
+  5 
+  6 import org.glassfish.tyrus.core.MaxSessions;
+  7 
+  8 /**
+  9  * Annotated endpoint.
+ 10  */
+ 11 @MaxSessions(100)
+ 12 @ServerEndpoint(value = "/limited-sessions-endpoint")
+ 13 public static class LimitedSessionsEndpoint {
+ 14     @OnOpen
+ 15     public void onOpen(Session s) {
+ 16         ...
+ 17     }
+ 18     ...
+ 19 }
+ 20                 </fo:block>
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                Set maximum number of sessions for programmatic endpoint:
+                <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="d0e1653">  1 
+  2 TyrusServerEndpointConfig.Builder.create(LimitedSessionsEndpoint.class,
+  3   "/limited-sessions-endpoint").maxSessions(100).build();
+  4                 </fo:block>
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                Note that only positive integer is allowed.
+            </fo:block></fo:block></fo:block><fo:block id="d0e1658"><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 HTTP Authentication</fo:marker><fo:block font-size="20.735999999999997pt">8.14. Client HTTP Authentication</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">
+            For server endpoints which is protected by HTTP authentication, Tyrus provides a mechanism to authenticate
+            client.
+            When client receives HTTP response status code<fo:inline font-family="monospace">401 - Unauthorized</fo:inline>, then Tyrus extracts required
+            scheme from
+            <fo:inline font-family="monospace">WWW-Authenticate</fo:inline>
+            challenge. Then it chooses an
+            authenticator from a map of registered authenticators and uses configured<fo:inline font-family="monospace">credentials</fo:inline>.
+            If no proper authenticator is found or credentials are missing, then
+            <fo:inline font-family="monospace">AuthenticationException</fo:inline>
+            is thrown before the handshake can be done.
+            There are implementations of the two most used authentication schemes in Tyrus: BASIC and DIGEST, but it is
+            also possible to implement your own authenticator and register it with a configuration builder
+            <fo:inline font-family="monospace">org.glassfish.tyrus.client.auth.AuthConfig.Builder</fo:inline>
+            or even to override default BASIC or DIGEST
+            auth implementations.
+            If no
+            <fo:inline font-family="monospace">org.glassfish.tyrus.client.auth.AuthConfig</fo:inline>
+            client property is set, then default
+            configuration is used. It is constructed as you can see bellow: BASIC and DIGEST internal implementations
+            are
+            enabled by default.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            Please note that Basic Authentication scheme should be used over HTTPS connection only.
+        </fo:block><fo:block id="d0e1683"><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">Credentials</fo:marker><fo:block font-size="17.28pt">8.14.1. Credentials</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">
+                Credentials are required for both implemented authentication schemes in Tyrus. You can pass an instance
+                into ClientManager as a property:
+                <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="d0e1688">  1 
+  2                     
+  3   client.getProperties().put(ClientProperties.CREDENTIALS, new Credentials("ws_user", "password".getBytes(AuthConfig.CHARACTER_SET));
+  4                     
+  5                 </fo:block>
+            </fo:block></fo:block><fo:block id="d0e1691"><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">Auth Configuration</fo:marker><fo:block font-size="17.28pt">8.14.2. Auth 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">
+                <fo:inline font-family="monospace">org.glassfish.tyrus.client.auth.AuthConfig</fo:inline>
+                provides a way to configure of HTTP authentication schemes.
+                Creating an instance of
+                <fo:inline font-family="monospace">org.glassfish.tyrus.client.auth.AuthConfig</fo:inline>
+                is optional.
+                If you don't specify AuthConfig, then default instance will be created like in following code listing
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <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="d0e1704">  1 
+  2                     
+  3   AuthConfig authConfig = AuthConfig.Builder.create().build();
+  4   ClientManager client = ClientManager.createClient();
+  5   client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
+  6                     
+  7                 </fo:block>
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                If authentication is required after an initial upgrade request, Tyrus chooses a proper authentication
+                scheme based on a received challenge from server. There are two HTTP authentication scheme implemented
+                and registered
+                by default.
+            </fo:block></fo:block><fo:block id="d0e1709"><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">User defined authenticator</fo:marker><fo:block font-size="17.28pt">8.14.3. User defined authenticator</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">
+                Tyrus provides an option to implement your own client HTTP authenticator by extending
+                <fo:inline font-family="monospace">org.glassfish.tyrus.client.auth.Authenticator</fo:inline>
+                and implementing<fo:inline font-family="monospace">generateAuthorizationHeader</fo:inline>.
+                Request URI,
+                <fo:inline font-family="monospace">WWW-Authenticate</fo:inline>
+                response header and provided
+                <fo:inline font-family="monospace">Credentials</fo:inline>
+                are
+                passed as parameters. Method must return response to authentication challenge as it is required by HTTP
+                server.
+                An instance of the implemented class must be passed to the Tyrus configuration with
+                <fo:inline font-family="monospace">org.glassfish.tyrus.client.auth.AuthConfig.Builder#setAuthScheme(String scheme, Authenticator
+                    userDefinedAuthenticator)
+                </fo:inline>
+                and created
+                <fo:inline font-family="monospace">AuthConfig</fo:inline>
+                instance must be put into client properties.
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Authenticator.java</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="d0e1734">  1 
+  2                 
+  3 package org.glassfish.tyrus.client;
+  4 
+  5 import java.net.URI;
+  6 
+  7 /**
+  8  * Http Authentication provider.
+  9  * Class generates authorization token as a input for {@code Authorization} HTTP request header.
+ 10  *
+ 11  * @author Ondrej Kosatka (ondrej.kosatka at oracle.com)
+ 12  */
+ 13 public abstract class Authenticator {
+ 14 
+ 15     /**
+ 16      * Generates authorization tokens as a input for {@code Authorization} HTTP request header.
+ 17      * @param uri URI is needed for generating authorization tokens for some authentication scheme (DIGEST: {@link DigestAuthenticator})
+ 18      * @param wwwAuthenticateHeader a value of header {@code WWW-Authenticate} from HTTP response.
+ 19      * @param credentials credentials.
+ 20      * @return generated {@link String} value of {@code Authorization}.
+ 21      * @throws AuthenticationException if is not possible to create auth token.
+ 22      */
+ 23     public abstract String generateAuthorizationHeader(final URI uri, final String wwwAuthenticateHeader, final Credentials credentials) throws AuthenticationException;
+ 24 
+ 25 }
+ 26                 
+ 27             </fo:block></fo:block><fo:block id="d0e1736"><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">Examples</fo:marker><fo:block font-size="17.28pt">8.14.4. Examples</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">
+                The simplest way to setup Tyrus authentication is by adding client property
+                <fo:inline font-family="monospace">ClientProperties.CREDENTIALS</fo:inline>
+                <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="d0e1744">  1 
+  2                     
+  3   client.getProperties().put(ClientProperties.CREDENTIALS, new Credentials("ws_user", "password");
+  4                     
+  5                 </fo:block>
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                How to configure Tyrus with suppressing Basic authentication, even if server side challenges Basic
+                authentication scheme.
+                <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="d0e1749">  1 
+  2                     
+  3   AuthConfig authConfig = AuthConfig.Builder.create().
+  4                                disableBasicAuth().
+  5                                build();
+  6   Credentials credentials = new Credentials("ws_user", "password");
+  7   client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
+  8   client.getProperties().put(ClientProperties.CREDENTIALS, credentials);
+  9                     
+ 10                 </fo:block>
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                How to configure Tyrus using user defined DIGEST authentication and Tyrus Basic authentication. User
+                defined
+                authentication provider
+                <fo:inline font-family="monospace">MyOwnDigestAuthenticator</fo:inline>
+                must extend<fo:inline font-family="monospace">org.glassfish.tyrus.client.auth.Authenticator</fo:inline>.
+                <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="d0e1760">  1 
+  2                     
+  3   AuthConfig authConfig = AuthConfig.Builder.create().
+  4                                putAuthProvider("Digest", new MyOwnDigestAuthenticator()).
+  5                                build();
+  6   Credentials credentials = new Credentials("ws_user", "password");
+  7   client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
+  8   client.getProperties().put(ClientProperties.CREDENTIALS, credentials);
+  9                 
+ 10                 </fo:block>
+            </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                How to configure Tyrus using user defined NTLM authentication and suppress Tyrus Basic authentication,
+                even if server side challenges Basic authentication scheme.. User defined
+                authentication provider
+                <fo:inline font-family="monospace">MyOwnNTLMAuthenticator</fo:inline>
+                must extend<fo:inline font-family="monospace">org.glassfish.tyrus.client.auth.Authenticator</fo:inline>.
+                <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="d0e1771">  1 
+  2                     
+  3   AuthConfig authConfig = AuthConfig.Builder.create().
+  4                                disableBasicAuth().
+  5                                putAuthProvider("NTLM", new MyOwnNTLMAuthenticator()).
+  6                                build();
+  7   Credentials credentials = new Credentials("ws_user", "password");
+  8   client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
+  9   client.getProperties().put(ClientProperties.CREDENTIALS, credentials);
+ 10                 
+ 11                 </fo:block>
+            </fo:block></fo:block></fo:block><fo:block id="d0e1774"><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 HTTP Redirect</fo:marker><fo:block font-size="20.735999999999997pt">8.15. Client HTTP Redirect</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">
+            Another Tyrus feature is HTTP redirect. If client received 3xx HTTP Redirect response code during a
+            handshake and HTTP Redirect is allowed (by <fo:inline font-family="monospace">ClientProperty.REDIRECT_ENABLED</fo:inline>
+            property) then client engine  transparently follows the URI contained in received HTTP response header
+            <fo:inline font-family="monospace">Location</fo:inline> and sends upgrade request to the new URI. Redirects can be chained up to limit set in
+            <fo:inline font-family="monospace">ClientProperty.REDIRECT_THRESHOLD</fo:inline>, whilst default value is 5.
+            If HTTP redirect failed by any reason, <fo:inline font-family="monospace">RedirectException</fo:inline> is thrown.
+        </fo:block><fo:block id="d0e1791"><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">Supported HTTP response codes</fo:marker><fo:block font-size="17.28pt">8.15.1. Supported HTTP response codes</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">
+                List of 3xx HTTP response codes which can be automatically redirect
+                <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1796"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1797"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>300 - Multiple Choices</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1800"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>301 - Moved permanently</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1803"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>302 - Found</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1806"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>303 - See Other (since HTTP/1.1)</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1809"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>307 - Temporary Redirect (since HTTP/1.1)</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1812"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>308 - Permanent Redirect (Experimental RFC; RFC 7238)</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+            </fo:block></fo:block><fo:block id="d0e1816"><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">Configuration</fo:marker><fo:block font-size="17.28pt">8.15.2. Configuration</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="d0e1819"><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:block font-size="14.399999999999999pt">8.15.2.1. Enabling</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">
+                    For enabling HTTP Redirect feature, <fo:inline font-family="monospace">ClientProperty.REDIRECT_ENABLED</fo:inline> must be explicitly set to
+                    <fo:inline font-family="monospace">true</fo:inline> (default value is<fo:inline font-family="monospace">false</fo:inline>), otherwise <fo:inline font-family="monospace">RedirectException</fo:inline>
+                    will be thrown, when any of supported HTTP Redirect response codes (see above).
+                </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="d0e1836">
+                    client.getProperties().put(ClientProperties.REDIRECT_ENABLED, true);
+                </fo:block></fo:block><fo:block id="d0e1838"><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:block font-size="14.399999999999999pt">8.15.2.2. Threshold</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">
+                    <fo:inline font-family="monospace">ClientProperty.REDIRECT_THRESHOLD</fo:inline> is property which can be used to limit maximal
+                    number of chained redirect. Positive integer is expected and default value is 5.
+                </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="d0e1846">
+                    client.getProperties().put(ClientProperties.REDIRECT_THRESHOLD, 3);
+                </fo:block></fo:block></fo:block><fo:block id="d0e1848"><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">Exception handling</fo:marker><fo:block font-size="17.28pt">8.15.3. Exception handling</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">
+                <fo:inline font-family="monospace">RedirectException</fo:inline>
+                is set as a cause of DeploymentException when any of the supported Redirection HTTP response
+                status codes (see above) was received and WebSocketContainer.connectToServer(...) fails
+                because of any of the following reasons:
+                <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.0em" id="d0e1856"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1857"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                            <fo:inline font-family="monospace">ClientProperties.REDIRECT_ENABLED</fo:inline> property is not set to true.
+                        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1863"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                            Value of <fo:inline font-family="monospace">ClientProperties.REDIRECT_THRESHOLD</fo:inline> is not assignable to Integer.
+                        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1869"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                            Number of chained redirection exceeds a value of <fo:inline font-family="monospace">ClientProperties.REDIRECT_THRESHOLD</fo:inline>
+                            (default value is 5).
+                        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1875"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Infinite redirection loop is detected.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="d0e1878"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
+                            <fo:inline font-family="monospace">Location</fo:inline> response header is missing, is empty or does not contain a valid URI.
+                        </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+            </fo:block></fo:block></fo:block><fo:block id="d0e1885"><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 support for HTTP status 503 - Service Unavailable with Retry-After header</fo:marker><fo:block font-size="20.735999999999997pt">8.16. Client support for HTTP status 503 - Service Unavailable with Retry-After header</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">
+            Tyrus offers automatic handling of HTTP status code <fo:inline font-family="monospace">503 - Service Unavailable</fo:inline>, which can be
+            returned from server when temporarily overloaded or down for maintenance. When <fo:inline font-family="monospace">Retry-After</fo:inline>
+            header is included in the response, client will parse the value and schedule another reconnect attempt.
+        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This feature is disabled by default.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            The implementation limits connection attempts to 5, each with reconnect delay not bigger than 300
+            seconds. Other values or conditions can be handled by custom <fo:inline font-family="monospace">ReconnectHandler</fo:inline>
+            (see <fo:inline font-family="monospace">RetryAfterException</fo:inline>).
+        </fo:block><fo:block id="d0e1906"><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">Configuration</fo:marker><fo:block font-size="17.28pt">8.16.1. 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">
+                <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="d0e1911">  1 
+  2                     
+  3             final ClientManager client = ClientManager.createClient();
+  4             client.getProperties().put(ClientProperties.RETRY_AFTER_SERVICE_UNAVAILABLE, true);
+  5 </fo:block>
+            </fo:block></fo:block></fo:block></fo:flow></fo:page-sequence></fo:root>
\ No newline at end of file
diff --git a/documentation/1.20/user-guide.html b/documentation/1.20/user-guide.html
new file mode 100644
index 00000000..486dbf00
--- /dev/null
+++ b/documentation/1.20/user-guide.html
@@ -0,0 +1,1939 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Tyrus 1.20 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 1.20 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></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="#d0e334">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e359">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e410">3.2. Deploying endpoints via <code class="code">javax.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="#d0e440">4.1. Endpoint Classes</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e464">4.1.1. javax.websocket.server.ServerEndpoint</a></span></dt><dt><span class="section"><a href="#d0e599">4.1.2. javax.websocket.ClientEndpoint</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e641">4.2. Endpoint method-level annotations</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e644">4.2.1. @OnOpen</a></span></dt><dt><span class="section"><a href="#d0e657">4.2.2. @OnClose</a></span></dt><dt><span class="section"><a href="#d0e670">4.2.3. @OnError</a></span></dt><dt><span class="section"><a href="#d0e683">4.2.4. @OnMessage</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e696">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="#d0e785">5.1. <code class="code">javax.websocket.server.ServerEndpointConfig</code></a></span></dt><dt><span class="section"><a href="#d0e838">5.2. <code class="code">javax.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="#d0e870">6.1. Endpoint Lifecycle</a></span></dt><dt><span class="section"><a href="#d0e890">6.2. <code class="code">javax.websocket.Session</code></a></span></dt><dt><span class="section"><a href="#d0e975">6.3. Sending Messages</a></span></dt><dt><span class="section"><a href="#d0e1007">6.4. RemoteEndpoint</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1021">6.4.1. <code class="code">javax.websocket.RemoteEndpoint.Basic</code></a></span></dt><dt><span class="section"><a href="#d0e1045">6.4.2. <code class="code">javax.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="#d0e1075">7.1. <code class="code">javax.inject.Inject</code> sample</a></span></dt><dt><span class="section"><a href="#d0e1102">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="#d0e1128">8.1. Client-side SSL configuration</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1149">8.1.1. Host verification</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1171">8.2. Asynchronous connectToServer methods</a></span></dt><dt><span class="section"><a href="#d0e1184">8.3. Optimized broadcast</a></span></dt><dt><span class="section"><a href="#d0e1197">8.4. Incoming buffer size</a></span></dt><dt><span class="section"><a href="#d0e1215">8.5. Shared client container</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1237">8.5.1. Custom masking key generator</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1258">8.6. WebSocket Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1283">8.6.1. ExtendedExtension sample</a></span></dt><dt><span class="section"><a href="#d0e1304">8.6.2. Per Message Deflate Extension</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1311">8.7. Client reconnect</a></span></dt><dt><span class="section"><a href="#d0e1323">8.8. Client behind proxy</a></span></dt><dt><span class="section"><a href="#d0e1331">8.9. JDK 7 client</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1353">8.9.1. SSL configuration</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1373">8.10. Tracing support</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1381">8.10.1. Configuration</a></span></dt><dt><span class="section"><a href="#d0e1447">8.10.2. Tracing Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1475">8.11. Client handshake request and response logging</a></span></dt><dt><span class="section"><a href="#d0e1483">8.12. JMX Monitoring</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1557">8.12.1. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1574">8.13. Maximal number of open sessions on server-side</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1593">8.13.1. Maximal number of open sessions per application</a></span></dt><dt><span class="section"><a href="#d0e1615">8.13.2. Maximal number of open sessions per remote address</a></span></dt><dt><span class="section"><a href="#d0e1643">8.13.3. Maximal number of open sessions per endpoint</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1658">8.14. Client HTTP Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1683">8.14.1. Credentials</a></span></dt><dt><span class="section"><a href="#d0e1691">8.14.2. Auth Configuration</a></span></dt><dt><span class="section"><a href="#d0e1709">8.14.3. User defined authenticator</a></span></dt><dt><span class="section"><a href="#d0e1736">8.14.4. Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1774">8.15. Client HTTP Redirect</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1791">8.15.1. Supported HTTP response codes</a></span></dt><dt><span class="section"><a href="#d0e1816">8.15.2. Configuration</a></span></dt><dt><span class="section"><a href="#d0e1848">8.15.3. Exception handling</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1885">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="#d0e1906">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">javax.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">javax.websocket.server.ServerEndpoint with all fields specified</a></dt><dt>4.3. <a href="#d0e510">Specifying URI path parameter</a></dt><dt>4.4. <a href="#d0e528">SampleDecoder</a></dt><dt>4.5. <a href="#d0e546">SampleEncoder</a></dt><dt>4.6. <a href="#d0e604">SampleClientEndpoint</a></dt><dt>4.7. <a href="#d0e651">@OnOpen with Session and EndpointConfig parameters.</a></dt><dt>4.8. <a href="#d0e664">@OnClose with Session and CloseReason parameters.</a></dt><dt>4.9. <a href="#d0e677">@OnError with Session and Throwable parameters.</a></dt><dt>4.10. <a href="#d0e690">@OnError with Session and Throwable parameters.</a></dt><dt>4.11. <a href="#d0e709">MessageHandler basic example</a></dt><dt>5.1. <a href="#d0e822">Configuration for EchoEndpoint Deployment</a></dt><dt>5.2. <a href="#d0e832">ServerEndpointConfigu built using Builder</a></dt><dt>5.3. <a href="#d0e861">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">javax.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 1.20. 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
+            <a class="link" href="https://projects.eclipse.org/projects/ee4j.websocket" target="_top">Java API for WebSocket</a>
+            home pages as an additional source of information about Tyrus features and API.
+
+            If you would like to contribute to the guide or have questions
+            on things not covered in our docs, please contact us at
+            <a class="link" href="https://dev.eclipse.org/mailman/listinfo/tyrus-dev" target="_top">tyrus-dev@eclipse.org</a>.
+        </p></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="getting-started"></a>Chapter&nbsp;1.&nbsp;Getting Started</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><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></dl></div><p>
+        This chapter provides a quick introduction on how to get started building
+        WebSocket services using Java API for WebSocket and Tyrus. The example described here presents how to implement
+        simple websocket service as JavaEE web application that can be deployed on any servlet container
+        supporting Servlet 3.1 and higher. It also discusses starting Tyrus in standalone mode.
+    </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="getting-started-wsapi-artifact"></a>1.1.&nbsp;WebSocket Services Using Java API for WebSocket</h2></div></div></div><p>
+                First, to use the Java API for WebSocket in your project you need to depend on the following artifact:
+</p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    gutter: false;">&lt;dependency&gt;
+    &lt;groupId&gt;javax.websocket&lt;/groupId&gt;
+    &lt;artifactId&gt;javax.websocket-api&lt;/artifactId&gt;
+    &lt;version&gt;1.1&lt;/version&gt;
+&lt;/dependency&gt;
+</pre><p>
+            </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e34"></a>1.1.1.&nbsp;Creating Annotated Server Endpoint</h3></div></div></div><p>
+                In this section we will create a simple server side websocket endpoint which will echo the received
+                message back to the sender. We will deploy this endpoint on the container.
+            </p><p>
+                In Java API for WebSocket and Tyrus, there are two basic approaches how to create an endpoint - either annotated endpoint,
+                or programmatic endpoint.
+                By annotated endpoint we mean endpoint constructed by using annotations (<code class="code">javax.websocket.server.ServerEndpoint</code>
+                for server endpoint and <code class="code">javax.websocket.ClientEndpoint</code> for client endpoint), like in
+                <a class="link" href="#websocket-annotated-echo-endpoint" title="Example&nbsp;1.1.&nbsp;Annotated Echo Endpoint">"Annotated Echo Endpoint"</a>.
+                </p><div class="example"><a name="websocket-annotated-echo-endpoint"></a><p class="title"><b>Example&nbsp;1.1.&nbsp;Annotated Echo Endpoint</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint(value = "/echo")
+public class EchoEndpointAnnotated {
+    @OnMessage
+    public String onMessage(String message, Session session) {
+        return message;
+    }
+}
+</pre></div></div><p><br class="example-break">
+            </p><p>
+            The functionality of the <code class="code">EchoEndpointAnnotated</code> is fairly simple - to send the received message
+            back to the sender. To turn a POJO (Plain Old Java Object) to WebSocket server endpoint, the annotation
+            <code class="code">@ServerEndpoint(value = "/echo")</code> needs to be put on the POJO - see line 1. The URI path of the endpoint
+            is <code class="code">"/echo"</code>. The annotation <code class="code">@OnMessage</code> - line 3 on the method <code class="code">public String
+            onMessage(String message, Session session)</code> indicates that this method
+            will be called whenever text message is received. On line 5 in this method the message is sent back to
+            the user by returning it from the message.
+        </p><p>
+            The application containing only the <code class="code">EchoEndpointAnnotated</code> class can be deployed to the container.
+        </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e78"></a>1.1.2.&nbsp;Client Endpoint</h3></div></div></div><p>
+                    Let's create the client part of the application. The client part may be written in JavaScript or any
+                    other technology supporting WebSockets. We will use Java API for WebSocket and Tyrus to demonstrate how to develop
+                    programmatic client endpoint.
+                    The following code is used as a client part to communicate with the <code class="code">EchoEndpoint</code> deployed on server
+                    using Tyrus and Java API for WebSocket.
+                </p><p>
+                    The example <a class="link" href="#websocket-client-endpoint" title="Example&nbsp;1.2.&nbsp;Client Endpoint">"Client Endpoint"</a> utilizes the concept
+                    of the programmatic endpoint. By programmatic endpoint we mean endpoint which is created by extending
+                    class <code class="code">javax.websocket.Endpoint</code>.
+                    The example is standalone java application which needs to depend on some Tyrus artifacts to work
+                    correctly, see <a class="link" href="#standalone-mode" title="1.1.4.&nbsp;Tyrus in Standalone Mode">"Tyrus Standalone Mode"</a>.
+                    In the example first the <code class="code">CountDownLatch</code> is initialized. It is needed as a bocking data
+                    structure - on line 31 it either waits for 100 seconds, or until it gets counted down (line 22).
+                    On line 9 the <code class="code">javax.websocket.ClientEndpointConfig</code> is created -  we will need it later
+                    to connect the endpoint to the server. On line 11 the <code class="code">org.glassfish.tyrus.client.ClientManager</code>
+                    is created. it implements the <code class="code">javax.websocket.WebSocketContainer</code> and is used to connect
+                    to server. This happens on next line. The client endpoint functionality is contained in the <code class="code">
+                    javax.websocket.Endpoint</code> lazy instantiation. In the <code class="code">onOpen</code> method new MessageHandler
+                    is registered (the received message is just printed on the console and the latch is counted down). After
+                    the registration the message is sent to the server (line 25).
+                    </p><div class="example"><a name="websocket-client-endpoint"></a><p class="title"><b>Example&nbsp;1.2.&nbsp;Client Endpoint</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class DocClient {
+    private static CountDownLatch messageLatch;
+    private static final String SENT_MESSAGE = "Hello World";
+
+    public static void main(String [] args){
+        try {
+            messageLatch = new CountDownLatch(1);
+
+            final ClientEndpointConfig cec = ClientEndpointConfig.Builder.create().build();
+
+            ClientManager client = ClientManager.createClient();
+            client.connectToServer(new Endpoint() {
+
+                @Override
+                public void onOpen(Session session, EndpointConfig config) {
+                    try {
+                        session.addMessageHandler(new MessageHandler.Whole&lt;String&gt;() {
+
+                            @Override
+                            public void onMessage(String message) {
+                                System.out.println("Received message: "+message);
+                                messageLatch.countDown();
+                            }
+                        });
+                        session.getBasicRemote().sendText(SENT_MESSAGE);
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }, cec, new URI("ws://localhost:8025/websockets/echo"));
+            messageLatch.await(100, TimeUnit.SECONDS);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}</pre></div></div><p><br class="example-break">
+                </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="websocket-programmatic-endpoint"></a>1.1.3.&nbsp;Creating Server Endpoint Programmatically</h3></div></div></div><p>
+            Similarly to <a class="link" href="#websocket-client-endpoint" title="Example&nbsp;1.2.&nbsp;Client Endpoint">"Client Endpoint"</a> the server registered endpoint
+            may also be the programmatic one:
+            </p><div class="example"><a name="websocket-programmatic-echo-endpoint"></a><p class="title"><b>Example&nbsp;1.3.&nbsp;Programmatic Echo Endpoint</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class EchoEndpointProgrammatic extends Endpoint {
+    @Override
+    public void onOpen(final Session session, EndpointConfig config) {
+        session.addMessageHandler(new MessageHandler.Whole&lt;String&gt;() {
+            @Override
+            public void onMessage(String message) {
+                try {
+                    session.getBasicRemote().sendText(message);
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+    }
+}</pre></div></div><p><br class="example-break">
+        </p><p>
+            The functionality of the <code class="code">EchoEndpointProgrammatic</code> is fairly simple - to send the received message back to the sender.
+            The programmatic server endpoint needs to extend <code class="code">javax.websocket.Endpoint</code> - line 1.
+            Mehod <code class="code">public void onOpen(final Session session, EndpointConfig config)</code> gets called once new
+            connection to this endpoin0t is opened. In this method the <code class="code">MessageHandler</code> is registered to the
+            <code class="code">javax.websocket.Session</code> instance, which opened the connection. Method <code class="code">public void
+            onMessage(String message)</code> gets called once the message is received. On line 8 the message
+            is sent back to the sender.
+        </p></div><p>
+        To see how both annotated and programmatic endpoints may be deployed please check the section Deployment.
+        In short: you need to put the server endpoint classes into WAR, deploy on server and the endpoints will
+        be scanned by server and deployed.
+    </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="standalone-mode"></a>1.1.4.&nbsp;Tyrus in Standalone Mode</h3></div></div></div><p>
+
+            </p><p>
+                To use Tyrus in standalone mode it is necessary to depend on correct Tyrus artifacts.
+                The following artifacts need to be added to your pom to use Tyrus:
+</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;1.20&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;1.20&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
+                standalone Tyrus server on the hostname "localhost", port 8025 and path "/websockets", so the endpoint
+                will be available at address "ws://localhost:8025/websockets/echo".
+</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    gutter: false;">public void runServer() {
+    Server server = new Server("localhost", 8025, "/websockets", null, EchoEndpoint.class);
+
+    try {
+        server.start();
+        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
+        System.out.print("Please press a key to stop the server.");
+        reader.readLine();
+    } catch (Exception e) {
+        e.printStackTrace();
+    } finally {
+        server.stop();
+    }
+}</pre><p>
+            </p></div></div></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="modules-and-dependencies"></a>Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies</h1></div></div></div><p>
+        Tyrus is built, assembled and installed using Maven. Tyrus is deployed to maven.org maven repository
+        at the following location:<a class="link" href="http://search.maven.org/" target="_top">http://search.maven.org/</a>.
+        Jars, jar sources, jar javadoc and samples are all available on the java.net maven repository.
+    </p><p>
+        All Tyrus components are built using Java SE 7 compiler. It means, you will also need at least Java SE 7
+        to be able to compile and run your application. Developers using maven are likely to find it easier to include
+        and
+        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|1.20|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|1.20|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|1.20|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|1.20|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|1.20|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/1.20/tyrus-samples-1.20-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|1.20|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|1.20|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|1.20|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|1.20|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|1.20|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="#d0e334">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e359">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e410">3.2. Deploying endpoints via <code class="code">javax.websocket.server.ServerContainer</code></a></span></dt></dl></div><p>
+        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.
+    </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e334"></a>3.1.&nbsp;Deploying Endpoints as a WAR file</h2></div></div></div><p>
+            The classes that are scanned for in WAR are the following ones:
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: opencircle; "><li class="listitem" style="list-style-type: circle"><p>
+                        Classes that implement the <code class="code">javax.websocket.ServerApplicationConfig</code>.
+                    </p></li><li class="listitem" style="list-style-type: circle"><p>
+                        Classes annotated with <code class="code">javax.websocket.server.ServerEndpoint</code>.
+                    </p></li><li class="listitem" style="list-style-type: circle"><p>
+                        Classes that extend <code class="code">javax.websocket.Endpoint</code>.
+                    </p></li></ul></div><p>
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e359"></a>3.1.1.&nbsp;Deployment Algorithm</h3></div></div></div><p>
+                </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
+                        If one or more classes implementing ServerApplicationConfiguration are present in the WAR file, Tyrus deploys endpoints
+                        provided by all of these classes. Tyrus doesn't deploy any other classes present in the WAR (annotated by
+                        <code class="code">javax.websocket.server.ServerEndpoint</code> or extending <code class="code">javax.websocket.Endpoint</code>).
+                    </li><li class="listitem">
+                        If no class implementing ServerApplicationConfiguration is present, Tyrus deploys all classes annotated
+                        with @ServerEndpoint or extending Endpoint present in the WAR.
+                    </li></ol></div><p>
+            </p></div><p>
+            Let's have the following classes in the WAR:
+            </p><div class="example"><a name="deployment-serverapplicationconfig"></a><p class="title"><b>Example&nbsp;3.1.&nbsp;Deployment of WAR containing several classes extending <code class="code">javax.websocket.server.ServerApplicationConfig</code></b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class MyApplicationConfigOne implements ServerApplicationConfig {
+    public Set&lt;ServerEndpointConfig&gt; getEndpointConfigs(Set&lt;Class&lt;? extends Endpoint&gt;&gt; endpointClasses);
+        Set&lt;Class&lt;? extends Endpoint&gt;&gt; s = new HashSet&lt;Class&lt;? extends Endpoint&gt;&gt;;
+        s.add(ProgrammaticEndpointOne.class);
+        return s;
+    }
+
+    public Set&lt;Class&gt; getAnnotatedEndpointClasses(Set&lt;Class&lt;?&gt;&gt; scanned);
+       Set&lt;Class&lt;?&gt;&gt; s = new HashSet&lt;Class&lt;?&gt;&gt;;
+        s.add(AnnotatedEndpointOne.class);
+        return s;
+    }
+}
+
+public class MyApplicationConfigTwo implements ServerApplicationConfig {
+    public Set&lt;ServerEndpointConfig&gt; getEndpointConfigs(Set&lt;Class&lt;? extends Endpoint&gt;&gt; endpointClasses);
+        Set&lt;Class&lt;? extends Endpoint&gt;&gt; s = new HashSet&lt;Class&lt;? extends Endpoint&gt;&gt;;
+        s.add(ProgrammaticEndpointTwo.class);
+    return s;
+}
+
+public Set&lt;Class&gt; getAnnotatedEndpointClasses(Set&lt;Class&lt;?&gt;&gt; scanned);
+    Set&lt;Class&lt;?&gt;&gt; s = new HashSet&lt;Class&lt;?&gt;&gt;;
+        s.add(AnnotatedEndpointTwo.class);
+        return s;
+    }
+}
+
+@ServerEndpoint(value = "/annotatedone")
+public class AnnotatedEndpointOne {
+    ...
+}
+
+@ServerEndpoint(value = "/annotatedtwo")
+    public class AnnotatedEndpointTwo {
+    ...
+}
+
+@ServerEndpoint(value = "/annotatedthree")
+public class AnnotatedEndpointThree {
+    ...
+}
+
+public class ProgrammaticEndpointOne extends Endpoint {
+    ...
+}
+
+public class ProgrammaticEndpointTwo extends Endpoint {
+    ...
+}
+
+public class ProgrammaticEndpointThree extends Endpoint {
+    ...
+}</pre></div></div><p><br class="example-break">
+            According to the deployment algorithm classes <code class="code">AnnotatedEndpointOne</code>, <code class="code">AnnotatedEndpointTwo</code>,
+            <code class="code">ProgrammaticEndpointOne</code> and <code class="code">ProgrammaticEndpointTwo</code> will be deployed.
+            <code class="code">AnnotatedEndpointThree</code> and <code class="code">ProgrammaticEndpointThree</code> will not be
+            deployed, as these are not returned by the respective
+            methods of <code class="code">MyApplicationConfigOne</code> nor <code class="code">MyApplicationConfigTwo</code>.
+        </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e410"></a>3.2.&nbsp;Deploying endpoints via <code class="code">javax.websocket.server.ServerContainer</code></h2></div></div></div><p>
+            Endpoints may be deployed using <code class="code">javax.websocket.server.ServerContainer</code> during the application initialization phase.
+            For websocket enabled web containers, developers may obtain a reference to the ServerContainer instance by
+            retrieving it as an attribute named <code class="code">javax.websocket.server.ServerContainer</code> on the ServletContext, see
+            the following example for annotated endpoint:
+            </p><div class="example"><a name="deployment-servercontainer"></a><p class="title"><b>Example&nbsp;3.2.&nbsp;Deployment of Annotated Endpoint Using ServerContainer</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@WebListener
+@ServerEndpoint("/annotated")
+public class MyServletContextListenerAnnotated implements ServletContextListener {
+
+    @Override
+    public void contextInitialized(ServletContextEvent servletContextEvent) {
+        final ServerContainer serverContainer = (ServerContainer) servletContextEvent.getServletContext()
+                                                    .getAttribute("javax.websocket.server.ServerContainer");
+
+        try {
+            serverContainer.addEndpoint(MyServletContextListenerAnnotated.class);
+        } catch (DeploymentException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @OnMessage
+    public String onMessage(String message) {
+        return message;
+    }
+
+    @Override
+    public void contextDestroyed(ServletContextEvent servletContextEvent) {
+    }
+}</pre></div></div><p><br class="example-break">
+        </p></div></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="websocket-api"></a>Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="#d0e440">4.1. Endpoint Classes</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e464">4.1.1. javax.websocket.server.ServerEndpoint</a></span></dt><dt><span class="section"><a href="#d0e599">4.1.2. javax.websocket.ClientEndpoint</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e641">4.2. Endpoint method-level annotations</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e644">4.2.1. @OnOpen</a></span></dt><dt><span class="section"><a href="#d0e657">4.2.2. @OnClose</a></span></dt><dt><span class="section"><a href="#d0e670">4.2.3. @OnError</a></span></dt><dt><span class="section"><a href="#d0e683">4.2.4. @OnMessage</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e696">4.3. MessageHandlers</a></span></dt></dl></div><p>This chapter presents an overview of the core WebSocket API concepts - endpoints, configurations and message
+        handlers.</p><p>The JAVA API for WebSocket specification draft can be found online <a class="link" href="http://jcp.org/aboutJava/communityprocess/pfd/jsr356/index.html" target="_top">here</a>.
+    </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e440"></a>4.1.&nbsp;Endpoint Classes</h2></div></div></div><p>
+            <span class="emphasis"><em>Server endpoint classes</em></span>
+            are POJOs (Plain Old Java Objects) that are annotated with <code class="code">javax.websocket.server.ServerEndpoint</code>.
+            Similarly, <span class="emphasis"><em>client endpoint classes</em></span> are POJOs annotated with javax.websocket.ClientEndpoint.
+            This section shows how to use Tyrus to annotate Java objects to create WebSocket web services.
+        </p><p>The following code example is a simple example of a WebSocket endpoint using annotations. The example
+            code shown here is from echo sample which ships with Tyrus.
+        </p><p>
+            </p><div class="example"><a name="endpoints-echo-endpoint"></a><p class="title"><b>Example&nbsp;4.1.&nbsp;Echo sample server endpoint.</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/echo")
+public class EchoEndpoint {
+
+    @OnOpen
+    public void onOpen(Session session) throws IOException {
+        session.getBasicRemote().sendText("onOpen");
+    }
+
+    @OnMessage
+    public String echo(String message) {
+        return message + " (from your server)";
+    }
+
+    @OnError
+    public void onError(Throwable t) {
+        t.printStackTrace();
+    }
+
+    @OnClose
+    public void onClose(Session session) {
+
+    }
+}</pre></div></div><p><br class="example-break">
+            Let's explain the JAVA API for WebSocket annotations.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e464"></a>4.1.1.&nbsp;javax.websocket.server.ServerEndpoint</h3></div></div></div><p>javax.websocket.server.ServerEndpoint has got one mandatory field - <span class="emphasis"><em>value</em></span> and four optional fields.
+                See the example below.</p><p>
+                </p><div class="example"><a name="endpoints-serverendpoint-annotation"></a><p class="title"><b>Example&nbsp;4.2.&nbsp;javax.websocket.server.ServerEndpoint with all fields specified</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint(
+    value = "/sample",
+    decoders = ChatDecoder.class,
+    encoders = DisconnectResponseEncoder.class,
+    subprotocols = {"subprtotocol1", "subprotocol2"},
+    configurator = Configurator.class
+)
+public class SampleEndpoint {
+
+    @OnMessage
+    public SampleResponse receiveMessage(SampleType message, Session session) {
+        return new SampleResponse(message);
+    }
+}</pre></div></div><p><br class="example-break">
+            </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e480"></a>4.1.1.1.&nbsp;value</h4></div></div></div><p>
+                 Denotes a relative URI path at which the server endpoint will be deployed. In the example
+                    <a class="link" href="#endpoints-serverendpoint-annotation" title="Example&nbsp;4.2.&nbsp;javax.websocket.server.ServerEndpoint with all fields specified">"javax.websocket.server.ServerEndpoint with all fields specified"</a>, the
+                    Java class will be hosted at the URI path
+                    <code class="literal">/sample</code>. The field <span class="emphasis"><em>value</em></span> must begin with a '/' and may or may
+                    not end in a '/', it makes no difference. Thus request URLs that end or do not end in a '/' will both
+                        be matched. WebSocket API for JAVA supports level 1 URI templates.
+                </p><p>
+                    <span class="emphasis"><em>URI path templates</em></span>
+                    are URIs with variables embedded within the URI syntax. These variables are substituted at runtime in
+                    order for a resource to respond to a request based on the substituted URI. Variables are denoted by
+                    curly braces. For example, look at the following @ServerEndpoint annotation:
+
+                    </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    gutter: false;">@ServerEndpoint("/users/{username}")</pre><p>
+
+                    In this type of example, a user will be prompted to enter their name, and then a Tyrus web
+                    service configured
+                    to respond to requests to this URI path template will respond. For example, if the user entered their
+                    username as "Galileo", the web service will respond to the following URL:
+                    <code class="literal">http://example.com/users/Galileo</code>
+                </p><p>To obtain the value of the username variable the <code class="code">javax.websocket.server.PathParam</code> may be used on method parameter
+                    of methods annotated with one of @OnOpen, @OnMessage, @OnError, @OnClose.
+                    </p><div class="example"><a name="d0e510"></a><p class="title"><b>Example&nbsp;4.3.&nbsp;Specifying URI path parameter</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/users/{username}")
+public class UserEndpoint {
+
+    @OnMessage
+    public String getUser(String message, @PathParam("username") String userName) {
+        ...
+    }
+}</pre></div></div><p><br class="example-break">
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e516"></a>4.1.1.2.&nbsp;decoders</h4></div></div></div><p>
+                    Contains list of classes that will be used to decode incoming messages for the endpoint. By decoding
+                    we mean transforming from text / binary websocket message to some user defined type. Each decoder
+                    needs to implement the Decoder interface.
+                </p><p>
+                    <code class="code">SampleDecoder</code> in the following example decodes String message and produces
+                    SampleType message - see decode method on line 4.
+                </p><p>
+                    </p><div class="example"><a name="d0e528"></a><p class="title"><b>Example&nbsp;4.4.&nbsp;SampleDecoder</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class SampleDecoder implements Decoder.Text&lt;SampleType&gt; {
+
+    @Override
+    public SampleType decode(String s) {
+        return new SampleType(s);
+    }
+
+    @Override
+    public boolean willDecode(String s) {
+        return s.startsWith(SampleType.PREFIX);
+    }
+
+    @Override
+    public void init(EndpointConfig config) {
+        // do nothing.
+    }
+
+    @Override
+    public void destroy() {
+        // do nothing.
+    }
+}</pre></div></div><p><br class="example-break">
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e534"></a>4.1.1.3.&nbsp;encoders</h4></div></div></div><p>
+                    Contains list of classes that will be used to encode outgoing messages. By encoding we mean
+                    transforming message from user defined type to text or binary type. Each encoder needs
+                    to implement the Encoder interface.
+                </p><p>
+                    <code class="code">SampleEncoder</code> in the following example decodes String message and produces
+                    SampleType message - see decode method on line 4.
+                </p><p>
+                    </p><div class="example"><a name="d0e546"></a><p class="title"><b>Example&nbsp;4.5.&nbsp;SampleEncoder</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class SampleEncoder implements Encoder.Text&lt;SampleType&gt; {
+
+    @Override
+    public String encode(SampleType message) {
+        return data.toString();
+    }
+
+    @Override
+    public void init(EndpointConfig config) {
+        // do nothing.
+    }
+
+    @Override
+    public void destroy() {
+        // do nothing.
+    }
+}</pre></div></div><p><br class="example-break">
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e552"></a>4.1.1.4.&nbsp;subprotocols</h4></div></div></div><p>
+                    List of names (Strings) of supported sub-protocols. The first protocol in this list that matches
+                    with sub-protocols provided by the client side is used.
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e557"></a>4.1.1.5.&nbsp;configurator</h4></div></div></div><p>
+                    Users may provide their own implementation of ServerEndpointConfiguration.Configurator. It allows
+                    them to control some algorithms used by Tyrus in the connection initialization phase:
+
+                    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: opencircle; "><li class="listitem" style="list-style-type: circle"><p>
+                                <code class="code">public String getNegotiatedSubprotocol(List&lt;String&gt; supported, List&lt;String&gt; requested)</code>
+                                allows the user to provide their own algorithm for selection of used subprotocol.
+                            </p></li><li class="listitem" style="list-style-type: circle"><p>
+                                <code class="code">public List&lt;Extension&gt; getNegotiatedExtensions(List&lt;Extension&gt; installed, List&lt;Extension&gt; requested)</code>
+                                allows the user to provide their own algorithm for selection of used Extensions.
+                            </p></li><li class="listitem" style="list-style-type: circle"><p>
+                                <code class="code">public boolean checkOrigin(String originHeaderValue)</code>.
+                                allows the user to specify the origin checking algorithm.
+                            </p></li><li class="listitem" style="list-style-type: circle"><p>
+                                <code class="code">public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response) </code>.
+                                allows the user to modify the handshake response that will be sent back to the client.
+                            </p></li><li class="listitem" style="list-style-type: circle"><p>
+                                <code class="code">public &lt;T&gt; T getEndpointInstance(Class&lt;T&gt; endpointClass) throws InstantiationException </code>.
+                                allows the user to provide the way how the instance of an Endpoint is created
+                            </p></li></ul></div><p>
+
+                </p><p>
+</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class ConfiguratorTest extends ServerEndpointConfig.Configurator{
+
+    public String getNegotiatedSubprotocol(List&lt;String&gt; supported, List&lt;String&gt; requested) {
+        // Plug your own algorithm here
+    }
+
+    public List&lt;Extension&gt; getNegotiatedExtensions(List&lt;Extension&gt; installed, List&lt;Extension&gt; requested) {
+        // Plug your own algorithm here
+    }
+
+    public boolean checkOrigin(String originHeaderValue) {
+        // Plug your own algorithm here
+    }
+
+    public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response) {
+        // Plug your own algorithm here
+    }
+
+    public &lt;T&gt; T getEndpointInstance(Class&lt;T&gt; endpointClass) throws InstantiationException {
+        // Plug your own algorithm here
+    }
+}</pre><p>
+                </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e599"></a>4.1.2.&nbsp;javax.websocket.ClientEndpoint</h3></div></div></div><p>The @ClientEndpoint class-level annotation is used to turn a POJO into WebSocket client endpoint.
+                In the following sample the client sends text message "Hello!" and prints out each received message.
+                </p><div class="example"><a name="d0e604"></a><p class="title"><b>Example&nbsp;4.6.&nbsp;SampleClientEndpoint</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ClientEndpoint(
+    decoders = SampleDecoder.class,
+    encoders = SampleEncoder.class,
+    subprotocols = {"subprtotocol1", "subprotocol2"},
+    configurator = ClientConfigurator.class)
+public class SampleClientEndpoint {
+
+    @OnOpen
+    public void onOpen(Session p) {
+        try {
+            p.getBasicRemote().sendText("Hello!");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @OnMessage
+    public void onMessage(String message) {
+        System.out.println(String.format("%s %s", "Received message: ", message));
+    }
+}
+</pre></div></div><p><br class="example-break">
+            </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e610"></a>4.1.2.1.&nbsp;decoders</h4></div></div></div><p>
+                    Contains list of classes that will be used decode incoming messages for the endpoint. By decoding
+                    we mean transforming from text / binary websocket message to some user defined type. Each decoder
+                    needs to implement the Decoder interface.
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e615"></a>4.1.2.2.&nbsp;encoders</h4></div></div></div><p>
+                    Contains list of classes that will be used to encode outgoing messages. By encoding we mean
+                    transforming message from user defined type to text or binary type. Each encoder needs
+                    to implement the Encoder interface.
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e620"></a>4.1.2.3.&nbsp;subprotocols</h4></div></div></div><p>
+                    List of names (Strings) of supported sub-protocols.
+                </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e625"></a>4.1.2.4.&nbsp;configurator</h4></div></div></div><p>
+                    Users may provide their own implementation of ClientEndpointConfiguration.Configurator. It allows
+                    them to control some algorithms used by Tyrus in the connection initialization phase. Method
+                    <span class="emphasis"><em>beforeRequest</em></span> allows the user to change the request headers constructed by
+                    Tyrus. Method <span class="emphasis"><em>afterResponse</em></span> allows the user to process the handshake response.
+                </p><p>
+</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class Configurator {
+
+    public void beforeRequest(Map&lt;String, List&lt;String&gt;&gt; headers) {
+        //affect the headers before request is sent
+    }
+
+    public void afterResponse(HandshakeResponse hr) {
+        //process the handshake response
+    }
+}</pre><p>
+                </p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e641"></a>4.2.&nbsp;Endpoint method-level annotations</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e644"></a>4.2.1.&nbsp;@OnOpen</h3></div></div></div><p>This annotation may be used on certain methods of @ServerEndpoint or @ClientEndpoint, but only once
+                per endpoint. It is used to decorate a method which is called once new connection is established.
+                The connection is represented by the optional Session parameter. The other optional parameter
+                is EndpointConfig, which represents the passed configuration object. Note that the EndpointConfig
+                allows the user to access the user properties.
+            </p><p>
+                </p><div class="example"><a name="d0e651"></a><p class="title"><b>Example&nbsp;4.7.&nbsp;@OnOpen with Session and EndpointConfig parameters.</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/sample")
+public class EchoEndpoint {
+
+    private Map&lt;String, Object&gt; properties;
+
+    @OnOpen
+    public void onOpen(Session session, EndpointConfig config) throws IOException {
+        session.getBasicRemote().sendText("onOpen");
+        properties = config.getUserProperties();
+    }
+}</pre></div></div><p><br class="example-break">
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e657"></a>4.2.2.&nbsp;@OnClose</h3></div></div></div><p>This annotation may be used on any method of @ServerEndpoint or @ClientEndpoint, but only once
+                per endpoint. It is used to decorate a method which is called once the connection is being closed.
+                The method may have one Session parameter, one CloseReason parameter and parameters
+                annotated with @PathParam.
+            </p><p>
+                </p><div class="example"><a name="d0e664"></a><p class="title"><b>Example&nbsp;4.8.&nbsp;@OnClose with Session and CloseReason parameters.</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/sample")
+public class EchoEndpoint {
+
+    @OnClose
+    public void onClose(Session session, CloseReason reason) throws IOException {
+       //prepare the endpoint for closing.
+    }
+}</pre></div></div><p><br class="example-break">
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e670"></a>4.2.3.&nbsp;@OnError</h3></div></div></div><p>This annotation may be used on any method of @ServerEndpoint or @ClientEndpoint, but only once
+                per endpoint. It is used to decorate a method which is called once Exception is being thrown by
+                any method annotated with @OnOpen, @OnMessage and @OnClose.
+                The method may have optional Session parameter and Throwable parameters.
+            </p><p>
+                </p><div class="example"><a name="d0e677"></a><p class="title"><b>Example&nbsp;4.9.&nbsp;@OnError with Session and Throwable parameters.</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/sample")
+public class EchoEndpoint {
+
+    @OnError
+    public void onError(Session session, Throwable t) {
+        t.printStackTrace();
+    }
+}</pre></div></div><p><br class="example-break">
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e683"></a>4.2.4.&nbsp;@OnMessage</h3></div></div></div><p>This annotation may be used on certain methods of @ServerEndpoint or @ClientEndpoint, but
+                only once per endpoint. It is used to decorate a method which is called once new message is received.
+            </p><p>
+                </p><div class="example"><a name="d0e690"></a><p class="title"><b>Example&nbsp;4.10.&nbsp;@OnError with Session and Throwable parameters.</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/sample")
+public class EchoEndpoint {
+
+    @OnMessage
+    public void onMessage(Session session, String message) {
+        System.out.println("Received message: " + message);
+    }
+}</pre></div></div><p><br class="example-break">
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e696"></a>4.3.&nbsp;MessageHandlers</h2></div></div></div><p>
+            Implementing the <code class="code">javax.websocket.MessageHandler</code> interface is one of the ways how to receive messages
+            on endpoints (both server and client). It is aimed primarily on programmatic endpoints, as the annotated ones
+            use the method level annotation <code class="code">javax.websocket.OnMessage</code> to denote the method which
+            receives messages.
+        </p><p>
+            The MessageHandlers get registered on the Session instance:
+        </p><div class="example"><a name="d0e709"></a><p class="title"><b>Example&nbsp;4.11.&nbsp;MessageHandler basic example</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class MyEndpoint extends Endpoint {
+
+    @Override
+    public void onOpen(Session session, EndpointConfig EndpointConfig) {
+        session.addMessageHandler(new MessageHandler.Whole&lt;String&gt;() {
+            @Override
+            public void onMessage(String message) {
+                System.out.println("Received message: "+message);
+            }
+        });
+    }
+}</pre></div></div><p><br class="example-break">
+        </p><p>
+            There are two orthogonal criterions which classify MessageHandlers.
+            According the WebSocket Protocol (RFC 6455) the message may be sent either complete, or in chunks. In Java API for WebSocket this fact is reflected
+            by the interface which the handler implements. Whole messages are processed by handler which implements
+            <code class="code">javax.websocket.MessageHandler.Whole</code> interface. Partial
+            messages are processed by handlers that implement <code class="code">javax.websocket.MessageHandler.Partial</code>
+            interface. However, if user registers just the whole message handler, it doesn't mean that the handler will
+            process solely whole messages. If partial message is received, the parts are cached by Tyrus until the final
+            part is received. Then the whole message is passed to the handler. Similarly, if the user registers just the
+            partial message handler and whole message is received, it is passed directly to the handler.
+        </p><p>
+            The second criterion is the data type of the message. WebSocket Protocol (RFC 6455) defines four message data type - text message,
+            According to Java API for WebSocket the text messages will be processed by MessageHandlers with the following types:
+
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: opencircle; "><li class="listitem" style="list-style-type: circle"><p>
+                        <span class="emphasis"><em>java.lang.String</em></span>
+                    </p></li><li class="listitem" style="list-style-type: circle"><p>
+                        <span class="emphasis"><em>java.io.Reader</em></span>
+                    </p></li><li class="listitem" style="list-style-type: circle"><p>
+                        any developer object for which there is a corresponding <span class="emphasis"><em>javax.websocket.Decoder.Text</em></span>
+                      or <span class="emphasis"><em>javax.websocket.Decoder.TextStream</em></span>.
+                    </p></li></ul></div><p>
+
+            The binary messages will be processed by MessageHandlers with the following types:
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: opencircle; "><li class="listitem" style="list-style-type: circle"><p>
+                        <span class="emphasis"><em>java.nio.ByteBuffer</em></span>
+                    </p></li><li class="listitem" style="list-style-type: circle"><p>
+                        <span class="emphasis"><em>java.io.InputStream</em></span>
+                    </p></li><li class="listitem" style="list-style-type: circle"><p>
+                        any developer object for which there is a corresponding <span class="emphasis"><em>javax.websocket.Decoder.Binary</em></span>
+                        or <span class="emphasis"><em>javax.websocket.Decoder.BinaryStream</em></span>.
+                    </p></li></ul></div><p>
+        </p><p>
+            The Java API for WebSocket limits the registration of MessageHandlers per Session to be one MessageHandler per native
+            websocket message type. In other words, the developer can only register at most one MessageHandler for
+            incoming text messages, one MessageHandler for incoming binary messages, and one MessageHandler for
+            incoming pong messages. This rule holds for both whole and partial message handlers, i.e there may be one
+            text MessageHandler - either whole, or partial, not both.
+        </p></div></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="configurations"></a>Chapter&nbsp;5.&nbsp;Configurations</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="#d0e785">5.1. <code class="code">javax.websocket.server.ServerEndpointConfig</code></a></span></dt><dt><span class="section"><a href="#d0e838">5.2. <code class="code">javax.websocket.ClientEndpointConfig</code></a></span></dt></dl></div><p>
+        <code class="code">javax.websocket.server.ServerEndpointConfig</code> and <code class="code">javax.websocket.ClientEndpointConfig</code> objects
+        are used to provide the user the ability to configure websocket endpoints. Both server and client endpoints have some
+        part of configuration in common, namely encoders, decoders, and user properties. The user properties may developers
+        use to store the application specific data. For the developer's convenience the builders are provided for both
+        ServerEndpointConfig and ClientEndpointConfig.
+    </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e785"></a>5.1.&nbsp;<code class="code">javax.websocket.server.ServerEndpointConfig</code></h2></div></div></div><p>
+            The <code class="code">javax.websocket.server.ServerEndpointConfig</code> is used when deploying the endpoint either via
+            implementing the <code class="code">javax.websocket.server.ServerApplicationConfig</code>, or via registering the programmatic endpoint
+            at the <code class="code">javax.websocket.server.ServerContainer</code> instance. It allows the user to create the configuration
+            programmatically.
+        </p><p>
+            The following example is used to deploy the EchoEndpoint programmatically. In the method
+            <code class="code">getEndpointClass()</code> the user has to specify the class of the deployed endpoint. In
+            the example Tyrus will create an instance of <code class="code">EchoEndpoint</code> and deploy it.
+            This is the way how to tie together endpoint and it's configuration. In the method
+            <code class="code">getPath()</code> the user specifies that that the endpoint instance will be deployed at the
+            path "/echo". In the method <code class="code">public List&lt;String&gt; getSubprotocols()</code> the user
+            specifies that the supported subprotocols are "echo1" and "echo2". The method <code class="code">getExtensions()</code>
+            defines the extensions the endpoint supports. Similarly the example configuration does not use any configurator.
+            Method <code class="code">public List&lt;Class&lt;? extends Encoder&gt;&gt; getEncoders()</code> defines the encoders
+            used by the endpoint. The decoders and user properties map are defined in similar fashion.
+        </p><p>
+            If the endpoint class which is about to be deployed is an annotated endpoint, note that the endpoint configuration
+            will be taken from configuration object, not from the annotation on the endpoint class.
+        </p><div class="example"><a name="d0e822"></a><p class="title"><b>Example&nbsp;5.1.&nbsp;Configuration for EchoEndpoint Deployment</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class EchoEndpointConfig implements ServerEndpointConfig{
+
+    private final Map&lt;String, Object&gt; userProperties = new HashMap&lt;String, Object&gt;();
+
+    @Override
+    public Class&lt;?&gt; getEndpointClass() {
+        return EchoEndpoint.class;
+    }
+
+    @Override
+    public String getPath() {
+        return "/echo";
+    }
+
+    @Override
+    public List&lt;String&gt; getSubprotocols() {
+        return Arrays.asList("echo1","echo2");
+    }
+
+    @Override
+    public List&lt;Extension&gt; getExtensions() {
+        return null;
+    }
+
+    @Override
+    public Configurator getConfigurator() {
+        return null;
+    }
+
+    @Override
+    public List&lt;Class&lt;? extends Encoder&gt;&gt; getEncoders() {
+        return Arrays.asList(SampleEncoder.class);
+    }
+
+    @Override
+    public List&lt;Class&lt;? extends Decoder&gt;&gt; getDecoders() {
+        return Arrays.asList(SampleDecoder.class);
+    }
+
+    @Override
+    public Map&lt;String, Object&gt; getUserProperties() {
+        return userProperties;
+    }
+}</pre></div></div><br class="example-break"><p>
+            To make the development easy the <span class="emphasis"><em>javax.websocket.server.ServerEndpointConfig</em></span> provides a builder to construct
+            the configuration object:
+            </p><div class="example"><a name="d0e832"></a><p class="title"><b>Example&nbsp;5.2.&nbsp;ServerEndpointConfigu built using Builder</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ServerEndpointConfig config = ServerEndpointConfig.Builder.create(EchoEndpoint.class,"/echo").
+    decoders(Arrays.&lt;Class&lt;? extends Decoder&gt;&gt;asList(JsonDecoder.class)).
+    encoders(Arrays.&lt;Class&lt; extends Encoder&gt;&gt;asList(JsonEncoder.class)).build();</pre></div></div><p><br class="example-break">
+        </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e838"></a>5.2.&nbsp;<code class="code">javax.websocket.ClientEndpointConfig</code></h2></div></div></div><p>
+            The <code class="code">javax.websocket.ClientEndpointConfig</code> is used when deploying the programmatic client endpoint
+            via registering the programmatic endpoint at the <code class="code">WebSocketContainer</code> instance. Some of
+            the configuration methods come from the <code class="code">EndpointConfig</code>class, which is extended by both
+            <code class="code">javax.websocket.server.ServerEndpointConfig</code> and <code class="code">javax.websocket.ClientEndpointConfig</code>. Then there are methods
+            for configuring the preferred subprotocols the client endpoint wants to use and supported extensions. It is
+            also possible to use the ClientEndpointConfig.Configurator in order to be able to affect the endpoint behaviour
+            before and after request.
+        </p><p>
+            Similarly to the ServerEndpointConfig, there is a Builder provided to construct the configuration easily:
+        </p><div class="example"><a name="d0e861"></a><p class="title"><b>Example&nbsp;5.3.&nbsp;ClientEndpointConfig built using Builder</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ClientEndpointConfig.Builder.create().
+    decoders(Arrays.&lt;Class&lt;? extends Decoder&gt;&gt;asList(JsonDecoder.class)).
+    encoders(Arrays.&lt;Class&lt;? extends Encoder&gt;&gt;asList(JsonEncoder.class)).
+    preferredSubprotocols(Arrays.asList("echo1", "echo2")).build();</pre></div></div><br class="example-break"></div></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="lifecycle"></a>Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="#d0e870">6.1. Endpoint Lifecycle</a></span></dt><dt><span class="section"><a href="#d0e890">6.2. <code class="code">javax.websocket.Session</code></a></span></dt><dt><span class="section"><a href="#d0e975">6.3. Sending Messages</a></span></dt><dt><span class="section"><a href="#d0e1007">6.4. RemoteEndpoint</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1021">6.4.1. <code class="code">javax.websocket.RemoteEndpoint.Basic</code></a></span></dt><dt><span class="section"><a href="#d0e1045">6.4.2. <code class="code">javax.websocket.RemoteEndpoint.Async</code></a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e870"></a>6.1.&nbsp;Endpoint Lifecycle</h2></div></div></div><p>
+                As mentioned before, the endpoint in Java API for WebSocket is represented either by instance of <code class="code">javax.websocket.Endpoint</code>,
+                or by class annotated with either <code class="code">javax.websocket.server.ServerEndpoint</code> or
+                <code class="code">javax.websocket.ClientEndpoint</code>. Unless otherwise defined by developer provided configurator
+                (defined in instance of <code class="code">javax.websocket.server.ServerEndpointConfig</code> or
+                <code class="code">javax.websocket.ClientEndpointConfig</code>, Tyrus uses one endpoint instance per VM per connected
+                peer. Therefore one endpoint instance typically handles connections from one peer.
+            </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e890"></a>6.2.&nbsp;<code class="code">javax.websocket.Session</code></h2></div></div></div><p>
+                The sequence of interactions between an endpoint instance and remote peer is in Java API for WebSocket modelled by
+                <code class="code">javax.websocket.Session</code> instance. This interaction starts by mandatory open notification,
+                continues by 0 - n websocket messages and is finished by mandatory closing notification.
+            </p><p>
+                The <code class="code">javax.websocket.Session</code> instance is passed by Tyrus to the user in the following methods
+                for programmatic endpoints:
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: opencircle; "><li class="listitem" style="list-style-type: circle"><p>
+                            <code class="code">public void onOpen(Session session, EndpointConfig config)</code>
+                        </p></li><li class="listitem" style="list-style-type: circle"><p>
+                            <code class="code">public void onClose(Session session, CloseReason closeReason)</code>
+                        </p></li><li class="listitem" style="list-style-type: circle"><p>
+                            <code class="code">public void onError(Session session, Throwable thr)</code>
+                        </p></li></ul></div><p>
+            </p><p>
+                The <code class="code">javax.websocket.Session</code> instance is passed by Tyrus to the user in the methods
+                annotated by following annotations for annotated endpoints:
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: opencircle; "><li class="listitem" style="list-style-type: circle"><p>
+                            method annotated with <code class="code">javax.websocket.OnOpen</code>
+                        </p></li><li class="listitem" style="list-style-type: circle"><p>
+                            method annotated with <code class="code">javax.websocket.OnMessage</code>
+                        </p></li><li class="listitem" style="list-style-type: circle"><p>
+                            method annotated with <code class="code">javax.websocket.OnClose</code>
+                        </p></li><li class="listitem" style="list-style-type: circle"><p>
+                            method annotated with <code class="code">javax.websocket.OnError</code>
+                        </p></li></ul></div><p>
+                In each of the methods annotated with the preceeding annotations the user may use parameter of type
+                <code class="code">javax.websocket.Session</code>. In the following example the developer wants to send a message in
+                the method annotated with <code class="code">javax.websocket.OnOpen</code>. As we will demonstrate later, the developer
+                needs the session instance to do so. According to Java API for WebSocket Session is one of the allowed parameters in
+                methods annotated with  <code class="code">javax.websocket.OnOpen</code>. Once the annotated method gets called,
+                Tyrus passes in the correct instance of <code class="code">javax.websocket.Session</code>.
+            </p><p>
+                </p><div class="example"><a name="lifecycle-echo-sample"></a><p class="title"><b>Example&nbsp;6.1.&nbsp;Lifecycle echo sample</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint("/echo")
+public class EchoEndpoint {
+
+    @OnOpen
+    public void onOpen(Session session) throws IOException {
+        session.getBasicRemote().sendText("onOpen");
+    }
+
+    @OnMessage
+    public String echo(String message) {
+        return message;
+    }
+
+    @OnError
+    public void onError(Throwable t) {
+        t.printStackTrace();
+    }
+}</pre></div></div><p><br class="example-break">
+            </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e975"></a>6.3.&nbsp;Sending Messages</h2></div></div></div><p>
+                Generally there are two ways how to send message to the peer endpoint. First one is usable for annotated
+                endpoints only. The user may send the message by returning the message content from the method annotated
+                with <code class="code">javax.websocket.OnMessage</code>. In the following example the message m is sent back to the
+                remote endpoint.
+            </p><p>
+                </p><div class="example"><a name="lifecycle-onmessage-sample"></a><p class="title"><b>Example&nbsp;6.2.&nbsp;Sending message in @OnMessage</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@OnMessage
+public String echo(String m) {
+    return m;                                                                                                                             &nbsp;&nbsp;
+}</pre></div></div><p><br class="example-break">
+            </p><p>
+            The other option how to send a message is to obtain the <code class="code">javax.websocket.RemoteEndpoint</code> instance
+            via the <code class="code">javax.websocket.Session</code> instance. See the following example:
+        </p><p>
+            </p><div class="example"><a name="lifecycle-remote-endpoint-sample"></a><p class="title"><b>Example&nbsp;6.3.&nbsp;Sending message via RemoteEndpoint.Basic instance</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@OnMessage
+public void echo(String message, Session session) {
+    session.getBasicRemote().sendText(message);
+}</pre></div></div><p><br class="example-break">
+        </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1007"></a>6.4.&nbsp;RemoteEndpoint</h2></div></div></div><p>
+            The interface <code class="code">javax.websocket.RemoteEndpoint</code>, part of Java API for WebSocket, is designed to represent the
+            other end of the communication (related to the endpoint), so the developer uses it to send the message.
+            There are two basic interfaces the user may use - <code class="code">javax.websocket.RemoteEndpoint$Basic</code> and
+            <code class="code">javax.websocket.RemoteEndpoint$Async</code>.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1021"></a>6.4.1.&nbsp;<code class="code">javax.websocket.RemoteEndpoint.Basic</code></h3></div></div></div><p>
+                This representation of the peer of a web socket conversation is used to send synchronous messages. The point
+                of completion of the send is defined when all the supplied data has been written to the underlying connection.
+                The methods for sending messages on the
+                <code class="code">javax.websocket.RemoteEndpoint$Basic</code> block until this point of completion is reached, except for
+                <code class="code">javax.websocket.RemoteEndpoint$Basic#getSendStream()</code> and
+                <code class="code">javax.websocket.RemoteEndpoint$Basic#getSendWriter()</code> which present traditional blocking I/O streams
+                to write messages. See the example
+                <a class="link" href="#lifecycle-remote-endpoint-sample" title="Example&nbsp;6.3.&nbsp;Sending message via RemoteEndpoint.Basic instance">"Sending message via RemoteEndpoint.Basic instance"</a>
+                to see how the whole text message is send. The following example demonstrates a method which sends the
+                partial text method to the peer:
+                </p><div class="example"><a name="lifecycle-remote-endpoint-partial-sample"></a><p class="title"><b>Example&nbsp;6.4.&nbsp;Method for sending partial text message</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public void sendPartialTextMessage(String message, Boolean isLast, Session session){
+    try {
+        session.getBasicRemote().sendText(message, isLast);
+    } catch (IOException e) {
+        e.printStackTrace();
+    }
+}</pre></div></div><p><br class="example-break">
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1045"></a>6.4.2.&nbsp;<code class="code">javax.websocket.RemoteEndpoint.Async</code></h3></div></div></div><p>
+                This representation of the peer of a web socket conversation has the ability to send messages
+                asynchronously. The point of completion of the send is defined when all the supplied data has been
+                written to the underlying connection. The completion handlers for the asynchronous methods are always
+                called with a different thread from that which initiated the send.
+                </p><div class="example"><a name="lifecycle-remote-endpoint-async-future"></a><p class="title"><b>Example&nbsp;6.5.&nbsp;Sending mesage the async way using Future</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public void sendWholeAsyncMessage(String message, Session session){
+    Future&lt;Void&gt; future = session.getAsyncRemote().sendText(message);
+}</pre></div></div><p><br class="example-break">
+            </p></div></div></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="injection"></a>Chapter&nbsp;7.&nbsp;Injection Support</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="#d0e1075">7.1. <code class="code">javax.inject.Inject</code> sample</a></span></dt><dt><span class="section"><a href="#d0e1102">7.2. EJB sample</a></span></dt></dl></div><p>
+        As required in Java API for WebSocket, Tyrus supports full field, method and constructor injection using <code class="code">javax.inject.Inject</code>
+        into all websocket endpoint classes as well as the use of the interceptors on these classes.
+        Except this,  Tyrus also supports some of the EJB annotations. Currently <code class="code">javax.ejb.Stateful</code>,
+        <code class="code">javax.ejb.Singleton</code> and <code class="code">javax.ejb.Stateless</code> annotations are supported.
+    </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1075"></a>7.1.&nbsp;<code class="code">javax.inject.Inject</code> sample</h2></div></div></div><p>
+            The following example presents how to inject a bean to the <code class="code">javax.websocket.server.ServerEndpoint</code>
+            annotated class using <code class="code">javax.inject.Inject</code>. Class <code class="code">InjectedSimpleBean</code> gets injected
+            into class <code class="code">SimpleEndpoint</code> on line 15.
+            </p><div class="example"><a name="cdi-simple-bean"></a><p class="title"><b>Example&nbsp;7.1.&nbsp;Injecting bean into <code class="code">javax.websocket.server.ServerEndpoint</code></b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class InjectedSimpleBean {
+
+    private static final String TEXT = " (from your server)";
+
+    public String getText() {
+        return TEXT;
+    }
+}
+
+@ServerEndpoint(value = "/simple")
+public class SimpleEndpoint {
+
+    private boolean postConstructCalled = false;
+
+    @Inject
+    InjectedSimpleBean bean;
+
+    @OnMessage
+    public String echo(String message) {
+        return String.format("%s%s", message, bean.getText());
+    }
+}</pre></div></div><p><br class="example-break">
+        </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1102"></a>7.2.&nbsp;EJB sample</h2></div></div></div><p>
+            The following sample presents how to turn <code class="code">javax.websocket.server.ServerEndpoint</code> annotated class
+            into <code class="code">javax.ejb.Singleton</code> and use interceptor on it.
+            </p><div class="example"><a name="cdi-singleton-bean"></a><p class="title"><b>Example&nbsp;7.2.&nbsp;Echo sample server endpoint.</b></p><div class="example-contents"><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@ServerEndpoint(value = "/singleton")
+@Singleton
+@Interceptors(LoggingInterceptor.class)
+public class SingletonEndpoint {
+
+    int counter = 0;
+    public static boolean interceptorCalled = false;
+
+    @OnMessage
+    public String echo(String message) {
+        return interceptorCalled ? String.format("%s%s", message, counter++) : "LoggingInterceptor not called.";
+    }
+}
+
+public class LoggingInterceptor {
+
+    @AroundInvoke
+    public Object manageTransaction(InvocationContext ctx) throws Exception {
+        SingletonEndpoint.interceptorCalled = true;
+        Logger.getLogger(getClass().getName()).info("LOGGING.");
+        return ctx.proceed();
+    }
+}
+</pre></div></div><p><br class="example-break">
+        </p></div></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="tyrus-proprietary-config"></a>Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="#d0e1128">8.1. Client-side SSL configuration</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1149">8.1.1. Host verification</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1171">8.2. Asynchronous connectToServer methods</a></span></dt><dt><span class="section"><a href="#d0e1184">8.3. Optimized broadcast</a></span></dt><dt><span class="section"><a href="#d0e1197">8.4. Incoming buffer size</a></span></dt><dt><span class="section"><a href="#d0e1215">8.5. Shared client container</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1237">8.5.1. Custom masking key generator</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1258">8.6. WebSocket Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1283">8.6.1. ExtendedExtension sample</a></span></dt><dt><span class="section"><a href="#d0e1304">8.6.2. Per Message Deflate Extension</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1311">8.7. Client reconnect</a></span></dt><dt><span class="section"><a href="#d0e1323">8.8. Client behind proxy</a></span></dt><dt><span class="section"><a href="#d0e1331">8.9. JDK 7 client</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1353">8.9.1. SSL configuration</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1373">8.10. Tracing support</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1381">8.10.1. Configuration</a></span></dt><dt><span class="section"><a href="#d0e1447">8.10.2. Tracing Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1475">8.11. Client handshake request and response logging</a></span></dt><dt><span class="section"><a href="#d0e1483">8.12. JMX Monitoring</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1557">8.12.1. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1574">8.13. Maximal number of open sessions on server-side</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1593">8.13.1. Maximal number of open sessions per application</a></span></dt><dt><span class="section"><a href="#d0e1615">8.13.2. Maximal number of open sessions per remote address</a></span></dt><dt><span class="section"><a href="#d0e1643">8.13.3. Maximal number of open sessions per endpoint</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1658">8.14. Client HTTP Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1683">8.14.1. Credentials</a></span></dt><dt><span class="section"><a href="#d0e1691">8.14.2. Auth Configuration</a></span></dt><dt><span class="section"><a href="#d0e1709">8.14.3. User defined authenticator</a></span></dt><dt><span class="section"><a href="#d0e1736">8.14.4. Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1774">8.15. Client HTTP Redirect</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1791">8.15.1. Supported HTTP response codes</a></span></dt><dt><span class="section"><a href="#d0e1816">8.15.2. Configuration</a></span></dt><dt><span class="section"><a href="#d0e1848">8.15.3. Exception handling</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1885">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="#d0e1906">8.16.1. Configuration</a></span></dt></dl></dd></dl></div><p>Following settings do have influence on Tyrus behaviour and are <span class="emphasis"><em>NOT</em></span> part of WebSocket
+    specification. If you are using following configurable options, your application might not be easily transferable to
+    other WebSocket API implementation.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1128"></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/1.20/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
+            allowing more control of host verification during the SSL handshake. For more details
+            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/1.20/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, "...");
+System.getProperties().put(SSLContextConfigurator.TRUST_STORE_FILE, "...");
+System.getProperties().put(SSLContextConfigurator.KEY_STORE_PASSWORD, "...");
+System.getProperties().put(SSLContextConfigurator.TRUST_STORE_PASSWORD, "...");
+final SSLContextConfigurator defaultConfig = new SSLContextConfigurator();
+
+defaultConfig.retrieve(System.getProperties());
+    // or setup SSLContextConfigurator using its API.
+
+SSLEngineConfigurator sslEngineConfigurator =
+    new SSLEngineConfigurator(defaultConfig, true, false, false);
+client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR,
+    sslEngineConfigurator);
+client.connectToServer(... , ClientEndpointConfig.Builder.create().build(),
+    new URI("wss://localhost:8181/sample-echo/echo"));
+}</pre><p>
+            If there seems to be a problem with Tyrus SSL connection, it is strongly recommended to use -Djavax.net.debug=all
+            system property as it provides invaluable information for troubleshooting.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1149"></a>8.1.1.&nbsp;Host verification</h3></div></div></div><p>
+                One of the key steps when establishing SSL connections is verifying that the host on the certificate
+                sent by the server matches the host Tyrus client tries to connect to and thus preventing a possibility of
+                a man-in-the-middle attack. Host verification is turned on by default in Tyrus, which means that Tyrus
+                will automatically check that the host provided in the URI in
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">client.connectToServer(... , new URI("wss://target-server:8181/application/endpoint"));
+                </pre><p> matches exactly the host the certificate has been issued for. Exact match is
+                the key word in the previous sentence as host can be either hostname or IP address and those two cannot be used
+                interchangeably. For instance when a certificate has been issued for "localhost", establishing an SSL connection
+                to "wss://127.0.0.1:8181/application/endpoint" will fail as the host does not match the one in the certificate.
+            </p><p>
+                The default host verification can be too restrictive for some cases and therefore Tyrus provides users
+                with means to to either disable the host verification (highly unrecommended in production) or to implement
+                their own host verifier. Providing custom host verifier will disable the default one. It is also important
+                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/1.20/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)
+client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
+                </pre><p>
+                The following sample shows how to register a custom host verifier:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(new SslContextConfigurator());
+sslEngineConfigurator.setHostnameVerifier(new HostnameVerifier() {
+    @Override
+    public boolean verify(String host, SSLSession sslSession) {
+        Certificate certificate = sslSession.getPeerCertificates()[0];
+        // validate the host in the certificate
+    }
+});
+client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
+                </pre><p>
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1171"></a>8.2.&nbsp;Asynchronous connectToServer methods</h2></div></div></div><p>WebSocketContainer.connectToServer(...) methods are by definition blocking - declared exceptions needs to
+        be thrown after connection attempt is made and it returns Session instance, which needs to be ready for sending
+        messages and invoking other methods, which require already established connection.</p><p>Existing connectToServer methods are fine for lots of uses, but it might cause issue when you are designing
+        application with highly responsible user interface. Tyrus introduces asynchronous variants to each connectToServer
+        method (prefixed with "async"), which returns Future&lt;Session&gt;. These methods do only simple check for provided
+        URL and the rest is executed in separate thread. All exceptions thrown during this phase are reported as cause
+        of ExecutionException thrown when calling Future&lt;Session&gt;.get().</p><p>Asynchronous connect methods are declared on Tyrus implementation of WebSocketContainer called ClientManager.</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ClientManager client = ClientManager.createClient();
+  final Future&lt;Session&gt; future = client.asyncConnectToServer(ClientEndpoint.class, URI.create("..."));
+  try {
+    future.get();
+  } catch (...) {
+}</pre><p>ClientManager contains async alternative to each connectToServer method.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1184"></a>8.3.&nbsp;Optimized broadcast</h2></div></div></div><p>One of the typical usecases we've seen so far for WebSocket server-side endpoints is broadcasting messages
+        to all connected clients, something like:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@OnMessage
+public void onMessage(Session session, String message) throws IOException {
+  for (Session s : session.getOpenSessions()) {
+    s.getBasicRemote().sendText(message);
+  }
+}</pre><p>Executing this code might cause serious load increase on your application server. Tyrus provides optimized
+        broadcast implementation, which takes advantage of the fact, that we are sending exactly same message to all clients,
+        so dataframe can be created and serialized only once. Furthermore, Tyrus can iterate over set of opened connections
+        faster than Session.getOpenSession().</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">@OnMessage
+public void onMessage(Session session, String message) {
+  ((TyrusSession) session).broadcast(message);
+}</pre><p>Unfortunately, WebSocket API forbids anything else than Session in @OnMessage annotated method parameter,
+        so you cannot use TyrusSession there directly and you might need to perform instanceof check.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1197"></a>8.4.&nbsp;Incoming buffer size</h2></div></div></div><p>Sevlet container buffers incoming WebSocket frames and there must be a size limit to precede OutOfMemory
+        Exception and potentially DDoS attacks.</p><p>Configuration property is named <code class="code">"org.glassfish.tyrus.servlet.incoming-buffer-size"</code> and you can
+        set it in web.xml (this particular snipped sets the buffer size to 17000000 bytes (~16M payload):</p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    ">&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+
+  &lt;context-param&gt;
+    &lt;param-name&gt;org.glassfish.tyrus.servlet.incoming-buffer-size&lt;/param-name&gt;
+    &lt;param-value&gt;17000000&lt;/param-value&gt;
+  &lt;/context-param&gt;
+&lt;/web-app&gt;</pre><p>Default value is 4194315, which correspond to 4M plus few bytes to frame headers, so you should be able to
+        receive up to 4M long message without the need to care about this property.</p><p>Same issue is present on client side. There you can set this property via ClientManager:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ClientManager client = ClientManager.createClient();
+client.getProperties().put("org.glassfish.tyrus.incomingBufferSize", 6000000); // sets the incoming buffer size to 6000000 bytes.
+client.connectToServer( ... )</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1215"></a>8.5.&nbsp;Shared client container</h2></div></div></div><p>By default, WebSocket client implementation in Tyrus re-creates client runtime whenever WebSocketContainer#connectToServer
+            is invoked. This approach gives us some perks like out-of-the-box isolation and relatively low thread count
+            (currently we have 1 selector thread and 2 worker threads). Also it gives you the ability to stop the client
+            runtime &#8211; one Session instance is tied to exactly one client runtime, so we can stop it when Session is closed.
+            This seems as a good solution for most of WebSocket client use cases &#8211; you usually use java client from
+            application which uses it for communicating with server side and you typically don&#8217;t need more than 10 instances
+            (my personal estimate is that more than 90% applications won&#8217;t use more than 1 connection). There are several
+            reasons for it &#8211; of it is just a client, it needs to preserve server resources &#8211; one WebSocket connection means
+            one TCP connection and we don&#8217;t really want clients to consume more than needed. Previous statement may be
+            invalidated by WebSocket multiplexing extension, but for now, it is still valid.</p><p>On the other hand, WebSocket client implementations in some other containers took another (also correct)
+            approach &#8211; they share client runtime for creating all client connections. That means they might not have this
+            strict one session one runtime policy, they cannot really give user way how he to control system resources,
+            but surely it has another advantage &#8211; it can handle much more opened connections. Thread pools are share among
+            client sessions which may or may not have some unforeseen consequences, but if its implemented correctly, it
+            should outperform Tyrus solution mentioned in previous paragraph in some use cases, like the one mentioned
+            in <a class="link" href="https://java.net/jira/browse/TYRUS-275" target="_top">TYRUS-275</a> - performance tests. Reporter
+            created simple program which used WebSocket API to create clients and connect to remote endpoint and he measured
+            how many clients can he create (or in other words: how many parallel client connections can be created; I guess
+            that original test case is to measure possible number of concurrent clients on server side, but that does not
+            really matter for this post). Tyrus implementation loose compared to some other and it was exactly because it
+            did not have shared client runtime capability.</p><p>How can you use this feature?</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ClientManager client = ClientManager.createClient();
+
+client.getProperties().put(ClientProperties.SHARED_CONTAINER, true);</pre><p>You might also want to specify container idle timeout:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">client.getProperties().put(ClientProperties.SHARED_CONTAINER_IDLE_TIMEOUT, 5);</pre><p>Last but not least, you might want to specify thread pool sizes used by shared container (please use this feature only when you do know what are you doing. Grizzly by default does not limit max number of used threads,
+            so if you do that, please make sure thread pool size fits your purpose). Even though the default unlimited thread pool size is sufficient for the vast majority of client usages, it is also important ot note that
+            if the max. thread pool size is not specified and the clients which share the thread pool receive a large number of messages at the same moment, a new thread can be created for each of the received messages
+            which might demand large amount of system resources and might even lead to a program failure if the required resources are not available. Therefore for particularly busy clients setting the max thread pool
+            size can be only recommended. The following example shows how to set the maximal thread poll size.</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">client.getProperties().put(GrizzlyClientProperties.SELECTOR_THREAD_POOL_CONFIG, ThreadPoolConfig.defaultConfig().setMaxPoolSize(3));
+client.getProperties().put(GrizzlyClientProperties.WORKER_THREAD_POOL_CONFIG, ThreadPoolConfig.defaultConfig().setMaxPoolSize(10));</pre><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1237"></a>8.5.1.&nbsp;Custom masking key generator</h3></div></div></div><p>
+                As a security measure, all frames originating on a websocket client have to be masked with a random 4B value, which must be generated for each frame.
+                Moreover to fully comply with the security requirements of RFC 6455, a masking key of a frame must not be predictable from masking keys of previous frames
+                and therefore Tyrus uses <code class="code">java.security.SecureRandom</code> as a default masking key generator. While this is perfectly OK for most Tyrus client use cases,
+                usage of <code class="code">java.security.SecureRandom</code> might prove to be a performance issue, when the client is used for instance for highly parallel stress testing,
+                as it uses a synchronized singleton as a random entropy provider in its internals.
+            </p><p>
+                To overcome the limitations mentioned above, Tyrus allows replacing the default <code class="code">java.security.SecureRandom</code> with more scalable masking key generator.
+                Please, be aware that there might be security implications if you decide not to use a cryptographically secure random number generator
+                in production like the one in the following sample. Moreover the supplied random number generator should be also thread safe.
+                The following example shows, how a custom masking key generator can be configured:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ClientManager client = ClientManager.createClient();
+client.getProperties().put(ClientProperties.MASKING_KEY_GENERATOR, new MaskingKeyGenerator() {
+
+    private final Random random = new Random();
+
+    @Override
+    public int nextInt() {
+        return random.nextInt();
+    }
+});</pre><p>
+            </p><p>
+                It is also important to note that the scalability issue connected to the default masking key generator is not limited to the shared container client configuration,
+                but it is discussed in this section as it is assumed that shared container is used for highly parallel clients handling a lot of traffic, where the method
+                of masking key generation starts to matter.
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1258"></a>8.6.&nbsp;WebSocket Extensions</h2></div></div></div><p>Please note that Extensions support is considered to be experimental and any API can be changed anytime. Also,
+        you should ask yourself at least twice whether you don't want to achieve your goal by other means - WebSocket
+        Extension is very powerful and can easily break your application when not used with care or enough expertise.
+        </p><p>WebSocket frame used in ExtendedExtension:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class Frame {
+
+    public boolean isFin() { .. }
+    public boolean isRsv1() { .. }
+    public boolean isRsv2() { .. }
+    public boolean isRsv3() { .. }
+    public boolean isMask() { .. }
+    public byte getOpcode() { .. }
+    public long getPayloadLength() { .. }
+    public int getMaskingKey() { .. }
+    public byte[] getPayloadData() { .. }
+    public boolean isControlFrame() { .. }
+
+    public static Builder builder() { .. }
+    public static Builder builder(Frame frame) { .. }
+
+    public final static class Builder {
+
+    public Builder() { .. }
+    public Builder(Frame frame) { .. }
+    public Frame build() { .. }
+    public Builder fin(boolean fin) { .. }
+    public Builder rsv1(boolean rsv1) { .. }
+    public Builder rsv2(boolean rsv2) { .. }
+    public Builder rsv3(boolean rsv3) { .. }
+    public Builder mask(boolean mask) { .. }
+    public Builder opcode(byte opcode) { .. }
+    public Builder payloadLength(long payloadLength) { .. }
+    public Builder maskingKey(int maskingKey) { .. }
+    public Builder payloadData(byte[] payloadData) { .. }
+}</pre><p>Frame is immutable, so if you want to create new one, you need to create new builder, modify what you want
+        and build it:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">Frame newFrame = Frame.builder(originalFrame).rsv1(true).build();</pre><p>Note that there is only one convenience method: isControlFrame. Other information about frame type etc needs
+            to be evaluated directly from opcode, simply because there might not be enough information to get the correct
+            outcome or the information itself would not be very useful. For example: opcode 0&times;00 means continuation frame,
+            but you don&#8217;t have any chance to get the information about actual type (text or binary) without intercepting
+            data from previous frames. Consider Frame class as raw representation as possible. isControlFrame() can be also
+            gathered from opcode, but it is at least always deterministic and it will be used by most of extension
+            implementations. It is not usual to modify control frames as it might end with half closed connections or
+            unanswered ping messages.</p><p>ExtendedExtension representation needs to be able to handle extension parameter negotiation and actual processing
+        of incoming and outgoing frames. It also should be compatible with existing javax.websocket.Extension class, since we
+        want to re-use existing registration API and be able to return new extension instance included in response
+        from List&lt;Extension&gt; Session.getNegotiatedExtensions() call. Consider following:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public interface ExtendedExtension extends Extension {
+
+    Frame processIncoming(ExtensionContext context, Frame frame);
+    Frame processOutgoing(ExtensionContext context, Frame frame);
+
+    List onExtensionNegotiation(ExtensionContext context, List requestedParameters);
+    void onHandshakeResponse(ExtensionContext context, List responseParameters);
+
+    void destroy(ExtensionContext context);
+
+    interface ExtensionContext {
+
+        Map&lt;String, Object&gt; getProperties();
+    }
+}</pre><p>ExtendedExtension is capable of processing frames and influence parameter values during the handshake.
+            Extension is used on both client and server side and since the negotiation is only place where this fact
+            applies, we needed to somehow differentiate these sides. On server side, only onExtensionNegotiation(..)
+            method is invoked and on client side onHandshakeResponse(..). Server side method is a must, client side could
+            be somehow solved by implementing ClientEndpointConfig.Configurator#afterResponse(..) or calling
+            Session.getNegotiatedExtenions(), but it won&#8217;t be as easy to get this information back to extension instance
+            and even if it was, it won&#8217;t be very elegant. Also, you might suggest replacing processIncoming and
+            processOutgoing methods by just oneprocess(Frame) method. That is also possible, but then you might have to
+            assume current direction from frame instance or somehow from ExtensionContext, which is generally not a bad
+            idea, but it resulted it slightly less readable code.</p><p>ExtensionContext and related lifecycle method is there because original javax.websocket.Extension is singleton
+        and ExtendedExtension must obey this fact. But it does not meet some requirements we stated previously, like per
+        connection parameter negotiation and of course processing itself will most likely have some connection state.
+        Lifecycle of ExtensionContext is defined as follows: ExtensionContext instance is created right before onExtensionNegotiation
+        (server side) or onHandshakeResponse (client side) and destroyed after destroy method invocation. Obviously, processIncoming
+        or processOutgoing cannot be called before ExtensionContext is created or after is destroyed. You can think of handshake
+        related methods as @OnOpenand destroy as @OnClose.</p><p>For those more familiar with WebSocket protocol: process*(ExtensionContext, Frame) is always invoked with unmasked
+        frame, you don&#8217;t need to care about it. On the other side, payload is as it was received from the wire, before any
+            validation (UTF-8 check for text messages). This fact is particularly important when you are modifying text
+            message content, you need to make sure it is properly encoded in relation to other messages, because encoding/decoding
+            process is stateful &#8211; remainder after UTF-8 coding is used as input to coding process for next message. If you
+            want just test this feature and save yourself some headaches, don&#8217;t modify text message content or try binary
+            messages instead.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1283"></a>8.6.1.&nbsp;ExtendedExtension sample</h3></div></div></div><p>Let&#8217;s say we want to create extension which will encrypt and decrypt first byte of every binary message. Assume we have a key (one byte) and our symmetrical cipher will be XOR. (Just for simplicity (a XOR key XOR key) = a, so encrypt() and decrypt() functions are the same).</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class CryptoExtension implements ExtendedExtension {
+
+    @Override
+    public Frame processIncoming(ExtensionContext context, Frame frame) {
+         return lameCrypt(context, frame);
+    }
+
+    @Override
+    public Frame processOutgoing(ExtensionContext context, Frame frame) {
+        return lameCrypt(context, frame);
+    }
+
+    private Frame lameCrypt(ExtensionContext context, Frame frame) {
+        if(!frame.isControlFrame() &amp;&amp; (frame.getOpcode() == 0x02)) {
+            final byte[] payloadData = frame.getPayloadData();
+            payloadData[0] ^= (Byte)(context.getProperties().get("key"));
+
+            return Frame.builder(frame).payloadData(payloadData).build();
+        } else {
+            return frame;
+        }
+    }
+
+    @Override
+    public List onExtensionNegotiation(ExtensionContext context,
+                                       List requestedParameters) {
+        init(context);
+        // no params.
+        return null;
+    }
+
+    @Override
+    public void onHandshakeResponse(ExtensionContext context,
+    List responseParameters) {
+        init(context);
+    }
+
+    private void init(ExtensionContext context) {
+        context.getProperties().put("key", (byte)0x55);
+    }
+
+    @Override
+    public void destroy(ExtensionContext context) {
+        context.getProperties().clear();
+    }
+
+    @Override
+    public String getName() {
+        return "lame-crypto-extension";
+    }
+
+    @Override
+    public List getParameters() {
+        // no params.
+        return null;
+    }
+}</pre><p>You can see that ExtendedExtension is slightly more complicated that original Extension so the implementation
+            has to be also not as straightforward.. on the other hand, it does something. Sample code above shows possible
+            simplification mentioned earlier (one process method will be enough), but please take this as just sample
+            implementation. Real world case is usually more complicated.</p><p>Now when we have our CryptoExtension implemented, we want to use it. There is nothing new compared to standard
+            WebSocket Java API, feel free to skip this part if you are already familiar with it. Only programmatic version
+            will be demonstrated. It is possible to do it for annotated version as well, but it is little bit more complicated
+            on the server side and I want to keep the code as compact as possible.</p><p>Client registration</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ArrayList extensions = new ArrayList();
+extensions.add(new CryptoExtension());
+
+final ClientEndpointConfig clientConfiguration =
+    ClientEndpointConfig.Builder.create()
+    .extensions(extensions).build();
+
+WebSocketContainer client = ContainerProvider.getWebSocketContainer();
+final Session session = client.connectToServer(new Endpoint() {
+    @Override
+    public void onOpen(Session session, EndpointConfig config) {
+        // ...
+    }
+}, clientConfiguration, URI.create(/* ... */));</pre><p>Server registration:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">public class CryptoExtensionApplicationConfig implements ServerApplicationConfig {
+
+    @Override
+    public Set getEndpointConfigs(Set&lt;Class&lt;? extends Endpoint&gt;&gt; endpointClasses) {
+        Set endpointConfigs = new HashSet();
+        endpointConfigs.add(
+            ServerEndpointConfig.Builder.create(EchoEndpoint.class, "/echo")
+            .extensions(Arrays.asList(new CryptoExtension())).build()
+        );
+        return endpointConfigs;
+    }
+
+    @Override
+    public Set&lt;Class&lt;?&gt;&gt; getAnnotatedEndpointClasses(Set&lt;Class&lt;?&gt;&gt; scanned) {
+        // all scanned endpoints will be used.
+        return scanned;
+    }
+}
+
+public class EchoEndpoint extends Endpoint {
+    @Override
+    public void onOpen(Session session, EndpointConfig config) {
+        // ...
+    }
+}</pre><p>CryptoExtensionApplicationConfig will be found by servlets scanning mechanism and automatically used for
+                application configuration, no need to add anything (or even have) web.xml.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1304"></a>8.6.2.&nbsp;Per Message Deflate Extension</h3></div></div></div><p>The original goal of whole extension support was to implement Permessage extension as defined in
+                draft-ietf-hybi-permessage-compression-15 and we were able to achieve that goal. Well, not completely, current
+                implementation ignores parameters. But it seems like it does not matter much, it was tested with Chrome and it
+                works fine. Also it passes newest version of Autobahn test suite, which includes tests for this extension.</p><p>see PerMessageDeflateExtension.java (compatible with draft-ietf-hybi-permessage-compression-15, autobahn test suite) and
+                XWebKitDeflateExtension.java (compatible with Chrome and Firefox &#8211; same as previous, just different extension name)
+                </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1311"></a>8.7.&nbsp;Client reconnect</h2></div></div></div><p>If you need semi-persistent client connection, you can always implement some reconnect logic by yourself,
+        but Tyrus Client offers useful feature which should be much easier to use. See short sample code:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">ClientManager client = ClientManager.createClient();
+ClientManager.ReconnectHandler reconnectHandler = new ClientManager.ReconnectHandler() {
+
+  private int counter = 0;
+
+  @Override
+  public boolean onDisconnect(CloseReason closeReason) {
+    counter++;
+    if (counter &lt;= 3) {
+      System.out.println("### Reconnecting... (reconnect count: " + counter + ")");
+      return true;
+    } else {
+      return false;
+    }
+  }
+
+  @Override
+  public boolean onConnectFailure(Exception exception) {
+    counter++;
+    if (counter &lt;= 3) {
+      System.out.println("### Reconnecting... (reconnect count: " + counter + ") " + exception.getMessage());
+
+      // Thread.sleep(...) or something other "sleep-like" expression can be put here - you might want
+      // to do it here to avoid potential DDoS when you don't limit number of reconnects.
+      return true;
+    } else {
+      return false;
+    }
+  }
+
+  @Override
+  public long getDelay() {
+    return 1;
+  }
+};
+
+client.getProperties().put(ClientProperties.RECONNECT_HANDLER, reconnectHandler);
+
+client.connectToServer(...)</pre><p>ReconnectHandler contains three methods, onDisconnect, onConnectFailure and getDelay. First will be executed
+        whenever @OnClose annotated method (or Endpoint.onClose(..)) is executed on client side - this should happen when
+        established connection is lost for any reason. You can find the reason in methods parameter. Other one, called
+        onConnectFailure is invoked when client fails to connect to remote endpoint, for example due to temporary network
+        issue or current high server load. Method getDelay is called after any of previous methods returns <code class="code">true</code>
+        and the returned value will be used to determine delay before next connection attempt. Default value is 5 seconds.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1323"></a>8.8.&nbsp;Client behind proxy</h2></div></div></div><p>
+            Tyrus client supports traversing proxies, but it is Tyrus specific feature and its configuration is shown
+            in the following code sample:
+            </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+ClientManager client = ClientManager.createClient();
+client.getProperties().put(ClientProperties.PROXY_URI, "http://my.proxy.com:80");
+            </pre><p>
+            Value is expected to be proxy URI. Protocol part is currently ignored, but must be present.
+        </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1331"></a>8.9.&nbsp;JDK 7 client</h2></div></div></div><p>
+            As has been said in previous chapters both Tyrus client and server were implemented on top of Grizzly NIO framework.
+            This still remains true, but an alternative Tyrus Websocket client implementation based on Java 7 Asynchronous Channel
+            API has been available since version 1.6. There are two options how to switch between client implementations.
+            If you do not mind using Tyrus specific API, the most straightforward way is to use:
+            </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+final ClientManager client = ClientManager.createClient(JdkClientContainer.class.getName());
+            </pre><p>
+            You just have to make sure that the dependency on JDK client is included in your project:
+            </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-container-jdk-client&lt;/artifactId&gt;
+  &lt;version&gt;1.20&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.
+        </p><p>
+            There is also an option how to use JDK client with the standard Websocket API.
+            </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+final WebSocketContainer client = ContainerProvider.getWebSocketContainer();
+            </pre><p>
+            The code listed above will scan class path for Websocket client implementations. A slight problem with this
+            approach is that if there is more than one client on the classpath, the first one discovered will be used.
+            Therefore if you intend to use JDK client with the standard API, you have to make sure that there is not
+            a Grizzly client on the classpath as it might be used instead.
+        </p><p>
+            The main reason why JDK client has been implemented is that it does not have any extra dependencies
+            except JDK 7 and of course some other Tyrus modules, which makes it considerable more lightweight compared
+            to Tyrus Grizzly client, which requires 1.4 MB of dependencies.
+        </p><p>
+            It is also important to note that the JDK client has been implemented in a way similar to Grizzly client
+            shared container option, which means that there is one thread pool shared among all clients.
+        </p><p>
+            Proxy configuration for JDK client is the same as for Grizzly client shown above.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1353"></a>8.9.1.&nbsp;SSL configuration</h3></div></div></div><p>
+                Alike in case of Grizzly client, accessing "wss" URLs will cause Tyrus client to pick up whatever keystore
+                and trust store is actually set for the current JVM instance. However, specifying SSL parameters
+                to be used with JDK client instance is little different from Grizzly client, because Grizzly client supports
+                both
+                <a class="link" href="https://grizzly.java.net/docs/2.3/apidocs/org/glassfish/grizzly/ssl/SSLEngineConfigurator.html" target="_top">SSLEngineConfigurator</a>
+                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/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
+                and
+                <a class="link" href="https://tyrus.java.net/apidocs/1.20/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;    ">
+SslContextConfigurator sslContextConfigurator = new SslContextConfigurator();
+sslContextConfigurator.setTrustStoreFile("...");
+sslContextConfigurator.setTrustStorePassword("...");
+sslContextConfigurator.setTrustStoreType("...");
+sslContextConfigurator.setKeyStoreFile("...");
+sslContextConfigurator.setKeyStorePassword("...");
+sslContextConfigurator.setKeyStoreType("...");
+SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(sslContextConfigurator, true, false, false);
+
+client.getProperties().put(ClientProperties.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
+                </pre><p>
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1373"></a>8.10.&nbsp;Tracing support</h2></div></div></div><p>
+            Apart from logging, Tyrus supports another useful means for debugging and diagnosing a deployed application which will
+            be referred to as tracing on the following lines. Tracing consists of including vital information about handshake
+            handling into a handshake response. The provided information includes among other things an insight into how Tyrus matches
+            handshake request URI against the URI of the deployed endpoints and how the best matching endpoint is selected.
+            The tracing information is included in a handshake response as a content of HTTP headers with
+            <code class="code">X-Tyrus-Tracing-</code> as the header names prefix.
+            All the tracing information will also be available in the server log if the appropriate logging level is set.
+            If it is still unclear, how Tyrus tracing works, please refer to the subsection with title Tracing Examples.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1381"></a>8.10.1.&nbsp;Configuration</h3></div></div></div><p>
+                Tracing support is disabled by default. You can enable it either "globally" for all application handshake requests
+                or selectively per handshake request. The tracing support activation is controlled by setting the
+                <code class="code">org.glassfish.tyrus.server.tracingType</code> configuration property. The property value is expected to be one of the following:
+
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>OFF - tracing support is disabled (default value).</p></li><li class="listitem"><p>ON_DEMAND - tracing support is in a stand-by mode; it is enabled selectively per handshake, via a special
+                            X-Tyrus-Tracing-Accept HTTP header in a handshake request.</p></li><li class="listitem"><p>ALL - tracing support is enabled for all handshake requests.</p></li></ul></div><p>
+
+                The level of detail of the information provided by Tyrus tracing facility - the tracing threshold - can be customized.
+                The tracing threshold can be set at the application level via <code class="code">org.glassfish.tyrus.server.tracingThreshold</code>
+                application configuration property in both Glassfish and Grizzly as will be shown in the following samples,
+                or at a request level, via X-Tyrus-Tracing-Threshold HTTP header in a handshake request. The request-level configuration
+                overrides any application level setting. There are 2 supported levels of detail for Tyrus tracing:
+
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>SUMMARY - very basic summary information about handshake processing</p></li><li class="listitem"><p>TRACE - detailed information about  handshake processing (default threshold value).</p></li></ul></div><p>
+            </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1411"></a>8.10.1.1.&nbsp;Global configuration examples</h4></div></div></div><p>
+                        As has been already said, tracing is disabled by default. The following code sample shows, how <code class="code">ON_DEMAND</code> tracing with
+                        level set to <code class="code">SUMMARY</code> can be enabled on Grizzly server:
+                        </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                            serverProperties.put(TyrusWebSocketEngine.TRACING_TYPE, ON_DEMAND);
+                            serverProperties.put(TyrusWebSocketEngine.TRACING_THRESHOLD, SUMMARY);
+                        </pre><p>
+                        Similarly <code class="code">ALL</code> tracing with level set to <code class="code">TRACE</code> (the default) can be enabled on Glassfish server in web.xml:
+                        </p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    ">&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+
+    &lt;context-param&gt;
+        &lt;param-name&gt;org.glassfish.tyrus.server.tracingType&lt;/param-name&gt;
+        &lt;param-value&gt;ALL&lt;/param-value&gt;
+    &lt;/context-param&gt;
+&lt;/web-app&gt;</pre><p>
+
+                        It has been also already mentioned that the tracing threshold configured on application level can be overridden per handshake request as
+                        will be shown in the following section.
+                    </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1434"></a>8.10.1.2.&nbsp;Configuring tracing via handshake request headers</h4></div></div></div><p>
+                    Whenever the tracing support is active (ON_DEMAND or ALL) you can customize the tracing behaviour by including one or more of the following request HTTP headers
+                    in the individual handshake requests:
+
+                    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>X-Tyrus-Tracing-Accept - used to enable the tracing support for the particular request. It is applied only when the application-level tracing support is configured to
+                                ON_DEMAND mode. The value of the header is not used by the Tyrus tracing facility and as such it can be any arbitrary (even empty) string.</p></li><li class="listitem"><p>X-Tyrus-Tracing-Threshold - used to override the tracing threshold. Allowed values are: SUMMARY, TRACE.</p></li></ul></div><p>
+                </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1447"></a>8.10.2.&nbsp;Tracing Examples</h3></div></div></div><p>
+                An example of a handshake request to a server in <code class="code">ON_DEMAND</code> tracing mode requesting <code class="code">SUMMARY</code> tracing information:
+                </p><pre class="screen">&nbsp;&nbsp;1 GET /endpoint/b HTTP/1.1
+&nbsp;&nbsp;2 Connection: Upgrade
+&nbsp;&nbsp;3 Host: localhost:8025
+&nbsp;&nbsp;4 Origin: localhost:8025
+&nbsp;&nbsp;5 Sec-WebSocket-Key: YrFldD8nhRW+6hJ2K/TMqw==
+&nbsp;&nbsp;6 Sec-WebSocket-Version: 13
+&nbsp;&nbsp;7 Upgrade: websocket
+&nbsp;&nbsp;8 X-Tyrus-Tracing-Accept: Whatever
+&nbsp;&nbsp;9 X-Tyrus-Tracing-Threshold: SUMMARY</pre><p>
+                An example of a possible response to the request above:
+                </p><pre class="screen">&nbsp;&nbsp;1 HTTP/1.1 404 Not found
+&nbsp;&nbsp;2 x-tyrus-tracing-00 : [0 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/{a}/b
+&nbsp;&nbsp;3 x-tyrus-tracing-01 : [0 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/{a}/b have different length
+&nbsp;&nbsp;4 x-tyrus-tracing-02 : [0 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/{a}/{b}
+&nbsp;&nbsp;5 x-tyrus-tracing-03 : [0 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/{a}/{b} have different length
+&nbsp;&nbsp;6 x-tyrus-tracing-04 : [0 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/a/b
+&nbsp;&nbsp;7 x-tyrus-tracing-05 : [1 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/a/b have different length
+&nbsp;&nbsp;8 x-tyrus-tracing-06 : [1 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/a/a
+&nbsp;&nbsp;9 x-tyrus-tracing-07 : [1 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/a/a have different length
+&nbsp;10 x-tyrus-tracing-08 : [1 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/a
+&nbsp;11 x-tyrus-tracing-09 : [1 ms] Segment "a" does not match
+&nbsp;12 x-tyrus-tracing-10 : [1 ms] Matching request URI /samples-debug/endpoint/b against /samples-debug/endpoint/a/{b}
+&nbsp;13 x-tyrus-tracing-11 : [1 ms] URIs /samples-debug/endpoint/b and /samples-debug/endpoint/a/{b} have different length
+&nbsp;14 x-tyrus-tracing-12 : [3 ms] Endpoints matched to the request URI: []</pre><p>
+                The time in the square brackets in the sample above is the time since the handshake request has been received.
+            </p><p>
+                An example of a possible handshake response from a server in <code class="code">ALL</code> tracing mode with tracing threshold set to <code class="code">TRACE</code>:
+                </p><pre class="screen">&nbsp;&nbsp;1 HTTP/1.1 101
+&nbsp;&nbsp;2 connection: Upgrade
+&nbsp;&nbsp;3 sec-websocket-accept: C8/QbF4Mx9sX31sihUcnI19yqto=
+&nbsp;&nbsp;4 upgrade: websocket
+&nbsp;&nbsp;5 x-tyrus-tracing-00 : [0 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/{a}/b
+&nbsp;&nbsp;6 x-tyrus-tracing-01 : [0 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/{a}/{b}
+&nbsp;&nbsp;7 x-tyrus-tracing-02 : [0 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/a/b
+&nbsp;&nbsp;8 x-tyrus-tracing-03 : [1 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/a/a
+&nbsp;&nbsp;9 x-tyrus-tracing-04 : [1 ms] Segment "a" does not match
+&nbsp;10 x-tyrus-tracing-05 : [1 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/a
+&nbsp;11 x-tyrus-tracing-06 : [1 ms] URIs /samples-debug/endpoint/a/b and /samples-debug/endpoint/a have different length
+&nbsp;12 x-tyrus-tracing-07 : [1 ms] Matching request URI /samples-debug/endpoint/a/b against /samples-debug/endpoint/a/{b}
+&nbsp;13 x-tyrus-tracing-08 : [3 ms] Choosing better match from /samples-debug/endpoint/{a}/b and /samples-debug/endpoint/a/b
+&nbsp;14 x-tyrus-tracing-09 : [3 ms] /samples-debug/endpoint/a/b is an exact match
+&nbsp;15 x-tyrus-tracing-10 : [3 ms] Choosing better match from /samples-debug/endpoint/a/{b} and /samples-debug/endpoint/{a}/b
+&nbsp;16 x-tyrus-tracing-11 : [3 ms] /samples-debug/endpoint/a/{b} is a  better match, because it has longer exact path
+&nbsp;17 x-tyrus-tracing-12 : [3 ms] Choosing better match from /samples-debug/endpoint/a/{b} and /samples-debug/endpoint/{a}/b
+&nbsp;18 x-tyrus-tracing-13 : [3 ms] /samples-debug/endpoint/a/{b} is a  better match, because it has longer exact path
+&nbsp;19 x-tyrus-tracing-14 : [3 ms] Choosing better match from /samples-debug/endpoint/a/{b} and /samples-debug/endpoint/a/b
+&nbsp;20 x-tyrus-tracing-15 : [3 ms] /samples-debug/endpoint/a/b is an exact match
+&nbsp;21 x-tyrus-tracing-16 : [3 ms] Choosing better match from /samples-debug/endpoint/{a}/{b} and /samples-debug/endpoint/a/{b}
+&nbsp;22 x-tyrus-tracing-17 : [4 ms] /samples-debug/endpoint/a/{b} is a  better match, because it has longer exact path
+&nbsp;23 x-tyrus-tracing-18 : [4 ms] Choosing better match from /samples-debug/endpoint/{a}/{b} and /samples-debug/endpoint/{a}/b
+&nbsp;24 x-tyrus-tracing-19 : [4 ms] /samples-debug/endpoint/{a}/b is a  better match, because /samples-debug/endpoint/{a}/{b} has more variables
+&nbsp;25 x-tyrus-tracing-20 : [4 ms] Endpoints matched to the request URI: [/samples-debug/endpoint/a/b, /samples-debug/endpoint/a/{b}, /samples-debug/endpoint/{a}/b, /samples-debug/endpoint/{a}/{b}]
+&nbsp;26 x-tyrus-tracing-21 : [4 ms] Endpoint selected as a match to the handshake URI: /samples-debug/endpoint/a/b </pre><p>
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1475"></a>8.11.&nbsp;Client handshake request and response logging</h2></div></div></div><p>
+            Tyrus client offers a possibility, how to enable printing of handshake requests and responses to standard output without having to configure Java logging,
+            which is essential when debugging a misbehaving websocket application. This feature is particularly useful with tracing enabled. The following sample shows,
+            how the handshake logging can be enabled:
+            </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                ClientManager client = ClientManager.createClient();
+                client.getProperties().put(ClientProperties.LOG_HTTP_UPGRADE, true);
+            </pre><p>
+        </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1483"></a>8.12.&nbsp;JMX Monitoring</h2></div></div></div><p>
+            Tyrus allows monitoring and accessing some runtime properties and metrics at the server side using JMX (Java management extension technology).
+            The monitoring API has been available since version 1.6 and the following properties are available at runtime
+            through MXBeans. Number of open sessions, maximal number of open session since the start of monitoring and
+            list of deployed endpoint class names and paths are available for each application. Endpoint class name and path
+            the endpoint is registered on, number of open session and maximal number of open sessions are available for each
+            endpoint. Apart from that message as well as error statistics are collected both per application and per individual endpoint.
+        </p><p>
+            The following message statistics are monitored for both sent and received messages:
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>messages count</p></li><li class="listitem"><p>messages count per second</p></li><li class="listitem"><p>average message size</p></li><li class="listitem"><p>smallest message size</p></li><li class="listitem"><p>largest message size</p></li></ul></div><p>
+            Moreover all of them are collected separately for text, binary and control messages and apart from the statistics being available
+            for the three separate categories, total numbers summing up statistics from the three types of messages are also available.
+        </p><p>
+            As has been already mentioned above, Tyrus also monitors errors on both application and endpoint level.
+            An error is identified by the Throwable class name that has been thrown. Statistics are collected about number of times each
+            Throwable has been thrown, so a list of errors together with a number of times each error occurred is available on both application and endpoint level.
+            The monitored errors correspond to invocation of @OnError method on an annotated endpoint or its equivalent on a programmatic endpoint
+            (The invocation of @OnError method is just an analogy and an error will be monitored even if no @OnError method is provided on the endpoint).
+            Errors that occur in @OnOpen, @OnClose methods and methods handling incoming messages are monitored. Errors that occurred during handshake
+            will not be among the monitored errors.
+        </p><p>
+            The collected metrics as well as the endpoint properties mentioned above are accessible at runtime through Tyrus MXBeans.
+            As has been already mention the information is available on both application and endpoint level with each application
+            or endpoint being represented with four MXBeans. One of those MXBeans contains total message statistics for both sent and received
+            messages as well as any properties specific for applications or endpoints such as endpoint path in the case of an endpoint.
+            The other three MXBeans contain information about sent and received text, binary and control messages.
+        </p><p>
+            When a user connects to a tyrus application MBean server using an JMX client such as JConsole, they will see
+            the following structure:
+            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+                        Application 1 - MXBean containing a list of deployed endpoint class names and paths, number of open sessions,
+                        maximal number of open sessions, error and total message statistics for the application.
+                    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>
+                                message statistics - a directory containing message statistics MXBeans
+                            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; "><li class="listitem"><p>
+                                        text - MXBean containing text message statistics
+                                    </p></li><li class="listitem"><p>
+                                        binary - MXBean containing binary message statistics
+                                    </p></li><li class="listitem"><p>
+                                        control -  MXBean containing control message statistics
+                                    </p></li></ul></div></li><li class="listitem"><p>
+                                endpoints - a directory containing application endpoint MXBeans
+                            </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; "><li class="listitem"><p>
+                                        Endpoint 1 - MXBean containing Endpoint 1 class name and path, number of open sessions,
+                                        maximal number of open sessions, error and total message statistics for the endpoint.
+                                    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+                                                text - MXBean containing text message statistics
+                                            </p></li><li class="listitem"><p>
+                                                binary - MXBean containing binary message statistics
+                                            </p></li><li class="listitem"><p>
+                                                control -  MXBean containing control message statistics
+                                            </p></li></ul></div></li><li class="listitem"><p>
+                                        Endpoint 2
+                                    </p></li></ul></div></li></ul></div></li><li class="listitem"><p>
+                        Application 2
+                    </p></li></ul></div><p>
+        </p><p>
+            In fact the monitoring structure described above was a little bit simplistic, because there is an additional
+            monitoring level available, which causes message metrics being also available per session.
+            The monitoring structure is very similar to the one described above, with a small difference that there are
+            four MXBeans registered for each session, which contain text, binary, control and total message statistics.
+            In order to distinguish the two monitoring levels, they will be referred to as endpoint-level monitoring
+            and session-level monitoring.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1557"></a>8.12.1.&nbsp;Configuration</h3></div></div></div><p>
+                As has been already mentioned, monitoring is supported only on the server side and is disabled by default.
+                The following code sample shows, how endpoint-level monitoring can be enabled on Grizzly server:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+serverProperties.put(ApplicationEventListener.APPLICATION_EVENT_LISTENER, new SessionlessApplicationMonitor());
+                </pre><p>
+                Similarly endpoint-level monitoring can be enabled on Grizzly server in the following way:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+serverProperties.put(ApplicationEventListener.APPLICATION_EVENT_LISTENER, new SessionAwareApplicationMonitor());
+                </pre><p>
+                Monitoring can be configured on Glassfish in web.xml and the following code sample shows endpoint-level configuration:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    ">&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+
+    &lt;context-param&gt;
+        &lt;param-name&gt;org.glassfish.tyrus.core.monitoring.ApplicationEventListener&lt;/param-name&gt;
+        &lt;param-value&gt;org.glassfish.tyrus.ext.monitoring.jmx.SessionlessApplicationMonitor&lt;/param-value&gt;
+    &lt;/context-param&gt;
+&lt;/web-app&gt;
+                </pre><p>
+                Similarly session-level monitoring can be configured on Glassfish in web.xml in the following way:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    ">&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+
+    &lt;context-param&gt;
+        &lt;param-name&gt;org.glassfish.tyrus.core.monitoring.ApplicationEventListener&lt;/param-name&gt;
+        &lt;param-value&gt;org.glassfish.tyrus.ext.monitoring.jmx.SessionAwareApplicationMonitor&lt;/param-value&gt;
+    &lt;/context-param&gt;
+&lt;/web-app&gt;
+                </pre><p>
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1574"></a>8.13.&nbsp;Maximal number of open sessions on server-side</h2></div></div></div><p>
+            Tyrus offers a few ways to limit the number of open sessions, which can be used to save limited resources
+            on a server hosting system. The limits can be configured in several scopes:
+        </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">per whole application</li><li class="listitem">per endpoint</li><li class="listitem">per remote address (client IP address)</li></ul></div><p>
+            If the number of simultaneously opened sessions exceeds any of these limits, Tyrus will close the session
+            with close code 1013 - Try Again Later.
+        </p><p>
+            Limits mentioned above can be combined together. For example, let's say we have
+            an application with two endpoints. Overall limit per application will be 1000 open sessions and the first
+            one, non-critical endpoint, will be limited to 75 open sessions at maximum. So we know that the second
+            endpoint can handle 925-1000 opened sessions, depends on how many open sessions are connected to
+            the first endpoint (0-75).
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1593"></a>8.13.1.&nbsp;Maximal number of open sessions per application</h3></div></div></div><p>
+                This configuration property can be used to limit overall number of open sessions per whole application.
+                The main purpose of this configurable limit is to restrict how many resources the application can
+                consume.
+            </p><p>
+                The number of open sessions per whole application can be configured by setting property
+                <code class="code">org.glassfish.tyrus.maxSessionsPerApp</code>. Property can be used as
+                <code class="code">&lt;context-param&gt;</code>
+                in
+                <code class="code">web.xml</code>
+                or as an entry in parameter map in (standalone) Server properties.
+            </p><p>
+                Note that only positive integer is allowed.
+            </p><p>This example will set maximal number of open sessions per whole application to 500:</p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    gutter: false;">
+
+&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+    &lt;context-param&gt;
+        &lt;param-name&gt;org.glassfish.tyrus.maxSessionsPerApp&lt;/param-name&gt;
+        &lt;param-value&gt;500&lt;/param-value&gt;
+    &lt;/context-param&gt;
+&lt;/web-app&gt;
+
+            </pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1615"></a>8.13.2.&nbsp;Maximal number of open sessions per remote address</h3></div></div></div><p>
+                The number of open sessions per remote address can be configured by setting property
+                <code class="code">org.glassfish.tyrus.maxSessionsPerRemoteAddr</code>. Property can be used as
+                <code class="code">&lt;context-param&gt;</code>
+                in
+                <code class="code">web.xml</code>
+                or as an entry in parameter map in (standalone) Server properties.
+            </p><p>
+                <code class="code">Remote address</code>
+                value is obtained from
+                <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getRemoteAddr()" target="_top">
+                    ServletRequest#getRemoteAddr()
+                </a>
+                or its alternative when using Grizzly server implementation.
+                Beware that this method returns always the last node which sending HTTP request, so all clients
+                behind one proxy will be treated as clients from single remote address.
+            </p><p>
+                Note that only positive integer is allowed.
+            </p><p>This example will set maximal number of open sessions from unique IP address or last proxy to 5:
+            </p><pre class="&#xA;    toolbar: false;&#xA;    brush: xml;&#xA;    gutter: false;">
+                
+&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+    &lt;context-param&gt;
+        &lt;param-name&gt;org.glassfish.tyrus.maxSessionsPerRemoteAddr&lt;/param-name&gt;
+        &lt;param-value&gt;5&lt;/param-value&gt;
+    &lt;/context-param&gt;
+&lt;/web-app&gt;
+
+            </pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1643"></a>8.13.3.&nbsp;Maximal number of open sessions per endpoint</h3></div></div></div><p>
+                Set maximum number of sessions in annotated endpoint:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+import javax.websocket.OnOpen;
+import javax.websocket.Session;
+import javax.websocket.server.ServerEndpoint;
+
+import org.glassfish.tyrus.core.MaxSessions;
+
+/**
+ * Annotated endpoint.
+ */
+@MaxSessions(100)
+@ServerEndpoint(value = "/limited-sessions-endpoint")
+public static class LimitedSessionsEndpoint {
+    @OnOpen
+    public void onOpen(Session s) {
+        ...
+    }
+    ...
+}
+                </pre><p>
+            </p><p>
+                Set maximum number of sessions for programmatic endpoint:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+TyrusServerEndpointConfig.Builder.create(LimitedSessionsEndpoint.class,
+  "/limited-sessions-endpoint").maxSessions(100).build();
+                </pre><p>
+            </p><p>
+                Note that only positive integer is allowed.
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1658"></a>8.14.&nbsp;Client HTTP Authentication</h2></div></div></div><p>
+            For server endpoints which is protected by HTTP authentication, Tyrus provides a mechanism to authenticate
+            client.
+            When client receives HTTP response status code<code class="code">401 - Unauthorized</code>, then Tyrus extracts required
+            scheme from
+            <code class="code">WWW-Authenticate</code>
+            challenge. Then it chooses an
+            authenticator from a map of registered authenticators and uses configured<code class="code">credentials</code>.
+            If no proper authenticator is found or credentials are missing, then
+            <code class="code">AuthenticationException</code>
+            is thrown before the handshake can be done.
+            There are implementations of the two most used authentication schemes in Tyrus: BASIC and DIGEST, but it is
+            also possible to implement your own authenticator and register it with a configuration builder
+            <code class="code">org.glassfish.tyrus.client.auth.AuthConfig.Builder</code>
+            or even to override default BASIC or DIGEST
+            auth implementations.
+            If no
+            <code class="code">org.glassfish.tyrus.client.auth.AuthConfig</code>
+            client property is set, then default
+            configuration is used. It is constructed as you can see bellow: BASIC and DIGEST internal implementations
+            are
+            enabled by default.
+        </p><p>
+            Please note that Basic Authentication scheme should be used over HTTPS connection only.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1683"></a>8.14.1.&nbsp;Credentials</h3></div></div></div><p>
+                Credentials are required for both implemented authentication schemes in Tyrus. You can pass an instance
+                into ClientManager as a property:
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+  client.getProperties().put(ClientProperties.CREDENTIALS, new Credentials("ws_user", "password".getBytes(AuthConfig.CHARACTER_SET));
+                    
+                </pre><p>
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1691"></a>8.14.2.&nbsp;Auth Configuration</h3></div></div></div><p>
+                <code class="code">org.glassfish.tyrus.client.auth.AuthConfig</code>
+                provides a way to configure of HTTP authentication schemes.
+                Creating an instance of
+                <code class="code">org.glassfish.tyrus.client.auth.AuthConfig</code>
+                is optional.
+                If you don't specify AuthConfig, then default instance will be created like in following code listing
+            </p><p>
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+  AuthConfig authConfig = AuthConfig.Builder.create().build();
+  ClientManager client = ClientManager.createClient();
+  client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
+                    
+                </pre><p>
+            </p><p>
+                If authentication is required after an initial upgrade request, Tyrus chooses a proper authentication
+                scheme based on a received challenge from server. There are two HTTP authentication scheme implemented
+                and registered
+                by default.
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1709"></a>8.14.3.&nbsp;User defined authenticator</h3></div></div></div><p>
+                Tyrus provides an option to implement your own client HTTP authenticator by extending
+                <code class="code">org.glassfish.tyrus.client.auth.Authenticator</code>
+                and implementing<code class="code">generateAuthorizationHeader</code>.
+                Request URI,
+                <code class="code">WWW-Authenticate</code>
+                response header and provided
+                <code class="code">Credentials</code>
+                are
+                passed as parameters. Method must return response to authentication challenge as it is required by HTTP
+                server.
+                An instance of the implemented class must be passed to the Tyrus configuration with
+                <code class="code">org.glassfish.tyrus.client.auth.AuthConfig.Builder#setAuthScheme(String scheme, Authenticator
+                    userDefinedAuthenticator)
+                </code>
+                and created
+                <code class="code">AuthConfig</code>
+                instance must be put into client properties.
+            </p><p>Authenticator.java</p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                
+package org.glassfish.tyrus.client;
+
+import java.net.URI;
+
+/**
+ * Http Authentication provider.
+ * Class generates authorization token as a input for {@code Authorization} HTTP request header.
+ *
+ * @author Ondrej Kosatka (ondrej.kosatka at oracle.com)
+ */
+public abstract class Authenticator {
+
+    /**
+     * Generates authorization tokens as a input for {@code Authorization} HTTP request header.
+     * @param uri URI is needed for generating authorization tokens for some authentication scheme (DIGEST: {@link DigestAuthenticator})
+     * @param wwwAuthenticateHeader a value of header {@code WWW-Authenticate} from HTTP response.
+     * @param credentials credentials.
+     * @return generated {@link String} value of {@code Authorization}.
+     * @throws AuthenticationException if is not possible to create auth token.
+     */
+    public abstract String generateAuthorizationHeader(final URI uri, final String wwwAuthenticateHeader, final Credentials credentials) throws AuthenticationException;
+
+}
+                
+            </pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1736"></a>8.14.4.&nbsp;Examples</h3></div></div></div><p>
+                The simplest way to setup Tyrus authentication is by adding client property
+                <code class="code">ClientProperties.CREDENTIALS</code>
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+  client.getProperties().put(ClientProperties.CREDENTIALS, new Credentials("ws_user", "password");
+                    
+                </pre><p>
+            </p><p>
+                How to configure Tyrus with suppressing Basic authentication, even if server side challenges Basic
+                authentication scheme.
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+  AuthConfig authConfig = AuthConfig.Builder.create().
+                               disableBasicAuth().
+                               build();
+  Credentials credentials = new Credentials("ws_user", "password");
+  client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
+  client.getProperties().put(ClientProperties.CREDENTIALS, credentials);
+                    
+                </pre><p>
+            </p><p>
+                How to configure Tyrus using user defined DIGEST authentication and Tyrus Basic authentication. User
+                defined
+                authentication provider
+                <code class="code">MyOwnDigestAuthenticator</code>
+                must extend<code class="code">org.glassfish.tyrus.client.auth.Authenticator</code>.
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+  AuthConfig authConfig = AuthConfig.Builder.create().
+                               putAuthProvider("Digest", new MyOwnDigestAuthenticator()).
+                               build();
+  Credentials credentials = new Credentials("ws_user", "password");
+  client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
+  client.getProperties().put(ClientProperties.CREDENTIALS, credentials);
+                
+                </pre><p>
+            </p><p>
+                How to configure Tyrus using user defined NTLM authentication and suppress Tyrus Basic authentication,
+                even if server side challenges Basic authentication scheme.. User defined
+                authentication provider
+                <code class="code">MyOwnNTLMAuthenticator</code>
+                must extend<code class="code">org.glassfish.tyrus.client.auth.Authenticator</code>.
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+  AuthConfig authConfig = AuthConfig.Builder.create().
+                               disableBasicAuth().
+                               putAuthProvider("NTLM", new MyOwnNTLMAuthenticator()).
+                               build();
+  Credentials credentials = new Credentials("ws_user", "password");
+  client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
+  client.getProperties().put(ClientProperties.CREDENTIALS, credentials);
+                
+                </pre><p>
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1774"></a>8.15.&nbsp;Client HTTP Redirect</h2></div></div></div><p>
+            Another Tyrus feature is HTTP redirect. If client&nbsp;received 3xx HTTP Redirect response code during a
+            handshake and HTTP Redirect is allowed (by <code class="code">ClientProperty.REDIRECT_ENABLED</code>
+            property) then client engine  transparently follows the URI contained in received HTTP response header
+            <code class="code">Location</code> and sends upgrade request to the new URI. Redirects can be chained up to limit set in
+            <code class="code">ClientProperty.REDIRECT_THRESHOLD</code>, whilst default value is 5.
+            If HTTP redirect failed by any reason, <code class="code">RedirectException</code> is thrown.
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1791"></a>8.15.1.&nbsp;Supported HTTP response codes</h3></div></div></div><p>
+                List of 3xx HTTP response codes which can be automatically redirect
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>300 - Multiple Choices</p></li><li class="listitem"><p>301 - Moved permanently</p></li><li class="listitem"><p>302 - Found</p></li><li class="listitem"><p>303 - See Other (since HTTP/1.1)</p></li><li class="listitem"><p>307 - Temporary Redirect (since HTTP/1.1)</p></li><li class="listitem"><p>308 - Permanent Redirect (Experimental RFC; RFC 7238)</p></li></ul></div><p>
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1816"></a>8.15.2.&nbsp;Configuration</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1819"></a>8.15.2.1.&nbsp;Enabling</h4></div></div></div><p>
+                    For enabling HTTP Redirect feature, <code class="code">ClientProperty.REDIRECT_ENABLED</code> must be explicitly set to
+                    <code class="code">true</code> (default value is<code class="code">false</code>), otherwise <code class="code">RedirectException</code>
+                    will be thrown, when any of supported HTTP Redirect response codes (see above).
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    gutter: false;">
+                    client.getProperties().put(ClientProperties.REDIRECT_ENABLED, true);
+                </pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1838"></a>8.15.2.2.&nbsp;Threshold</h4></div></div></div><p>
+                    <code class="code">ClientProperty.REDIRECT_THRESHOLD</code> is property which can be used to limit maximal
+                    number of chained redirect. Positive integer is expected and default value is 5.
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    gutter: false;">
+                    client.getProperties().put(ClientProperties.REDIRECT_THRESHOLD, 3);
+                </pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1848"></a>8.15.3.&nbsp;Exception handling</h3></div></div></div><p>
+                <code class="code">RedirectException</code>
+                is set as a cause of DeploymentException when any of the supported Redirection HTTP response
+                status codes (see above) was received and WebSocketContainer.connectToServer(...) fails
+                because of any of the following reasons:
+                </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+                            <code class="code">ClientProperties.REDIRECT_ENABLED</code> property is not set to true.
+                        </p></li><li class="listitem"><p>
+                            Value of <code class="code">ClientProperties.REDIRECT_THRESHOLD</code> is not assignable to Integer.
+                        </p></li><li class="listitem"><p>
+                            Number of chained redirection exceeds a value of <code class="code">ClientProperties.REDIRECT_THRESHOLD</code>
+                            (default value is 5).
+                        </p></li><li class="listitem"><p>Infinite redirection loop is detected.</p></li><li class="listitem"><p>
+                            <code class="code">Location</code> response header is missing, is empty or does not contain a valid URI.
+                        </p></li></ul></div><p>
+            </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1885"></a>8.16.&nbsp;Client support for HTTP status 503 - Service Unavailable with Retry-After header</h2></div></div></div><p>
+            Tyrus offers automatic handling of HTTP status code <code class="code">503 - Service Unavailable</code>, which can be
+            returned from server when temporarily overloaded or down for maintenance. When <code class="code">Retry-After</code>
+            header is included in the response, client will parse the value and schedule another reconnect attempt.
+        </p><p>This feature is disabled by default.</p><p>
+            The implementation limits connection attempts to 5, each with reconnect delay not bigger than 300
+            seconds. Other values or conditions can be handled by custom <code class="code">ReconnectHandler</code>
+            (see <code class="code">RetryAfterException</code>).
+        </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1906"></a>8.16.1.&nbsp;Configuration</h3></div></div></div><p>
+                </p><pre class="&#xA;    toolbar: false;&#xA;    brush: java;&#xA;    ">
+                    
+            final ClientManager client = ClientManager.createClient();
+            client.getProperties().put(ClientProperties.RETRY_AFTER_SERVICE_UNAVAILABLE, true);
+</pre><p>
+            </p></div></div></div></div><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
+            function path() {
+              var args = arguments,
+                  result = []
+                  ;
+
+              for(var i = 0; i < args.length; i++)
+                  result.push(args[i].replace('@', 'http://tyrus.java.net/sh/'));
+
+              return result
+            };
+
+            SyntaxHighlighter.autoloader.apply(null, path(
+              'applescript            @shBrushAppleScript.js',
+              'actionscript3 as3      @shBrushAS3.js',
+              'bash shell             @shBrushBash.js',
+              'coldfusion cf          @shBrushColdFusion.js',
+              'cpp c                  @shBrushCpp.js',
+              'c# c-sharp csharp      @shBrushCSharp.js',
+              'css                    @shBrushCss.js',
+              'delphi pascal          @shBrushDelphi.js',
+              'diff patch pas         @shBrushDiff.js',
+              'erl erlang             @shBrushErlang.js',
+              'groovy                 @shBrushGroovy.js',
+              'java                   @shBrushJava.js',
+              'jfx javafx             @shBrushJavaFX.js',
+              'js jscript javascript  @shBrushJScript.js',
+              'perl pl                @shBrushPerl.js',
+              'php                    @shBrushPhp.js',
+              'text plain             @shBrushPlain.js',
+              'py python              @shBrushPython.js',
+              'ruby rails ror rb      @shBrushRuby.js',
+              'sass scss              @shBrushSass.js',
+              'scala                  @shBrushScala.js',
+              'sql                    @shBrushSql.js',
+              'vb vbnet               @shBrushVb.js',
+              'xml xhtml xslt html    @shBrushXml.js'
+            ));
+
+            SyntaxHighlighter.all();
+        </script><script>
+              (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+              (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+              })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+              ga('create', 'UA-41373632-1', 'java.net');
+              ga('send', 'pageview');
+        </script></div></body></html>
\ No newline at end of file
diff --git a/documentation/1.20/user-guide.pdf b/documentation/1.20/user-guide.pdf
new file mode 100644
index 00000000..285d3d30
Binary files /dev/null and b/documentation/1.20/user-guide.pdf differ
diff --git a/documentation/latest1x/index/configurations.html b/documentation/latest1x/index/configurations.html
index 3698c414..5c9c2060 100644
--- a/documentation/latest1x/index/configurations.html
+++ b/documentation/latest1x/index/configurations.html
@@ -1,6 +1,6 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-   <title>Chapter&nbsp;5.&nbsp;Configurations</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.19 User Guide"><link rel="up" href="index.html" title="Tyrus 1.19 User Guide"><link rel="prev" href="websocket-api.html" title="Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers"><link rel="next" href="lifecycle.html" title="Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;5.&nbsp;Configurations</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="websocket-api.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="lifecycle.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="configurations"></a>Chapter&nbsp;5.&nbsp;Configurations</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="configurations.html#d0e786">5.1. <code class="code">javax.websocket.server.ServerEndpointConfig</code></a></span></dt><dt><span class="section"><a href="configurations.html#d0e839">5.2. <code class="code">javax.websocket.ClientEndpointConfig</code></a></span></dt></dl></div><p>
+   <title>Chapter&nbsp;5.&nbsp;Configurations</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="websocket-api.html" title="Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers"><link rel="next" href="lifecycle.html" title="Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;5.&nbsp;Configurations</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="websocket-api.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="lifecycle.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="configurations"></a>Chapter&nbsp;5.&nbsp;Configurations</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="configurations.html#d0e786">5.1. <code class="code">javax.websocket.server.ServerEndpointConfig</code></a></span></dt><dt><span class="section"><a href="configurations.html#d0e839">5.2. <code class="code">javax.websocket.ClientEndpointConfig</code></a></span></dt></dl></div><p>
         <code class="code">javax.websocket.server.ServerEndpointConfig</code> and <code class="code">javax.websocket.ClientEndpointConfig</code> objects
         are used to provide the user the ability to configure websocket endpoints. Both server and client endpoints have some
         part of configuration in common, namely encoders, decoders, and user properties. The user properties may developers
diff --git a/documentation/latest1x/index/deployment.html b/documentation/latest1x/index/deployment.html
index 2957ba9a..a0f7b314 100644
--- a/documentation/latest1x/index/deployment.html
+++ b/documentation/latest1x/index/deployment.html
@@ -1,6 +1,6 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-   <title>Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.19 User Guide"><link rel="up" href="index.html" title="Tyrus 1.19 User Guide"><link rel="prev" href="modules-and-dependencies.html" title="Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies"><link rel="next" href="websocket-api.html" title="Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="modules-and-dependencies.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="websocket-api.html">Next</a></td></tr></table><hr></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="deployment.html#d0e335">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="deployment.html#d0e360">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="deployment.html#d0e411">3.2. Deploying endpoints via <code class="code">javax.websocket.server.ServerContainer</code></a></span></dt></dl></div><p>
+   <title>Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="modules-and-dependencies.html" title="Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies"><link rel="next" href="websocket-api.html" title="Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="modules-and-dependencies.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="websocket-api.html">Next</a></td></tr></table><hr></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="deployment.html#d0e335">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="deployment.html#d0e360">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="deployment.html#d0e411">3.2. Deploying endpoints via <code class="code">javax.websocket.server.ServerContainer</code></a></span></dt></dl></div><p>
         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.
     </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e335"></a>3.1.&nbsp;Deploying Endpoints as a WAR file</h2></div></div></div><p>
diff --git a/documentation/latest1x/index/getting-started.html b/documentation/latest1x/index/getting-started.html
index 124f5575..c425111d 100644
--- a/documentation/latest1x/index/getting-started.html
+++ b/documentation/latest1x/index/getting-started.html
@@ -1,6 +1,6 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-   <title>Chapter&nbsp;1.&nbsp;Getting Started</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.19 User Guide"><link rel="up" href="index.html" title="Tyrus 1.19 User Guide"><link rel="prev" href="preface.html" title="Preface"><link rel="next" href="modules-and-dependencies.html" title="Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;1.&nbsp;Getting Started</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="preface.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="modules-and-dependencies.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="getting-started"></a>Chapter&nbsp;1.&nbsp;Getting Started</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="getting-started.html#getting-started-wsapi-artifact">1.1. WebSocket Services Using Java API for WebSocket</a></span></dt><dd><dl><dt><span class="section"><a href="getting-started.html#d0e35">1.1.1. Creating Annotated Server Endpoint</a></span></dt><dt><span class="section"><a href="getting-started.html#d0e79">1.1.2. Client Endpoint</a></span></dt><dt><span class="section"><a href="getting-started.html#websocket-programmatic-endpoint">1.1.3. Creating Server Endpoint Programmatically</a></span></dt><dt><span class="section"><a href="getting-started.html#standalone-mode">1.1.4. Tyrus in Standalone Mode</a></span></dt></dl></dd></dl></div><p>
+   <title>Chapter&nbsp;1.&nbsp;Getting Started</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="preface.html" title="Preface"><link rel="next" href="modules-and-dependencies.html" title="Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;1.&nbsp;Getting Started</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="preface.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="modules-and-dependencies.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="getting-started"></a>Chapter&nbsp;1.&nbsp;Getting Started</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="getting-started.html#getting-started-wsapi-artifact">1.1. WebSocket Services Using Java API for WebSocket</a></span></dt><dd><dl><dt><span class="section"><a href="getting-started.html#d0e35">1.1.1. Creating Annotated Server Endpoint</a></span></dt><dt><span class="section"><a href="getting-started.html#d0e79">1.1.2. Client Endpoint</a></span></dt><dt><span class="section"><a href="getting-started.html#websocket-programmatic-endpoint">1.1.3. Creating Server Endpoint Programmatically</a></span></dt><dt><span class="section"><a href="getting-started.html#standalone-mode">1.1.4. Tyrus in Standalone Mode</a></span></dt></dl></dd></dl></div><p>
         This chapter provides a quick introduction on how to get started building
         WebSocket services using Java API for WebSocket and Tyrus. The example described here presents how to implement
         simple websocket service as JavaEE web application that can be deployed on any servlet container
@@ -135,13 +135,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;1.19&lt;/version&gt;
+    &lt;version&gt;1.20&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;1.19&lt;/version&gt;
+    &lt;version&gt;1.20&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
diff --git a/documentation/latest1x/index/index.html b/documentation/latest1x/index/index.html
index e50be9e2..68bb5204 100644
--- a/documentation/latest1x/index/index.html
+++ b/documentation/latest1x/index/index.html
@@ -1,6 +1,6 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-   <title>Tyrus 1.19 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"><link rel="home" href="index.html" title="Tyrus 1.19 User Guide"><link rel="next" href="preface.html" title="Preface"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Tyrus 1.19 User Guide</th></tr><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="preface.html">Next</a></td></tr></table><hr></div><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="d0e3"></a>Tyrus 1.19 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.html">Preface</a></span></dt><dt><span class="chapter"><a href="getting-started.html">1. Getting Started</a></span></dt><dd><dl><dt><span class="section"><a href="getting-started.html#getting-started-wsapi-artifact">1.1. WebSocket Services Using Java API for WebSocket</a></span></dt><dd><dl><dt><span class="section"><a href="getting-started.html#d0e35">1.1.1. Creating Annotated Server Endpoint</a></span></dt><dt><span class="section"><a href="getting-started.html#d0e79">1.1.2. Client Endpoint</a></span></dt><dt><span class="section"><a href="getting-started.html#websocket-programmatic-endpoint">1.1.3. Creating Server Endpoint Programmatically</a></span></dt><dt><span class="section"><a href="getting-started.html#standalone-mode">1.1.4. Tyrus in Standalone Mode</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="modules-and-dependencies.html">2. Tyrus Modules and Dependencies</a></span></dt><dt><span class="chapter"><a href="deployment.html">3. Deploying WebSocket Endpoints</a></span></dt><dd><dl><dt><span class="section"><a href="deployment.html#d0e335">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="deployment.html#d0e360">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="deployment.html#d0e411">3.2. Deploying endpoints via <code class="code">javax.websocket.server.ServerContainer</code></a></span></dt></dl></dd><dt><span class="chapter"><a href="websocket-api.html">4. WebSocket API Endpoints, Sessions and MessageHandlers</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e441">4.1. Endpoint Classes</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e465">4.1.1. javax.websocket.server.ServerEndpoint</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e600">4.1.2. javax.websocket.ClientEndpoint</a></span></dt></dl></dd><dt><span class="section"><a href="websocket-api.html#d0e642">4.2. Endpoint method-level annotations</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e645">4.2.1. @OnOpen</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e658">4.2.2. @OnClose</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e671">4.2.3. @OnError</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e684">4.2.4. @OnMessage</a></span></dt></dl></dd><dt><span class="section"><a href="websocket-api.html#d0e697">4.3. MessageHandlers</a></span></dt></dl></dd><dt><span class="chapter"><a href="configurations.html">5. Configurations</a></span></dt><dd><dl><dt><span class="section"><a href="configurations.html#d0e786">5.1. <code class="code">javax.websocket.server.ServerEndpointConfig</code></a></span></dt><dt><span class="section"><a href="configurations.html#d0e839">5.2. <code class="code">javax.websocket.ClientEndpointConfig</code></a></span></dt></dl></dd><dt><span class="chapter"><a href="lifecycle.html">6. Endpoint Lifecycle, Sessions, Sending Messages</a></span></dt><dd><dl><dt><span class="section"><a href="lifecycle.html#d0e871">6.1. Endpoint Lifecycle</a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e891">6.2. <code class="code">javax.websocket.Session</code></a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e976">6.3. Sending Messages</a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e1008">6.4. RemoteEndpoint</a></span></dt><dd><dl><dt><span class="section"><a href="lifecycle.html#d0e1022">6.4.1. <code class="code">javax.websocket.RemoteEndpoint.Basic</code></a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e1046">6.4.2. <code class="code">javax.websocket.RemoteEndpoint.Async</code></a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="injection.html">7. Injection Support</a></span></dt><dd><dl><dt><span class="section"><a href="injection.html#d0e1076">7.1. <code class="code">javax.inject.Inject</code> sample</a></span></dt><dt><span class="section"><a href="injection.html#d0e1103">7.2. EJB sample</a></span></dt></dl></dd><dt><span class="chapter"><a href="tyrus-proprietary-config.html">8. Tyrus proprietary configuration</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1129">8.1. Client-side SSL configuration</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1150">8.1.1. Host verification</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1172">8.2. Asynchronous connectToServer methods</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1185">8.3. Optimized broadcast</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1198">8.4. Incoming buffer size</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1216">8.5. Shared client container</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1238">8.5.1. Custom masking key generator</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1259">8.6. WebSocket Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1284">8.6.1. ExtendedExtension sample</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1305">8.6.2. Per Message Deflate Extension</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1312">8.7. Client reconnect</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1324">8.8. Client behind proxy</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1332">8.9. JDK 7 client</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1354">8.9.1. SSL configuration</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1374">8.10. Tracing support</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1382">8.10.1. Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1448">8.10.2. Tracing Examples</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1476">8.11. Client handshake request and response logging</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1484">8.12. JMX Monitoring</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1558">8.12.1. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1575">8.13. Maximal number of open sessions on server-side</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1594">8.13.1. Maximal number of open sessions per application</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1616">8.13.2. Maximal number of open sessions per remote address</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1644">8.13.3. Maximal number of open sessions per endpoint</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1659">8.14. Client HTTP Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1684">8.14.1. Credentials</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1692">8.14.2. Auth Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1710">8.14.3. User defined authenticator</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1737">8.14.4. Examples</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1775">8.15. Client HTTP Redirect</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1792">8.15.1. Supported HTTP response codes</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1817">8.15.2. Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1849">8.15.3. Exception handling</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1886">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="tyrus-proprietary-config.html#d0e1907">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="modules-and-dependencies.html#dependencies-table-modules">Tyrus core modules</a></dt><dt>2.2. <a href="modules-and-dependencies.html#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="getting-started.html#websocket-annotated-echo-endpoint">Annotated Echo Endpoint</a></dt><dt>1.2. <a href="getting-started.html#websocket-client-endpoint">Client Endpoint</a></dt><dt>1.3. <a href="getting-started.html#websocket-programmatic-echo-endpoint">Programmatic Echo Endpoint</a></dt><dt>3.1. <a href="deployment.html#deployment-serverapplicationconfig">Deployment of WAR containing several classes extending <code class="code">javax.websocket.server.ServerApplicationConfig</code></a></dt><dt>3.2. <a href="deployment.html#deployment-servercontainer">Deployment of Annotated Endpoint Using ServerContainer</a></dt><dt>4.1. <a href="websocket-api.html#endpoints-echo-endpoint">Echo sample server endpoint.</a></dt><dt>4.2. <a href="websocket-api.html#endpoints-serverendpoint-annotation">javax.websocket.server.ServerEndpoint with all fields specified</a></dt><dt>4.3. <a href="websocket-api.html#d0e511">Specifying URI path parameter</a></dt><dt>4.4. <a href="websocket-api.html#d0e529">SampleDecoder</a></dt><dt>4.5. <a href="websocket-api.html#d0e547">SampleEncoder</a></dt><dt>4.6. <a href="websocket-api.html#d0e605">SampleClientEndpoint</a></dt><dt>4.7. <a href="websocket-api.html#d0e652">@OnOpen with Session and EndpointConfig parameters.</a></dt><dt>4.8. <a href="websocket-api.html#d0e665">@OnClose with Session and CloseReason parameters.</a></dt><dt>4.9. <a href="websocket-api.html#d0e678">@OnError with Session and Throwable parameters.</a></dt><dt>4.10. <a href="websocket-api.html#d0e691">@OnError with Session and Throwable parameters.</a></dt><dt>4.11. <a href="websocket-api.html#d0e710">MessageHandler basic example</a></dt><dt>5.1. <a href="configurations.html#d0e823">Configuration for EchoEndpoint Deployment</a></dt><dt>5.2. <a href="configurations.html#d0e833">ServerEndpointConfigu built using Builder</a></dt><dt>5.3. <a href="configurations.html#d0e862">ClientEndpointConfig built using Builder</a></dt><dt>6.1. <a href="lifecycle.html#lifecycle-echo-sample">Lifecycle echo sample</a></dt><dt>6.2. <a href="lifecycle.html#lifecycle-onmessage-sample">Sending message in @OnMessage</a></dt><dt>6.3. <a href="lifecycle.html#lifecycle-remote-endpoint-sample">Sending message via RemoteEndpoint.Basic instance</a></dt><dt>6.4. <a href="lifecycle.html#lifecycle-remote-endpoint-partial-sample">Method for sending partial text message</a></dt><dt>6.5. <a href="lifecycle.html#lifecycle-remote-endpoint-async-future">Sending mesage the async way using Future</a></dt><dt>7.1. <a href="injection.html#cdi-simple-bean">Injecting bean into <code class="code">javax.websocket.server.ServerEndpoint</code></a></dt><dt>7.2. <a href="injection.html#cdi-singleton-bean">Echo sample server endpoint.</a></dt></dl></div></div><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
+   <title>Tyrus 1.20 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"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="next" href="preface.html" title="Preface"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Tyrus 1.20 User Guide</th></tr><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="preface.html">Next</a></td></tr></table><hr></div><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="d0e3"></a>Tyrus 1.20 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.html">Preface</a></span></dt><dt><span class="chapter"><a href="getting-started.html">1. Getting Started</a></span></dt><dd><dl><dt><span class="section"><a href="getting-started.html#getting-started-wsapi-artifact">1.1. WebSocket Services Using Java API for WebSocket</a></span></dt><dd><dl><dt><span class="section"><a href="getting-started.html#d0e35">1.1.1. Creating Annotated Server Endpoint</a></span></dt><dt><span class="section"><a href="getting-started.html#d0e79">1.1.2. Client Endpoint</a></span></dt><dt><span class="section"><a href="getting-started.html#websocket-programmatic-endpoint">1.1.3. Creating Server Endpoint Programmatically</a></span></dt><dt><span class="section"><a href="getting-started.html#standalone-mode">1.1.4. Tyrus in Standalone Mode</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="modules-and-dependencies.html">2. Tyrus Modules and Dependencies</a></span></dt><dt><span class="chapter"><a href="deployment.html">3. Deploying WebSocket Endpoints</a></span></dt><dd><dl><dt><span class="section"><a href="deployment.html#d0e335">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="deployment.html#d0e360">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="deployment.html#d0e411">3.2. Deploying endpoints via <code class="code">javax.websocket.server.ServerContainer</code></a></span></dt></dl></dd><dt><span class="chapter"><a href="websocket-api.html">4. WebSocket API Endpoints, Sessions and MessageHandlers</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e441">4.1. Endpoint Classes</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e465">4.1.1. javax.websocket.server.ServerEndpoint</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e600">4.1.2. javax.websocket.ClientEndpoint</a></span></dt></dl></dd><dt><span class="section"><a href="websocket-api.html#d0e642">4.2. Endpoint method-level annotations</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e645">4.2.1. @OnOpen</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e658">4.2.2. @OnClose</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e671">4.2.3. @OnError</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e684">4.2.4. @OnMessage</a></span></dt></dl></dd><dt><span class="section"><a href="websocket-api.html#d0e697">4.3. MessageHandlers</a></span></dt></dl></dd><dt><span class="chapter"><a href="configurations.html">5. Configurations</a></span></dt><dd><dl><dt><span class="section"><a href="configurations.html#d0e786">5.1. <code class="code">javax.websocket.server.ServerEndpointConfig</code></a></span></dt><dt><span class="section"><a href="configurations.html#d0e839">5.2. <code class="code">javax.websocket.ClientEndpointConfig</code></a></span></dt></dl></dd><dt><span class="chapter"><a href="lifecycle.html">6. Endpoint Lifecycle, Sessions, Sending Messages</a></span></dt><dd><dl><dt><span class="section"><a href="lifecycle.html#d0e871">6.1. Endpoint Lifecycle</a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e891">6.2. <code class="code">javax.websocket.Session</code></a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e976">6.3. Sending Messages</a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e1008">6.4. RemoteEndpoint</a></span></dt><dd><dl><dt><span class="section"><a href="lifecycle.html#d0e1022">6.4.1. <code class="code">javax.websocket.RemoteEndpoint.Basic</code></a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e1046">6.4.2. <code class="code">javax.websocket.RemoteEndpoint.Async</code></a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="injection.html">7. Injection Support</a></span></dt><dd><dl><dt><span class="section"><a href="injection.html#d0e1076">7.1. <code class="code">javax.inject.Inject</code> sample</a></span></dt><dt><span class="section"><a href="injection.html#d0e1103">7.2. EJB sample</a></span></dt></dl></dd><dt><span class="chapter"><a href="tyrus-proprietary-config.html">8. Tyrus proprietary configuration</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1129">8.1. Client-side SSL configuration</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1150">8.1.1. Host verification</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1172">8.2. Asynchronous connectToServer methods</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1185">8.3. Optimized broadcast</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1198">8.4. Incoming buffer size</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1216">8.5. Shared client container</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1238">8.5.1. Custom masking key generator</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1259">8.6. WebSocket Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1284">8.6.1. ExtendedExtension sample</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1305">8.6.2. Per Message Deflate Extension</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1312">8.7. Client reconnect</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1324">8.8. Client behind proxy</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1332">8.9. JDK 7 client</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1354">8.9.1. SSL configuration</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1374">8.10. Tracing support</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1382">8.10.1. Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1448">8.10.2. Tracing Examples</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1476">8.11. Client handshake request and response logging</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1484">8.12. JMX Monitoring</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1558">8.12.1. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1575">8.13. Maximal number of open sessions on server-side</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1594">8.13.1. Maximal number of open sessions per application</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1616">8.13.2. Maximal number of open sessions per remote address</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1644">8.13.3. Maximal number of open sessions per endpoint</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1659">8.14. Client HTTP Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1684">8.14.1. Credentials</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1692">8.14.2. Auth Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1710">8.14.3. User defined authenticator</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1737">8.14.4. Examples</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1775">8.15. Client HTTP Redirect</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1792">8.15.1. Supported HTTP response codes</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1817">8.15.2. Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1849">8.15.3. Exception handling</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1886">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="tyrus-proprietary-config.html#d0e1907">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="modules-and-dependencies.html#dependencies-table-modules">Tyrus core modules</a></dt><dt>2.2. <a href="modules-and-dependencies.html#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="getting-started.html#websocket-annotated-echo-endpoint">Annotated Echo Endpoint</a></dt><dt>1.2. <a href="getting-started.html#websocket-client-endpoint">Client Endpoint</a></dt><dt>1.3. <a href="getting-started.html#websocket-programmatic-echo-endpoint">Programmatic Echo Endpoint</a></dt><dt>3.1. <a href="deployment.html#deployment-serverapplicationconfig">Deployment of WAR containing several classes extending <code class="code">javax.websocket.server.ServerApplicationConfig</code></a></dt><dt>3.2. <a href="deployment.html#deployment-servercontainer">Deployment of Annotated Endpoint Using ServerContainer</a></dt><dt>4.1. <a href="websocket-api.html#endpoints-echo-endpoint">Echo sample server endpoint.</a></dt><dt>4.2. <a href="websocket-api.html#endpoints-serverendpoint-annotation">javax.websocket.server.ServerEndpoint with all fields specified</a></dt><dt>4.3. <a href="websocket-api.html#d0e511">Specifying URI path parameter</a></dt><dt>4.4. <a href="websocket-api.html#d0e529">SampleDecoder</a></dt><dt>4.5. <a href="websocket-api.html#d0e547">SampleEncoder</a></dt><dt>4.6. <a href="websocket-api.html#d0e605">SampleClientEndpoint</a></dt><dt>4.7. <a href="websocket-api.html#d0e652">@OnOpen with Session and EndpointConfig parameters.</a></dt><dt>4.8. <a href="websocket-api.html#d0e665">@OnClose with Session and CloseReason parameters.</a></dt><dt>4.9. <a href="websocket-api.html#d0e678">@OnError with Session and Throwable parameters.</a></dt><dt>4.10. <a href="websocket-api.html#d0e691">@OnError with Session and Throwable parameters.</a></dt><dt>4.11. <a href="websocket-api.html#d0e710">MessageHandler basic example</a></dt><dt>5.1. <a href="configurations.html#d0e823">Configuration for EchoEndpoint Deployment</a></dt><dt>5.2. <a href="configurations.html#d0e833">ServerEndpointConfigu built using Builder</a></dt><dt>5.3. <a href="configurations.html#d0e862">ClientEndpointConfig built using Builder</a></dt><dt>6.1. <a href="lifecycle.html#lifecycle-echo-sample">Lifecycle echo sample</a></dt><dt>6.2. <a href="lifecycle.html#lifecycle-onmessage-sample">Sending message in @OnMessage</a></dt><dt>6.3. <a href="lifecycle.html#lifecycle-remote-endpoint-sample">Sending message via RemoteEndpoint.Basic instance</a></dt><dt>6.4. <a href="lifecycle.html#lifecycle-remote-endpoint-partial-sample">Method for sending partial text message</a></dt><dt>6.5. <a href="lifecycle.html#lifecycle-remote-endpoint-async-future">Sending mesage the async way using Future</a></dt><dt>7.1. <a href="injection.html#cdi-simple-bean">Injecting bean into <code class="code">javax.websocket.server.ServerEndpoint</code></a></dt><dt>7.2. <a href="injection.html#cdi-singleton-bean">Echo sample server endpoint.</a></dt></dl></div></div><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
             function path() {
               var args = arguments,
                   result = []
diff --git a/documentation/latest1x/index/injection.html b/documentation/latest1x/index/injection.html
index fc5cf0b5..53871810 100644
--- a/documentation/latest1x/index/injection.html
+++ b/documentation/latest1x/index/injection.html
@@ -1,6 +1,6 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-   <title>Chapter&nbsp;7.&nbsp;Injection Support</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.19 User Guide"><link rel="up" href="index.html" title="Tyrus 1.19 User Guide"><link rel="prev" href="lifecycle.html" title="Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages"><link rel="next" href="tyrus-proprietary-config.html" title="Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;7.&nbsp;Injection Support</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="lifecycle.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="tyrus-proprietary-config.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="injection"></a>Chapter&nbsp;7.&nbsp;Injection Support</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="injection.html#d0e1076">7.1. <code class="code">javax.inject.Inject</code> sample</a></span></dt><dt><span class="section"><a href="injection.html#d0e1103">7.2. EJB sample</a></span></dt></dl></div><p>
+   <title>Chapter&nbsp;7.&nbsp;Injection Support</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="lifecycle.html" title="Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages"><link rel="next" href="tyrus-proprietary-config.html" title="Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;7.&nbsp;Injection Support</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="lifecycle.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="tyrus-proprietary-config.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="injection"></a>Chapter&nbsp;7.&nbsp;Injection Support</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="injection.html#d0e1076">7.1. <code class="code">javax.inject.Inject</code> sample</a></span></dt><dt><span class="section"><a href="injection.html#d0e1103">7.2. EJB sample</a></span></dt></dl></div><p>
         As required in Java API for WebSocket, Tyrus supports full field, method and constructor injection using <code class="code">javax.inject.Inject</code>
         into all websocket endpoint classes as well as the use of the interceptors on these classes.
         Except this,  Tyrus also supports some of the EJB annotations. Currently <code class="code">javax.ejb.Stateful</code>,
diff --git a/documentation/latest1x/index/lifecycle.html b/documentation/latest1x/index/lifecycle.html
index 97723904..a12dc108 100644
--- a/documentation/latest1x/index/lifecycle.html
+++ b/documentation/latest1x/index/lifecycle.html
@@ -1,6 +1,6 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-   <title>Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.19 User Guide"><link rel="up" href="index.html" title="Tyrus 1.19 User Guide"><link rel="prev" href="configurations.html" title="Chapter&nbsp;5.&nbsp;Configurations"><link rel="next" href="injection.html" title="Chapter&nbsp;7.&nbsp;Injection Support"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="configurations.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="injection.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="lifecycle"></a>Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="lifecycle.html#d0e871">6.1. Endpoint Lifecycle</a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e891">6.2. <code class="code">javax.websocket.Session</code></a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e976">6.3. Sending Messages</a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e1008">6.4. RemoteEndpoint</a></span></dt><dd><dl><dt><span class="section"><a href="lifecycle.html#d0e1022">6.4.1. <code class="code">javax.websocket.RemoteEndpoint.Basic</code></a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e1046">6.4.2. <code class="code">javax.websocket.RemoteEndpoint.Async</code></a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e871"></a>6.1.&nbsp;Endpoint Lifecycle</h2></div></div></div><p>
+   <title>Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="configurations.html" title="Chapter&nbsp;5.&nbsp;Configurations"><link rel="next" href="injection.html" title="Chapter&nbsp;7.&nbsp;Injection Support"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="configurations.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="injection.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="lifecycle"></a>Chapter&nbsp;6.&nbsp;Endpoint Lifecycle, Sessions, Sending Messages</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="lifecycle.html#d0e871">6.1. Endpoint Lifecycle</a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e891">6.2. <code class="code">javax.websocket.Session</code></a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e976">6.3. Sending Messages</a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e1008">6.4. RemoteEndpoint</a></span></dt><dd><dl><dt><span class="section"><a href="lifecycle.html#d0e1022">6.4.1. <code class="code">javax.websocket.RemoteEndpoint.Basic</code></a></span></dt><dt><span class="section"><a href="lifecycle.html#d0e1046">6.4.2. <code class="code">javax.websocket.RemoteEndpoint.Async</code></a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e871"></a>6.1.&nbsp;Endpoint Lifecycle</h2></div></div></div><p>
                 As mentioned before, the endpoint in Java API for WebSocket is represented either by instance of <code class="code">javax.websocket.Endpoint</code>,
                 or by class annotated with either <code class="code">javax.websocket.server.ServerEndpoint</code> or
                 <code class="code">javax.websocket.ClientEndpoint</code>. Unless otherwise defined by developer provided configurator
diff --git a/documentation/latest1x/index/modules-and-dependencies.html b/documentation/latest1x/index/modules-and-dependencies.html
index 98422834..370527b1 100644
--- a/documentation/latest1x/index/modules-and-dependencies.html
+++ b/documentation/latest1x/index/modules-and-dependencies.html
@@ -1,6 +1,6 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-   <title>Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.19 User Guide"><link rel="up" href="index.html" title="Tyrus 1.19 User Guide"><link rel="prev" href="getting-started.html" title="Chapter&nbsp;1.&nbsp;Getting Started"><link rel="next" href="deployment.html" title="Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="getting-started.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="deployment.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="modules-and-dependencies"></a>Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies</h1></div></div></div><p>
+   <title>Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="getting-started.html" title="Chapter&nbsp;1.&nbsp;Getting Started"><link rel="next" href="deployment.html" title="Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="getting-started.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="deployment.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="modules-and-dependencies"></a>Chapter&nbsp;2.&nbsp;Tyrus Modules and Dependencies</h1></div></div></div><p>
         Tyrus is built, assembled and installed using Maven. Tyrus is deployed to maven.org maven repository
         at the following location:<a class="link" href="http://search.maven.org/" target="_top">http://search.maven.org/</a>.
         Jars, jar sources, jar javadoc and samples are all available on the java.net maven repository.
@@ -11,49 +11,49 @@
         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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|1.20|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/1.19/tyrus-samples-1.19-all.zip" target="_top">
+                        <a class="link" href="http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/1.20/tyrus-samples-1.20-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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|1.20|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|1.19|bundle" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|1.20|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><link href="http://tyrus.java.net/sh/shCore.css" rel="stylesheet" type="text/css"><link href="http://tyrus.java.net/sh/shThemeDefault.css" rel="stylesheet" type="text/css"><script src="http://tyrus.java.net/sh/shCore.js" type="text/javascript"></script><script src="http://tyrus.java.net/sh/shAutoloader.js" type="text/javascript"></script><script type="text/javascript">
diff --git a/documentation/latest1x/index/preface.html b/documentation/latest1x/index/preface.html
index b9e532bd..e863481e 100644
--- a/documentation/latest1x/index/preface.html
+++ b/documentation/latest1x/index/preface.html
@@ -1,7 +1,7 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-   <title>Preface</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.19 User Guide"><link rel="up" href="index.html" title="Tyrus 1.19 User Guide"><link rel="prev" href="index.html" title="Tyrus 1.19 User Guide"><link rel="next" href="getting-started.html" title="Chapter&nbsp;1.&nbsp;Getting Started"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Preface</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="getting-started.html">Next</a></td></tr></table><hr></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 1.19. We are trying to keep it up to date
+   <title>Preface</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="index.html" title="Tyrus 1.20 User Guide"><link rel="next" href="getting-started.html" title="Chapter&nbsp;1.&nbsp;Getting Started"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Preface</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="getting-started.html">Next</a></td></tr></table><hr></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 1.20. 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
@@ -59,4 +59,4 @@
 
               ga('create', 'UA-41373632-1', 'java.net');
               ga('send', 'pageview');
-        </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="getting-started.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Tyrus 1.19 User Guide&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;1.&nbsp;Getting Started</td></tr></table></div></div></body></html>
\ No newline at end of file
+        </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="getting-started.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Tyrus 1.20 User Guide&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;1.&nbsp;Getting Started</td></tr></table></div></div></body></html>
\ No newline at end of file
diff --git a/documentation/latest1x/index/tyrus-proprietary-config.html b/documentation/latest1x/index/tyrus-proprietary-config.html
index 34a9c2ae..b7584cba 100644
--- a/documentation/latest1x/index/tyrus-proprietary-config.html
+++ b/documentation/latest1x/index/tyrus-proprietary-config.html
@@ -1,11 +1,11 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-   <title>Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.19 User Guide"><link rel="up" href="index.html" title="Tyrus 1.19 User Guide"><link rel="prev" href="injection.html" title="Chapter&nbsp;7.&nbsp;Injection Support"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="injection.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;</td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="tyrus-proprietary-config"></a>Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1129">8.1. Client-side SSL configuration</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1150">8.1.1. Host verification</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1172">8.2. Asynchronous connectToServer methods</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1185">8.3. Optimized broadcast</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1198">8.4. Incoming buffer size</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1216">8.5. Shared client container</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1238">8.5.1. Custom masking key generator</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1259">8.6. WebSocket Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1284">8.6.1. ExtendedExtension sample</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1305">8.6.2. Per Message Deflate Extension</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1312">8.7. Client reconnect</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1324">8.8. Client behind proxy</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1332">8.9. JDK 7 client</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1354">8.9.1. SSL configuration</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1374">8.10. Tracing support</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1382">8.10.1. Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1448">8.10.2. Tracing Examples</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1476">8.11. Client handshake request and response logging</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1484">8.12. JMX Monitoring</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1558">8.12.1. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1575">8.13. Maximal number of open sessions on server-side</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1594">8.13.1. Maximal number of open sessions per application</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1616">8.13.2. Maximal number of open sessions per remote address</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1644">8.13.3. Maximal number of open sessions per endpoint</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1659">8.14. Client HTTP Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1684">8.14.1. Credentials</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1692">8.14.2. Auth Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1710">8.14.3. User defined authenticator</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1737">8.14.4. Examples</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1775">8.15. Client HTTP Redirect</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1792">8.15.1. Supported HTTP response codes</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1817">8.15.2. Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1849">8.15.3. Exception handling</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1886">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="tyrus-proprietary-config.html#d0e1907">8.16.1. Configuration</a></span></dt></dl></dd></dl></div><p>Following settings do have influence on Tyrus behaviour and are <span class="emphasis"><em>NOT</em></span> part of WebSocket
+   <title>Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="injection.html" title="Chapter&nbsp;7.&nbsp;Injection Support"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="injection.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;</td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="tyrus-proprietary-config"></a>Chapter&nbsp;8.&nbsp;Tyrus proprietary configuration</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1129">8.1. Client-side SSL configuration</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1150">8.1.1. Host verification</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1172">8.2. Asynchronous connectToServer methods</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1185">8.3. Optimized broadcast</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1198">8.4. Incoming buffer size</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1216">8.5. Shared client container</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1238">8.5.1. Custom masking key generator</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1259">8.6. WebSocket Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1284">8.6.1. ExtendedExtension sample</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1305">8.6.2. Per Message Deflate Extension</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1312">8.7. Client reconnect</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1324">8.8. Client behind proxy</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1332">8.9. JDK 7 client</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1354">8.9.1. SSL configuration</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1374">8.10. Tracing support</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1382">8.10.1. Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1448">8.10.2. Tracing Examples</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1476">8.11. Client handshake request and response logging</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1484">8.12. JMX Monitoring</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1558">8.12.1. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1575">8.13. Maximal number of open sessions on server-side</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1594">8.13.1. Maximal number of open sessions per application</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1616">8.13.2. Maximal number of open sessions per remote address</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1644">8.13.3. Maximal number of open sessions per endpoint</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1659">8.14. Client HTTP Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1684">8.14.1. Credentials</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1692">8.14.2. Auth Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1710">8.14.3. User defined authenticator</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1737">8.14.4. Examples</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1775">8.15. Client HTTP Redirect</a></span></dt><dd><dl><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1792">8.15.1. Supported HTTP response codes</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1817">8.15.2. Configuration</a></span></dt><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1849">8.15.3. Exception handling</a></span></dt></dl></dd><dt><span class="section"><a href="tyrus-proprietary-config.html#d0e1886">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="tyrus-proprietary-config.html#d0e1907">8.16.1. Configuration</a></span></dt></dl></dd></dl></div><p>Following settings do have influence on Tyrus behaviour and are <span class="emphasis"><em>NOT</em></span> part of WebSocket
     specification. If you are using following configurable options, your application might not be easily transferable to
     other WebSocket API implementation.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1129"></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/1.19/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
+            and <a class="link" href="https://tyrus.java.net/apidocs/1.20/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
@@ -13,7 +13,7 @@
             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/1.19/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/1.20/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, "...");
@@ -51,7 +51,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/1.19/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
+                <a class="link" href="https://tyrus.java.net/apidocs/1.20/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)
@@ -405,7 +405,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;1.19&lt;/version&gt;
+  &lt;version&gt;1.20&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.
@@ -436,9 +436,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/1.19/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
+                <a class="link" href="https://tyrus.java.net/apidocs/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
                 and
-                <a class="link" href="https://tyrus.java.net/apidocs/1.19/org/glassfish/tyrus/client/SslContextConfigurator.html" target="_top">SslContextConfigurator</a>
+                <a class="link" href="https://tyrus.java.net/apidocs/1.20/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/latest1x/index/websocket-api.html b/documentation/latest1x/index/websocket-api.html
index 0e28d9e2..c8ee4b32 100644
--- a/documentation/latest1x/index/websocket-api.html
+++ b/documentation/latest1x/index/websocket-api.html
@@ -1,6 +1,6 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-   <title>Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.19 User Guide"><link rel="up" href="index.html" title="Tyrus 1.19 User Guide"><link rel="prev" href="deployment.html" title="Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints"><link rel="next" href="configurations.html" title="Chapter&nbsp;5.&nbsp;Configurations"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="deployment.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="configurations.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="websocket-api"></a>Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="websocket-api.html#d0e441">4.1. Endpoint Classes</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e465">4.1.1. javax.websocket.server.ServerEndpoint</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e600">4.1.2. javax.websocket.ClientEndpoint</a></span></dt></dl></dd><dt><span class="section"><a href="websocket-api.html#d0e642">4.2. Endpoint method-level annotations</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e645">4.2.1. @OnOpen</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e658">4.2.2. @OnClose</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e671">4.2.3. @OnError</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e684">4.2.4. @OnMessage</a></span></dt></dl></dd><dt><span class="section"><a href="websocket-api.html#d0e697">4.3. MessageHandlers</a></span></dt></dl></div><p>This chapter presents an overview of the core WebSocket API concepts - endpoints, configurations and message
+   <title>Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers</title><link rel="stylesheet" type="text/css" href="/tyrus-project.github.io/documentation.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Tyrus 1.20 User Guide"><link rel="up" href="index.html" title="Tyrus 1.20 User Guide"><link rel="prev" href="deployment.html" title="Chapter&nbsp;3.&nbsp;Deploying WebSocket Endpoints"><link rel="next" href="configurations.html" title="Chapter&nbsp;5.&nbsp;Configurations"></head><body class="contents"><div class="contents" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="deployment.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="configurations.html">Next</a></td></tr></table><hr></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="websocket-api"></a>Chapter&nbsp;4.&nbsp;WebSocket API Endpoints, Sessions and MessageHandlers</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="websocket-api.html#d0e441">4.1. Endpoint Classes</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e465">4.1.1. javax.websocket.server.ServerEndpoint</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e600">4.1.2. javax.websocket.ClientEndpoint</a></span></dt></dl></dd><dt><span class="section"><a href="websocket-api.html#d0e642">4.2. Endpoint method-level annotations</a></span></dt><dd><dl><dt><span class="section"><a href="websocket-api.html#d0e645">4.2.1. @OnOpen</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e658">4.2.2. @OnClose</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e671">4.2.3. @OnError</a></span></dt><dt><span class="section"><a href="websocket-api.html#d0e684">4.2.4. @OnMessage</a></span></dt></dl></dd><dt><span class="section"><a href="websocket-api.html#d0e697">4.3. MessageHandlers</a></span></dt></dl></div><p>This chapter presents an overview of the core WebSocket API concepts - endpoints, configurations and message
         handlers.</p><p>The JAVA API for WebSocket specification draft can be found online <a class="link" href="http://jcp.org/aboutJava/communityprocess/pfd/jsr356/index.html" target="_top">here</a>.
     </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e441"></a>4.1.&nbsp;Endpoint Classes</h2></div></div></div><p>
             <span class="emphasis"><em>Server endpoint classes</em></span>
diff --git a/documentation/latest1x/user-guide.fo b/documentation/latest1x/user-guide.fo
index 136a1b18..74412b44 100644
--- a/documentation/latest1x/user-guide.fo
+++ b/documentation/latest1x/user-guide.fo
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="serif,Symbol,ZapfDingbats" font-size="10pt" text-align="justify" line-height="normal" font-selection-strategy="character-by-character" line-height-shift-adjustment="disregard-shifts" writing-mode="lr-tb" language="en"><fo:layout-master-set><fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body display-align="center" margin-bottom="0.5in" margin-top="0.5in" margin-left="0in" margin-right="0in" region-name="blank-body"/><fo:region-before region-name="xsl-region-before-blank" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-blank" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-blank" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-blank" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="lot-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="lot-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="lot-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="front-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="front-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="front-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="body-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="body-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="body-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="back-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="back-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="back-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="index-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="index-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="index-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:page-sequence-master master-name="titlepage"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="titlepage-first" page-position="first"/><fo:conditional-page-master-reference master-reference="titlepage-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="titlepage-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="lot"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="lot-first" page-position="first"/><fo:conditional-page-master-reference master-reference="lot-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="lot-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="front"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="front-first" page-position="first"/><fo:conditional-page-master-reference master-reference="front-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="front-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="body"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="body-first" page-position="first"/><fo:conditional-page-master-reference master-reference="body-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="body-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="back"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="back-first" page-position="first"/><fo:conditional-page-master-reference master-reference="back-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="back-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="index"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="index-first" page-position="first"/><fo:conditional-page-master-reference master-reference="index-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="index-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master></fo:layout-master-set><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="titlepage" language="en" format="i" 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: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/></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/></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: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: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: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: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"><fo:block id="d0e2"><fo:block><fo:block><fo:block font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt"><fo:block keep-with-next.within-column="always" hyphenate="false">Tyrus 1.19 User Guide</fo:block></fo:block></fo:block><fo:block><fo:block break-after="page"/><fo:block font-size="14.4pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block>Tyrus 1.19 User Guide</fo:block></fo:block></fo:block><fo:block break-after="page"/></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="lot" language="en" format="i" 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>Tyrus 1.19 User Guide</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>Tyrus 1.19 User Guide</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 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" id="toc...d0e2"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">Table of Contents</fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="preface">Preface</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="preface"><fo:page-number-citation ref-id="preface"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="getting-started">1. Getting Started</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="getting-started"><fo:page-number-citation ref-id="getting-started"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.getting-started" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="getting-started-wsapi-artifact">1.1. WebSocket Services Using Java API for WebSocket</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="getting-started-wsapi-artifact"><fo:page-number-citation ref-id="getting-started-wsapi-artifact"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.getting-started-wsapi-artifact" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e34">1.1.1. Creating Annotated Server Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e34"><fo:page-number-citation ref-id="d0e34"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e78">1.1.2. Client Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e78"><fo:page-number-citation ref-id="d0e78"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-programmatic-endpoint">1.1.3. Creating Server Endpoint Programmatically</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-programmatic-endpoint"><fo:page-number-citation ref-id="websocket-programmatic-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="standalone-mode">1.1.4. Tyrus in Standalone Mode</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="standalone-mode"><fo:page-number-citation ref-id="standalone-mode"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="modules-and-dependencies">2. Tyrus Modules and Dependencies</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="modules-and-dependencies"><fo:page-number-citation ref-id="modules-and-dependencies"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="deployment">3. Deploying WebSocket Endpoints</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="deployment"><fo:page-number-citation ref-id="deployment"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.deployment" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e334">3.1. Deploying Endpoints as a WAR file</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e334"><fo:page-number-citation ref-id="d0e334"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e334" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e359">3.1.1. Deployment Algorithm</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e359"><fo:page-number-citation ref-id="d0e359"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e410">3.2. Deploying endpoints via <fo:inline font-family="monospace">javax.websocket.server.ServerContainer</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e410"><fo:page-number-citation ref-id="d0e410"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-api">4. WebSocket API Endpoints, Sessions and MessageHandlers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-api"><fo:page-number-citation ref-id="websocket-api"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.websocket-api" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e440">4.1. Endpoint Classes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e440"><fo:page-number-citation ref-id="d0e440"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e440" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e464">4.1.1. javax.websocket.server.ServerEndpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e464"><fo:page-number-citation ref-id="d0e464"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e599">4.1.2. javax.websocket.ClientEndpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e599"><fo:page-number-citation ref-id="d0e599"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e641">4.2. Endpoint method-level annotations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e641"><fo:page-number-citation ref-id="d0e641"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e641" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e644">4.2.1. @OnOpen</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e644"><fo:page-number-citation ref-id="d0e644"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e657">4.2.2. @OnClose</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e657"><fo:page-number-citation ref-id="d0e657"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e670">4.2.3. @OnError</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e670"><fo:page-number-citation ref-id="d0e670"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e683">4.2.4. @OnMessage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e683"><fo:page-number-citation ref-id="d0e683"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e696">4.3. MessageHandlers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e696"><fo:page-number-citation ref-id="d0e696"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="configurations">5. Configurations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="configurations"><fo:page-number-citation ref-id="configurations"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.configurations" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e785">5.1. <fo:inline font-family="monospace">javax.websocket.server.ServerEndpointConfig</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e785"><fo:page-number-citation ref-id="d0e785"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e838">5.2. <fo:inline font-family="monospace">javax.websocket.ClientEndpointConfig</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e838"><fo:page-number-citation ref-id="d0e838"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle">6. Endpoint Lifecycle, Sessions, Sending Messages</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle"><fo:page-number-citation ref-id="lifecycle"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.lifecycle" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e870">6.1. Endpoint Lifecycle</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e870"><fo:page-number-citation ref-id="d0e870"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e890">6.2. <fo:inline font-family="monospace">javax.websocket.Session</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e890"><fo:page-number-citation ref-id="d0e890"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e975">6.3. Sending Messages</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e975"><fo:page-number-citation ref-id="d0e975"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1007">6.4. RemoteEndpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1007"><fo:page-number-citation ref-id="d0e1007"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1007" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1021">6.4.1. <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint.Basic</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1021"><fo:page-number-citation ref-id="d0e1021"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1045">6.4.2. <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint.Async</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1045"><fo:page-number-citation ref-id="d0e1045"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="injection">7. Injection Support</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="injection"><fo:page-number-citation ref-id="injection"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.injection" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1075">7.1. <fo:inline font-family="monospace">javax.inject.Inject</fo:inline> sample</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1075"><fo:page-number-citation ref-id="d0e1075"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1102">7.2. EJB sample</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1102"><fo:page-number-citation ref-id="d0e1102"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tyrus-proprietary-config">8. Tyrus proprietary configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tyrus-proprietary-config"><fo:page-number-citation ref-id="tyrus-proprietary-config"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.tyrus-proprietary-config" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1128">8.1. Client-side SSL configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1128"><fo:page-number-citation ref-id="d0e1128"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1128" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1149">8.1.1. Host verification</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1149"><fo:page-number-citation ref-id="d0e1149"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1171">8.2. Asynchronous connectToServer methods</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1171"><fo:page-number-citation ref-id="d0e1171"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1184">8.3. Optimized broadcast</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1184"><fo:page-number-citation ref-id="d0e1184"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1197">8.4. Incoming buffer size</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1197"><fo:page-number-citation ref-id="d0e1197"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1215">8.5. Shared client container</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1215"><fo:page-number-citation ref-id="d0e1215"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1215" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1237">8.5.1. Custom masking key generator</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1237"><fo:page-number-citation ref-id="d0e1237"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1258">8.6. WebSocket Extensions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1258"><fo:page-number-citation ref-id="d0e1258"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1258" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1283">8.6.1. ExtendedExtension sample</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1283"><fo:page-number-citation ref-id="d0e1283"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1304">8.6.2. Per Message Deflate Extension</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1304"><fo:page-number-citation ref-id="d0e1304"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1311">8.7. Client reconnect</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1311"><fo:page-number-citation ref-id="d0e1311"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1323">8.8. Client behind proxy</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1323"><fo:page-number-citation ref-id="d0e1323"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1331">8.9. JDK 7 client</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1331"><fo:page-number-citation ref-id="d0e1331"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1331" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1353">8.9.1. SSL configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1353"><fo:page-number-citation ref-id="d0e1353"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1373">8.10. Tracing support</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1373"><fo:page-number-citation ref-id="d0e1373"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1373" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1381">8.10.1. Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1381"><fo:page-number-citation ref-id="d0e1381"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1447">8.10.2. Tracing Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1447"><fo:page-number-citation ref-id="d0e1447"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1475">8.11. Client handshake request and response logging</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1475"><fo:page-number-citation ref-id="d0e1475"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1483">8.12. JMX Monitoring</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1483"><fo:page-number-citation ref-id="d0e1483"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1483" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1557">8.12.1. Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1557"><fo:page-number-citation ref-id="d0e1557"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1574">8.13. Maximal number of open sessions on server-side</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1574"><fo:page-number-citation ref-id="d0e1574"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1574" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1593">8.13.1. Maximal number of open sessions per application</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1593"><fo:page-number-citation ref-id="d0e1593"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1615">8.13.2. Maximal number of open sessions per remote address</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1615"><fo:page-number-citation ref-id="d0e1615"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1643">8.13.3. Maximal number of open sessions per endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1643"><fo:page-number-citation ref-id="d0e1643"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1658">8.14. Client HTTP Authentication</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1658"><fo:page-number-citation ref-id="d0e1658"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1658" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1683">8.14.1. Credentials</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1683"><fo:page-number-citation ref-id="d0e1683"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1691">8.14.2. Auth Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1691"><fo:page-number-citation ref-id="d0e1691"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1709">8.14.3. User defined authenticator</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1709"><fo:page-number-citation ref-id="d0e1709"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1736">8.14.4. Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1736"><fo:page-number-citation ref-id="d0e1736"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1774">8.15. Client HTTP Redirect</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1774"><fo:page-number-citation ref-id="d0e1774"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1774" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1791">8.15.1. Supported HTTP response codes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1791"><fo:page-number-citation ref-id="d0e1791"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1816">8.15.2. Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1816"><fo:page-number-citation ref-id="d0e1816"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1848">8.15.3. Exception handling</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1848"><fo:page-number-citation ref-id="d0e1848"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1885">8.16. Client support for HTTP status 503 - Service Unavailable with Retry-After header</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1885"><fo:page-number-citation ref-id="d0e1885"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1885" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1906">8.16.1. Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1906"><fo:page-number-citation ref-id="d0e1906"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="lot" language="en" format="i" 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>Tyrus 1.19 User Guide</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>Tyrus 1.19 User Guide</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="lot...table...d0e2"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">List of Tables</fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="dependencies-table-modules">2.1. Tyrus core modules</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="dependencies-table-modules"><fo:page-number-citation ref-id="dependencies-table-modules"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="dependencies-table-containers">2.2. Tyrus containers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="dependencies-table-containers"><fo:page-number-citation ref-id="dependencies-table-containers"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="lot" language="en" format="i" 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>Tyrus 1.19 User Guide</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>Tyrus 1.19 User Guide</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="lot...example...d0e2"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">List of Examples</fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-annotated-echo-endpoint">1.1. Annotated Echo Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-annotated-echo-endpoint"><fo:page-number-citation ref-id="websocket-annotated-echo-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-client-endpoint">1.2. Client Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-client-endpoint"><fo:page-number-citation ref-id="websocket-client-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-programmatic-echo-endpoint">1.3. Programmatic Echo Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-programmatic-echo-endpoint"><fo:page-number-citation ref-id="websocket-programmatic-echo-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="deployment-serverapplicationconfig">3.1. Deployment of WAR containing several classes extending <fo:inline font-family="monospace">javax.websocket.server.ServerApplicationConfig</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="deployment-serverapplicationconfig"><fo:page-number-citation ref-id="deployment-serverapplicationconfig"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="deployment-servercontainer">3.2. Deployment of Annotated Endpoint Using ServerContainer</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="deployment-servercontainer"><fo:page-number-citation ref-id="deployment-servercontainer"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="endpoints-echo-endpoint">4.1. Echo sample server endpoint.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="endpoints-echo-endpoint"><fo:page-number-citation ref-id="endpoints-echo-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="endpoints-serverendpoint-annotation">4.2. javax.websocket.server.ServerEndpoint with all fields specified</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="endpoints-serverendpoint-annotation"><fo:page-number-citation ref-id="endpoints-serverendpoint-annotation"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e510">4.3. Specifying URI path parameter</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e510"><fo:page-number-citation ref-id="d0e510"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e528">4.4. SampleDecoder</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e528"><fo:page-number-citation ref-id="d0e528"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e546">4.5. SampleEncoder</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e546"><fo:page-number-citation ref-id="d0e546"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e604">4.6. SampleClientEndpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e604"><fo:page-number-citation ref-id="d0e604"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e651">4.7. @OnOpen with Session and EndpointConfig parameters.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e651"><fo:page-number-citation ref-id="d0e651"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e664">4.8. @OnClose with Session and CloseReason parameters.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e664"><fo:page-number-citation ref-id="d0e664"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e677">4.9. @OnError with Session and Throwable parameters.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e677"><fo:page-number-citation ref-id="d0e677"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e690">4.10. @OnError with Session and Throwable parameters.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e690"><fo:page-number-citation ref-id="d0e690"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e709">4.11. MessageHandler basic example</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e709"><fo:page-number-citation ref-id="d0e709"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e822">5.1. Configuration for EchoEndpoint Deployment</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e822"><fo:page-number-citation ref-id="d0e822"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e832">5.2. ServerEndpointConfigu built using Builder</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e832"><fo:page-number-citation ref-id="d0e832"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e861">5.3. ClientEndpointConfig built using Builder</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e861"><fo:page-number-citation ref-id="d0e861"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-echo-sample">6.1. Lifecycle echo sample</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-echo-sample"><fo:page-number-citation ref-id="lifecycle-echo-sample"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-onmessage-sample">6.2. Sending message in @OnMessage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-onmessage-sample"><fo:page-number-citation ref-id="lifecycle-onmessage-sample"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-remote-endpoint-sample">6.3. Sending message via RemoteEndpoint.Basic instance</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-remote-endpoint-sample"><fo:page-number-citation ref-id="lifecycle-remote-endpoint-sample"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-remote-endpoint-partial-sample">6.4. Method for sending partial text message</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-remote-endpoint-partial-sample"><fo:page-number-citation ref-id="lifecycle-remote-endpoint-partial-sample"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-remote-endpoint-async-future">6.5. Sending mesage the async way using Future</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-remote-endpoint-async-future"><fo:page-number-citation ref-id="lifecycle-remote-endpoint-async-future"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="cdi-simple-bean">7.1. Injecting bean into <fo:inline font-family="monospace">javax.websocket.server.ServerEndpoint</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="cdi-simple-bean"><fo:page-number-citation ref-id="cdi-simple-bean"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="cdi-singleton-bean">7.2. Echo sample server endpoint.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="cdi-singleton-bean"><fo:page-number-citation ref-id="cdi-singleton-bean"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="front" language="en" format="i" 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>Preface</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>Preface</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="preface"><fo:block><fo:block><fo:block margin-left="0pt" font-size="24.8832pt" font-family="sans-serif,Symbol,ZapfDingbats" 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">Preface</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">
-            This is user guide for Tyrus 1.19. We are trying to keep it up to date
+<?xml version="1.0" encoding="utf-8"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="serif,Symbol,ZapfDingbats" font-size="10pt" text-align="justify" line-height="normal" font-selection-strategy="character-by-character" line-height-shift-adjustment="disregard-shifts" writing-mode="lr-tb" language="en"><fo:layout-master-set><fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body display-align="center" margin-bottom="0.5in" margin-top="0.5in" margin-left="0in" margin-right="0in" region-name="blank-body"/><fo:region-before region-name="xsl-region-before-blank" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-blank" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-blank" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-blank" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="lot-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="lot-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="lot-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="front-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="front-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="front-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="body-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="body-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="body-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="back-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="back-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="back-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="index-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-first" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-first" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="index-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-odd" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-odd" precedence="false" extent="0in"/></fo:simple-page-master><fo:simple-page-master master-name="index-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" margin-left="0in" margin-right="0in"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" precedence="true" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" precedence="true" display-align="after"/><fo:region-start border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-outer-even" precedence="false" extent="0in"/><fo:region-end border-width="0" padding="0" reference-orientation="90" region-name="xsl-region-inner-even" precedence="false" extent="0in"/></fo:simple-page-master><fo:page-sequence-master master-name="titlepage"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="titlepage-first" page-position="first"/><fo:conditional-page-master-reference master-reference="titlepage-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="titlepage-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="lot"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="lot-first" page-position="first"/><fo:conditional-page-master-reference master-reference="lot-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="lot-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="front"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="front-first" page-position="first"/><fo:conditional-page-master-reference master-reference="front-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="front-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="body"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="body-first" page-position="first"/><fo:conditional-page-master-reference master-reference="body-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="body-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="back"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="back-first" page-position="first"/><fo:conditional-page-master-reference master-reference="back-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="back-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="index"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="index-first" page-position="first"/><fo:conditional-page-master-reference master-reference="index-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="index-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master></fo:layout-master-set><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="titlepage" language="en" format="i" 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: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/></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/></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: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: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: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: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"><fo:block id="d0e2"><fo:block><fo:block><fo:block font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt"><fo:block keep-with-next.within-column="always" hyphenate="false">Tyrus 1.20 User Guide</fo:block></fo:block></fo:block><fo:block><fo:block break-after="page"/><fo:block font-size="14.4pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block>Tyrus 1.20 User Guide</fo:block></fo:block></fo:block><fo:block break-after="page"/></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="lot" language="en" format="i" 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>Tyrus 1.20 User Guide</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>Tyrus 1.20 User Guide</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 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" id="toc...d0e2"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">Table of Contents</fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="preface">Preface</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="preface"><fo:page-number-citation ref-id="preface"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="getting-started">1. Getting Started</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="getting-started"><fo:page-number-citation ref-id="getting-started"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.getting-started" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="getting-started-wsapi-artifact">1.1. WebSocket Services Using Java API for WebSocket</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="getting-started-wsapi-artifact"><fo:page-number-citation ref-id="getting-started-wsapi-artifact"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.getting-started-wsapi-artifact" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e34">1.1.1. Creating Annotated Server Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e34"><fo:page-number-citation ref-id="d0e34"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e78">1.1.2. Client Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e78"><fo:page-number-citation ref-id="d0e78"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-programmatic-endpoint">1.1.3. Creating Server Endpoint Programmatically</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-programmatic-endpoint"><fo:page-number-citation ref-id="websocket-programmatic-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="standalone-mode">1.1.4. Tyrus in Standalone Mode</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="standalone-mode"><fo:page-number-citation ref-id="standalone-mode"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="modules-and-dependencies">2. Tyrus Modules and Dependencies</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="modules-and-dependencies"><fo:page-number-citation ref-id="modules-and-dependencies"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="deployment">3. Deploying WebSocket Endpoints</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="deployment"><fo:page-number-citation ref-id="deployment"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.deployment" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e334">3.1. Deploying Endpoints as a WAR file</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e334"><fo:page-number-citation ref-id="d0e334"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e334" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e359">3.1.1. Deployment Algorithm</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e359"><fo:page-number-citation ref-id="d0e359"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e410">3.2. Deploying endpoints via <fo:inline font-family="monospace">javax.websocket.server.ServerContainer</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e410"><fo:page-number-citation ref-id="d0e410"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-api">4. WebSocket API Endpoints, Sessions and MessageHandlers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-api"><fo:page-number-citation ref-id="websocket-api"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.websocket-api" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e440">4.1. Endpoint Classes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e440"><fo:page-number-citation ref-id="d0e440"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e440" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e464">4.1.1. javax.websocket.server.ServerEndpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e464"><fo:page-number-citation ref-id="d0e464"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e599">4.1.2. javax.websocket.ClientEndpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e599"><fo:page-number-citation ref-id="d0e599"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e641">4.2. Endpoint method-level annotations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e641"><fo:page-number-citation ref-id="d0e641"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e641" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e644">4.2.1. @OnOpen</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e644"><fo:page-number-citation ref-id="d0e644"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e657">4.2.2. @OnClose</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e657"><fo:page-number-citation ref-id="d0e657"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e670">4.2.3. @OnError</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e670"><fo:page-number-citation ref-id="d0e670"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e683">4.2.4. @OnMessage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e683"><fo:page-number-citation ref-id="d0e683"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e696">4.3. MessageHandlers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e696"><fo:page-number-citation ref-id="d0e696"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="configurations">5. Configurations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="configurations"><fo:page-number-citation ref-id="configurations"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.configurations" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e785">5.1. <fo:inline font-family="monospace">javax.websocket.server.ServerEndpointConfig</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e785"><fo:page-number-citation ref-id="d0e785"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e838">5.2. <fo:inline font-family="monospace">javax.websocket.ClientEndpointConfig</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e838"><fo:page-number-citation ref-id="d0e838"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle">6. Endpoint Lifecycle, Sessions, Sending Messages</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle"><fo:page-number-citation ref-id="lifecycle"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.lifecycle" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e870">6.1. Endpoint Lifecycle</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e870"><fo:page-number-citation ref-id="d0e870"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e890">6.2. <fo:inline font-family="monospace">javax.websocket.Session</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e890"><fo:page-number-citation ref-id="d0e890"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e975">6.3. Sending Messages</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e975"><fo:page-number-citation ref-id="d0e975"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1007">6.4. RemoteEndpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1007"><fo:page-number-citation ref-id="d0e1007"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1007" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1021">6.4.1. <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint.Basic</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1021"><fo:page-number-citation ref-id="d0e1021"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1045">6.4.2. <fo:inline font-family="monospace">javax.websocket.RemoteEndpoint.Async</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1045"><fo:page-number-citation ref-id="d0e1045"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="injection">7. Injection Support</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="injection"><fo:page-number-citation ref-id="injection"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.injection" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1075">7.1. <fo:inline font-family="monospace">javax.inject.Inject</fo:inline> sample</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1075"><fo:page-number-citation ref-id="d0e1075"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1102">7.2. EJB sample</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1102"><fo:page-number-citation ref-id="d0e1102"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tyrus-proprietary-config">8. Tyrus proprietary configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tyrus-proprietary-config"><fo:page-number-citation ref-id="tyrus-proprietary-config"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.tyrus-proprietary-config" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1128">8.1. Client-side SSL configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1128"><fo:page-number-citation ref-id="d0e1128"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1128" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1149">8.1.1. Host verification</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1149"><fo:page-number-citation ref-id="d0e1149"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1171">8.2. Asynchronous connectToServer methods</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1171"><fo:page-number-citation ref-id="d0e1171"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1184">8.3. Optimized broadcast</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1184"><fo:page-number-citation ref-id="d0e1184"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1197">8.4. Incoming buffer size</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1197"><fo:page-number-citation ref-id="d0e1197"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1215">8.5. Shared client container</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1215"><fo:page-number-citation ref-id="d0e1215"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1215" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1237">8.5.1. Custom masking key generator</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1237"><fo:page-number-citation ref-id="d0e1237"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1258">8.6. WebSocket Extensions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1258"><fo:page-number-citation ref-id="d0e1258"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1258" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1283">8.6.1. ExtendedExtension sample</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1283"><fo:page-number-citation ref-id="d0e1283"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1304">8.6.2. Per Message Deflate Extension</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1304"><fo:page-number-citation ref-id="d0e1304"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1311">8.7. Client reconnect</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1311"><fo:page-number-citation ref-id="d0e1311"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1323">8.8. Client behind proxy</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1323"><fo:page-number-citation ref-id="d0e1323"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1331">8.9. JDK 7 client</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1331"><fo:page-number-citation ref-id="d0e1331"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1331" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1353">8.9.1. SSL configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1353"><fo:page-number-citation ref-id="d0e1353"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1373">8.10. Tracing support</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1373"><fo:page-number-citation ref-id="d0e1373"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1373" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1381">8.10.1. Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1381"><fo:page-number-citation ref-id="d0e1381"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1447">8.10.2. Tracing Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1447"><fo:page-number-citation ref-id="d0e1447"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1475">8.11. Client handshake request and response logging</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1475"><fo:page-number-citation ref-id="d0e1475"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1483">8.12. JMX Monitoring</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1483"><fo:page-number-citation ref-id="d0e1483"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1483" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1557">8.12.1. Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1557"><fo:page-number-citation ref-id="d0e1557"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1574">8.13. Maximal number of open sessions on server-side</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1574"><fo:page-number-citation ref-id="d0e1574"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1574" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1593">8.13.1. Maximal number of open sessions per application</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1593"><fo:page-number-citation ref-id="d0e1593"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1615">8.13.2. Maximal number of open sessions per remote address</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1615"><fo:page-number-citation ref-id="d0e1615"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1643">8.13.3. Maximal number of open sessions per endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1643"><fo:page-number-citation ref-id="d0e1643"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1658">8.14. Client HTTP Authentication</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1658"><fo:page-number-citation ref-id="d0e1658"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1658" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1683">8.14.1. Credentials</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1683"><fo:page-number-citation ref-id="d0e1683"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1691">8.14.2. Auth Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1691"><fo:page-number-citation ref-id="d0e1691"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1709">8.14.3. User defined authenticator</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1709"><fo:page-number-citation ref-id="d0e1709"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1736">8.14.4. Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1736"><fo:page-number-citation ref-id="d0e1736"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1774">8.15. Client HTTP Redirect</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1774"><fo:page-number-citation ref-id="d0e1774"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1774" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1791">8.15.1. Supported HTTP response codes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1791"><fo:page-number-citation ref-id="d0e1791"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1816">8.15.2. Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1816"><fo:page-number-citation ref-id="d0e1816"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1848">8.15.3. Exception handling</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1848"><fo:page-number-citation ref-id="d0e1848"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1885">8.16. Client support for HTTP status 503 - Service Unavailable with Retry-After header</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1885"><fo:page-number-citation ref-id="d0e1885"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.d0e2.d0e1885" margin-left="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e1906">8.16.1. Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e1906"><fo:page-number-citation ref-id="d0e1906"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="lot" language="en" format="i" 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>Tyrus 1.20 User Guide</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>Tyrus 1.20 User Guide</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="lot...table...d0e2"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">List of Tables</fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="dependencies-table-modules">2.1. Tyrus core modules</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="dependencies-table-modules"><fo:page-number-citation ref-id="dependencies-table-modules"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="dependencies-table-containers">2.2. Tyrus containers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="dependencies-table-containers"><fo:page-number-citation ref-id="dependencies-table-containers"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="lot" language="en" format="i" 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>Tyrus 1.20 User Guide</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>Tyrus 1.20 User Guide</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="lot...example...d0e2"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" start-indent="0pt" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">List of Examples</fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-annotated-echo-endpoint">1.1. Annotated Echo Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-annotated-echo-endpoint"><fo:page-number-citation ref-id="websocket-annotated-echo-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-client-endpoint">1.2. Client Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-client-endpoint"><fo:page-number-citation ref-id="websocket-client-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="websocket-programmatic-echo-endpoint">1.3. Programmatic Echo Endpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="websocket-programmatic-echo-endpoint"><fo:page-number-citation ref-id="websocket-programmatic-echo-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="deployment-serverapplicationconfig">3.1. Deployment of WAR containing several classes extending <fo:inline font-family="monospace">javax.websocket.server.ServerApplicationConfig</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="deployment-serverapplicationconfig"><fo:page-number-citation ref-id="deployment-serverapplicationconfig"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="deployment-servercontainer">3.2. Deployment of Annotated Endpoint Using ServerContainer</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="deployment-servercontainer"><fo:page-number-citation ref-id="deployment-servercontainer"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="endpoints-echo-endpoint">4.1. Echo sample server endpoint.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="endpoints-echo-endpoint"><fo:page-number-citation ref-id="endpoints-echo-endpoint"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="endpoints-serverendpoint-annotation">4.2. javax.websocket.server.ServerEndpoint with all fields specified</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="endpoints-serverendpoint-annotation"><fo:page-number-citation ref-id="endpoints-serverendpoint-annotation"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e510">4.3. Specifying URI path parameter</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e510"><fo:page-number-citation ref-id="d0e510"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e528">4.4. SampleDecoder</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e528"><fo:page-number-citation ref-id="d0e528"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e546">4.5. SampleEncoder</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e546"><fo:page-number-citation ref-id="d0e546"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e604">4.6. SampleClientEndpoint</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e604"><fo:page-number-citation ref-id="d0e604"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e651">4.7. @OnOpen with Session and EndpointConfig parameters.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e651"><fo:page-number-citation ref-id="d0e651"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e664">4.8. @OnClose with Session and CloseReason parameters.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e664"><fo:page-number-citation ref-id="d0e664"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e677">4.9. @OnError with Session and Throwable parameters.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e677"><fo:page-number-citation ref-id="d0e677"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e690">4.10. @OnError with Session and Throwable parameters.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e690"><fo:page-number-citation ref-id="d0e690"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e709">4.11. MessageHandler basic example</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e709"><fo:page-number-citation ref-id="d0e709"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e822">5.1. Configuration for EchoEndpoint Deployment</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e822"><fo:page-number-citation ref-id="d0e822"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e832">5.2. ServerEndpointConfigu built using Builder</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e832"><fo:page-number-citation ref-id="d0e832"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="d0e861">5.3. ClientEndpointConfig built using Builder</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="d0e861"><fo:page-number-citation ref-id="d0e861"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-echo-sample">6.1. Lifecycle echo sample</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-echo-sample"><fo:page-number-citation ref-id="lifecycle-echo-sample"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-onmessage-sample">6.2. Sending message in @OnMessage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-onmessage-sample"><fo:page-number-citation ref-id="lifecycle-onmessage-sample"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-remote-endpoint-sample">6.3. Sending message via RemoteEndpoint.Basic instance</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-remote-endpoint-sample"><fo:page-number-citation ref-id="lifecycle-remote-endpoint-sample"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-remote-endpoint-partial-sample">6.4. Method for sending partial text message</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-remote-endpoint-partial-sample"><fo:page-number-citation ref-id="lifecycle-remote-endpoint-partial-sample"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lifecycle-remote-endpoint-async-future">6.5. Sending mesage the async way using Future</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lifecycle-remote-endpoint-async-future"><fo:page-number-citation ref-id="lifecycle-remote-endpoint-async-future"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="cdi-simple-bean">7.1. Injecting bean into <fo:inline font-family="monospace">javax.websocket.server.ServerEndpoint</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="cdi-simple-bean"><fo:page-number-citation ref-id="cdi-simple-bean"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="cdi-singleton-bean">7.2. Echo sample server endpoint.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="cdi-singleton-bean"><fo:page-number-citation ref-id="cdi-singleton-bean"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="front" language="en" format="i" 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>Preface</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>Preface</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="preface"><fo:block><fo:block><fo:block margin-left="0pt" font-size="24.8832pt" font-family="sans-serif,Symbol,ZapfDingbats" 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">Preface</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">
+            This is user guide for Tyrus 1.20. 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;1.19&lt;/version&gt;
+    &lt;version&gt;1.20&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;1.19&lt;/version&gt;
+    &lt;version&gt;1.20&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
@@ -181,51 +181,51 @@
         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|1.19|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|1.20|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|1.19|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|1.19|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|1.20|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|1.19|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|1.20|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|1.19|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|1.19|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|1.20|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|1.19|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|1.20|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|1.19|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|1.19|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|1.20|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|1.19|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|1.20|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|1.19|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|1.19|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|1.20|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|1.19|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|1.20|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|1.19|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|1.19|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|1.20|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/1.19/tyrus-samples-1.19-all.zip)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/1.20/tyrus-samples-1.20-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/1.19/tyrus-samples-1.19-all.zip)">http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/1.19/tyrus-samples-1.19-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/1.20/tyrus-samples-1.20-all.zip)">http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/1.20/tyrus-samples-1.20-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|1.19|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|1.20|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|1.19|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|1.19|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|1.20|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|1.19|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|1.20|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|1.19|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|1.19|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|1.20|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|1.19|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|1.20|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|1.19|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|1.19|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|1.20|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|1.19|jar)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|1.20|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|1.19|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|1.19|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|1.20|jar)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|1.20|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|1.19|bundle)"><fo:inline>
+                        <fo:basic-link external-destination="url(http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|1.20|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|1.19|bundle)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|1.19|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|1.20|bundle)">http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|1.20|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.
@@ -938,7 +938,7 @@
     other WebSocket API implementation.</fo:block><fo:block id="d0e1128"><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/1.19/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/1.19/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/1.19/org/glassfish/tyrus/client/SslEngineConfigurator.html</fo:basic-link>]</fo:inline>
+            and <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/1.20/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/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/1.20/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
@@ -946,7 +946,7 @@
             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/1.19/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/1.19/org/glassfish/tyrus/client/ClientManager.html)">https://tyrus.java.net/apidocs/1.19/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="d0e1145">  1 final ClientManager client = ClientManager.createClient();
+            <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/1.20/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/1.20/org/glassfish/tyrus/client/ClientManager.html)">https://tyrus.java.net/apidocs/1.20/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="d0e1145">  1 final ClientManager client = ClientManager.createClient();
   2 
   3 System.getProperties().put("javax.net.debug", "all");
   4 System.getProperties().put(SSLContextConfigurator.KEY_STORE_FILE, "...");
@@ -984,7 +984,7 @@
                 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/1.19/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/1.19/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/1.19/org/glassfish/tyrus/client/SslEngineConfigurator.html</fo:basic-link>]</fo:inline>
+                <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/1.20/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/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/1.20/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="d0e1165">  1 SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(new SslContextConfigurator());
   2 sslEngineConfigurator.setHostVerificationEnabled(false)
@@ -1338,7 +1338,7 @@
 &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;1.19&lt;/version&gt;
+  &lt;version&gt;1.20&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.
@@ -1369,9 +1369,9 @@
                 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/1.19/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/1.19/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/1.19/org/glassfish/tyrus/client/SslEngineConfigurator.html</fo:basic-link>]</fo:inline>
+                <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/1.20/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/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html)">https://tyrus.java.net/apidocs/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html</fo:basic-link>]</fo:inline>
                 and
-                <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/1.19/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/1.19/org/glassfish/tyrus/client/SslContextConfigurator.html)">https://tyrus.java.net/apidocs/1.19/org/glassfish/tyrus/client/SslContextConfigurator.html</fo:basic-link>]</fo:inline>
+                <fo:basic-link external-destination="url(https://tyrus.java.net/apidocs/1.20/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/1.20/org/glassfish/tyrus/client/SslContextConfigurator.html)">https://tyrus.java.net/apidocs/1.20/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="d0e1370">  1 
diff --git a/documentation/latest1x/user-guide.html b/documentation/latest1x/user-guide.html
index 1dc9f417..486dbf00 100644
--- a/documentation/latest1x/user-guide.html
+++ b/documentation/latest1x/user-guide.html
@@ -1,7 +1,7 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-   <title>Tyrus 1.19 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 1.19 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></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="#d0e334">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e359">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e410">3.2. Deploying endpoints via <code class="code">javax.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="#d0e440">4.1. Endpoint Classes</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e464">4.1.1. javax.websocket.server.ServerEndpoint</a></span></dt><dt><span class="section"><a href="#d0e599">4.1.2. javax.websocket.ClientEndpoint</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e641">4.2. Endpoint method-level annotations</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e644">4.2.1. @OnOpen</a></span></dt><dt><span class="section"><a href="#d0e657">4.2.2. @OnClose</a></span></dt><dt><span class="section"><a href="#d0e670">4.2.3. @OnError</a></span></dt><dt><span class="section"><a href="#d0e683">4.2.4. @OnMessage</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e696">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="#d0e785">5.1. <code class="code">javax.websocket.server.ServerEndpointConfig</code></a></span></dt><dt><span class="section"><a href="#d0e838">5.2. <code class="code">javax.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="#d0e870">6.1. Endpoint Lifecycle</a></span></dt><dt><span class="section"><a href="#d0e890">6.2. <code class="code">javax.websocket.Session</code></a></span></dt><dt><span class="section"><a href="#d0e975">6.3. Sending Messages</a></span></dt><dt><span class="section"><a href="#d0e1007">6.4. RemoteEndpoint</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1021">6.4.1. <code class="code">javax.websocket.RemoteEndpoint.Basic</code></a></span></dt><dt><span class="section"><a href="#d0e1045">6.4.2. <code class="code">javax.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="#d0e1075">7.1. <code class="code">javax.inject.Inject</code> sample</a></span></dt><dt><span class="section"><a href="#d0e1102">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="#d0e1128">8.1. Client-side SSL configuration</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1149">8.1.1. Host verification</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1171">8.2. Asynchronous connectToServer methods</a></span></dt><dt><span class="section"><a href="#d0e1184">8.3. Optimized broadcast</a></span></dt><dt><span class="section"><a href="#d0e1197">8.4. Incoming buffer size</a></span></dt><dt><span class="section"><a href="#d0e1215">8.5. Shared client container</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1237">8.5.1. Custom masking key generator</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1258">8.6. WebSocket Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1283">8.6.1. ExtendedExtension sample</a></span></dt><dt><span class="section"><a href="#d0e1304">8.6.2. Per Message Deflate Extension</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1311">8.7. Client reconnect</a></span></dt><dt><span class="section"><a href="#d0e1323">8.8. Client behind proxy</a></span></dt><dt><span class="section"><a href="#d0e1331">8.9. JDK 7 client</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1353">8.9.1. SSL configuration</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1373">8.10. Tracing support</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1381">8.10.1. Configuration</a></span></dt><dt><span class="section"><a href="#d0e1447">8.10.2. Tracing Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1475">8.11. Client handshake request and response logging</a></span></dt><dt><span class="section"><a href="#d0e1483">8.12. JMX Monitoring</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1557">8.12.1. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1574">8.13. Maximal number of open sessions on server-side</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1593">8.13.1. Maximal number of open sessions per application</a></span></dt><dt><span class="section"><a href="#d0e1615">8.13.2. Maximal number of open sessions per remote address</a></span></dt><dt><span class="section"><a href="#d0e1643">8.13.3. Maximal number of open sessions per endpoint</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1658">8.14. Client HTTP Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1683">8.14.1. Credentials</a></span></dt><dt><span class="section"><a href="#d0e1691">8.14.2. Auth Configuration</a></span></dt><dt><span class="section"><a href="#d0e1709">8.14.3. User defined authenticator</a></span></dt><dt><span class="section"><a href="#d0e1736">8.14.4. Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1774">8.15. Client HTTP Redirect</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1791">8.15.1. Supported HTTP response codes</a></span></dt><dt><span class="section"><a href="#d0e1816">8.15.2. Configuration</a></span></dt><dt><span class="section"><a href="#d0e1848">8.15.3. Exception handling</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1885">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="#d0e1906">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">javax.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">javax.websocket.server.ServerEndpoint with all fields specified</a></dt><dt>4.3. <a href="#d0e510">Specifying URI path parameter</a></dt><dt>4.4. <a href="#d0e528">SampleDecoder</a></dt><dt>4.5. <a href="#d0e546">SampleEncoder</a></dt><dt>4.6. <a href="#d0e604">SampleClientEndpoint</a></dt><dt>4.7. <a href="#d0e651">@OnOpen with Session and EndpointConfig parameters.</a></dt><dt>4.8. <a href="#d0e664">@OnClose with Session and CloseReason parameters.</a></dt><dt>4.9. <a href="#d0e677">@OnError with Session and Throwable parameters.</a></dt><dt>4.10. <a href="#d0e690">@OnError with Session and Throwable parameters.</a></dt><dt>4.11. <a href="#d0e709">MessageHandler basic example</a></dt><dt>5.1. <a href="#d0e822">Configuration for EchoEndpoint Deployment</a></dt><dt>5.2. <a href="#d0e832">ServerEndpointConfigu built using Builder</a></dt><dt>5.3. <a href="#d0e861">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">javax.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 1.19. We are trying to keep it up to date
+   <title>Tyrus 1.20 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 1.20 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></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="#d0e334">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e359">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e410">3.2. Deploying endpoints via <code class="code">javax.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="#d0e440">4.1. Endpoint Classes</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e464">4.1.1. javax.websocket.server.ServerEndpoint</a></span></dt><dt><span class="section"><a href="#d0e599">4.1.2. javax.websocket.ClientEndpoint</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e641">4.2. Endpoint method-level annotations</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e644">4.2.1. @OnOpen</a></span></dt><dt><span class="section"><a href="#d0e657">4.2.2. @OnClose</a></span></dt><dt><span class="section"><a href="#d0e670">4.2.3. @OnError</a></span></dt><dt><span class="section"><a href="#d0e683">4.2.4. @OnMessage</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e696">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="#d0e785">5.1. <code class="code">javax.websocket.server.ServerEndpointConfig</code></a></span></dt><dt><span class="section"><a href="#d0e838">5.2. <code class="code">javax.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="#d0e870">6.1. Endpoint Lifecycle</a></span></dt><dt><span class="section"><a href="#d0e890">6.2. <code class="code">javax.websocket.Session</code></a></span></dt><dt><span class="section"><a href="#d0e975">6.3. Sending Messages</a></span></dt><dt><span class="section"><a href="#d0e1007">6.4. RemoteEndpoint</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1021">6.4.1. <code class="code">javax.websocket.RemoteEndpoint.Basic</code></a></span></dt><dt><span class="section"><a href="#d0e1045">6.4.2. <code class="code">javax.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="#d0e1075">7.1. <code class="code">javax.inject.Inject</code> sample</a></span></dt><dt><span class="section"><a href="#d0e1102">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="#d0e1128">8.1. Client-side SSL configuration</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1149">8.1.1. Host verification</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1171">8.2. Asynchronous connectToServer methods</a></span></dt><dt><span class="section"><a href="#d0e1184">8.3. Optimized broadcast</a></span></dt><dt><span class="section"><a href="#d0e1197">8.4. Incoming buffer size</a></span></dt><dt><span class="section"><a href="#d0e1215">8.5. Shared client container</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1237">8.5.1. Custom masking key generator</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1258">8.6. WebSocket Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1283">8.6.1. ExtendedExtension sample</a></span></dt><dt><span class="section"><a href="#d0e1304">8.6.2. Per Message Deflate Extension</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1311">8.7. Client reconnect</a></span></dt><dt><span class="section"><a href="#d0e1323">8.8. Client behind proxy</a></span></dt><dt><span class="section"><a href="#d0e1331">8.9. JDK 7 client</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1353">8.9.1. SSL configuration</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1373">8.10. Tracing support</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1381">8.10.1. Configuration</a></span></dt><dt><span class="section"><a href="#d0e1447">8.10.2. Tracing Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1475">8.11. Client handshake request and response logging</a></span></dt><dt><span class="section"><a href="#d0e1483">8.12. JMX Monitoring</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1557">8.12.1. Configuration</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1574">8.13. Maximal number of open sessions on server-side</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1593">8.13.1. Maximal number of open sessions per application</a></span></dt><dt><span class="section"><a href="#d0e1615">8.13.2. Maximal number of open sessions per remote address</a></span></dt><dt><span class="section"><a href="#d0e1643">8.13.3. Maximal number of open sessions per endpoint</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1658">8.14. Client HTTP Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1683">8.14.1. Credentials</a></span></dt><dt><span class="section"><a href="#d0e1691">8.14.2. Auth Configuration</a></span></dt><dt><span class="section"><a href="#d0e1709">8.14.3. User defined authenticator</a></span></dt><dt><span class="section"><a href="#d0e1736">8.14.4. Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1774">8.15. Client HTTP Redirect</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e1791">8.15.1. Supported HTTP response codes</a></span></dt><dt><span class="section"><a href="#d0e1816">8.15.2. Configuration</a></span></dt><dt><span class="section"><a href="#d0e1848">8.15.3. Exception handling</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e1885">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="#d0e1906">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">javax.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">javax.websocket.server.ServerEndpoint with all fields specified</a></dt><dt>4.3. <a href="#d0e510">Specifying URI path parameter</a></dt><dt>4.4. <a href="#d0e528">SampleDecoder</a></dt><dt>4.5. <a href="#d0e546">SampleEncoder</a></dt><dt>4.6. <a href="#d0e604">SampleClientEndpoint</a></dt><dt>4.7. <a href="#d0e651">@OnOpen with Session and EndpointConfig parameters.</a></dt><dt>4.8. <a href="#d0e664">@OnClose with Session and CloseReason parameters.</a></dt><dt>4.9. <a href="#d0e677">@OnError with Session and Throwable parameters.</a></dt><dt>4.10. <a href="#d0e690">@OnError with Session and Throwable parameters.</a></dt><dt>4.11. <a href="#d0e709">MessageHandler basic example</a></dt><dt>5.1. <a href="#d0e822">Configuration for EchoEndpoint Deployment</a></dt><dt>5.2. <a href="#d0e832">ServerEndpointConfigu built using Builder</a></dt><dt>5.3. <a href="#d0e861">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">javax.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 1.20. 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;1.19&lt;/version&gt;
+    &lt;version&gt;1.20&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;1.19&lt;/version&gt;
+    &lt;version&gt;1.20&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
@@ -183,49 +183,49 @@ public class EchoEndpointAnnotated {
         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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|1.20|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/1.19/tyrus-samples-1.19-all.zip" target="_top">
+                        <a class="link" href="http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/1.20/tyrus-samples-1.20-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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|1.20|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|1.19|jar" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|1.20|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|1.19|bundle" target="_top">
+                        <a class="link" href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|1.20|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="#d0e334">3.1. Deploying Endpoints as a WAR file</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e359">3.1.1. Deployment Algorithm</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e410">3.2. Deploying endpoints via <code class="code">javax.websocket.server.ServerContainer</code></a></span></dt></dl></div><p>
@@ -940,7 +940,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="d0e1128"></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/1.19/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
+            and <a class="link" href="https://tyrus.java.net/apidocs/1.20/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
@@ -948,7 +948,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/1.19/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/1.20/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, "...");
@@ -986,7 +986,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/1.19/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
+                <a class="link" href="https://tyrus.java.net/apidocs/1.20/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)
@@ -1340,7 +1340,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;1.19&lt;/version&gt;
+  &lt;version&gt;1.20&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.
@@ -1371,9 +1371,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/1.19/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
+                <a class="link" href="https://tyrus.java.net/apidocs/1.20/org/glassfish/tyrus/client/SslEngineConfigurator.html" target="_top">SslEngineConfigurator</a>
                 and
-                <a class="link" href="https://tyrus.java.net/apidocs/1.19/org/glassfish/tyrus/client/SslContextConfigurator.html" target="_top">SslContextConfigurator</a>
+                <a class="link" href="https://tyrus.java.net/apidocs/1.20/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/latest1x/user-guide.pdf b/documentation/latest1x/user-guide.pdf
index 83fc43dc..285d3d30 100644
Binary files a/documentation/latest1x/user-guide.pdf and b/documentation/latest1x/user-guide.pdf differ
+ git commit -m '[jenkins] automatic docbook update [1.20]'
[master ff1f7fb9] [jenkins] automatic docbook update [1.20]
 26 files changed, 6310 insertions(+), 84 deletions(-)
 create mode 100644 documentation/1.20/index/configurations.html
 create mode 100644 documentation/1.20/index/deployment.html
 create mode 100644 documentation/1.20/index/getting-started.html
 create mode 100644 documentation/1.20/index/index.html
 create mode 100644 documentation/1.20/index/injection.html
 create mode 100644 documentation/1.20/index/lifecycle.html
 create mode 100644 documentation/1.20/index/modules-and-dependencies.html
 create mode 100644 documentation/1.20/index/preface.html
 create mode 100644 documentation/1.20/index/tyrus-proprietary-config.html
 create mode 100644 documentation/1.20/index/websocket-api.html
 create mode 100644 documentation/1.20/user-guide.fo
 create mode 100644 documentation/1.20/user-guide.html
 create mode 100644 documentation/1.20/user-guide.pdf
+ git push origin master
To github.com:eclipse-ee4j/tyrus-project.github.io.git
   7d8b4da5..ff1f7fb9  master -> master
$ ssh-agent -k
unset SSH_AUTH_SOCK;
unset SSH_AGENT_PID;
echo Agent pid 60 killed;
[ssh-agent] Stopped.
Finished: SUCCESS